From owner-p4-projects@FreeBSD.ORG Sun Jul 4 20:00:41 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A67A21065670; Sun, 4 Jul 2010 20:00:41 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 52717106566C for ; Sun, 4 Jul 2010 20:00:41 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3D9468FC0A for ; Sun, 4 Jul 2010 20:00:41 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o64K0fhn062091 for ; Sun, 4 Jul 2010 20:00:41 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o64K0fWE062089 for perforce@freebsd.org; Sun, 4 Jul 2010 20:00:41 GMT (envelope-from gabor@freebsd.org) Date: Sun, 4 Jul 2010 20:00:41 GMT Message-Id: <201007042000.o64K0fWE062089@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 180475 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Jul 2010 20:00:42 -0000 http://p4web.freebsd.org/@@180475?ac=10 Change 180475 by gabor@gabor_aspire on 2010/07/04 19:59:52 MFHg: - Add makenewjob(), killjob(), getjid(), getjlimit() and setjlimit() syscalls. - Add manuals for these syscalls. - The implementation of these is incomplete and not completely working yet. - Add a test program to test jobs-related functionality. Affected files ... .. //depot/projects/soc2010/gabor_jobs/irix_jobs/lib/libc/gen/errlst.c#2 edit .. //depot/projects/soc2010/gabor_jobs/irix_jobs/lib/libc/nls/C.msg#2 edit .. //depot/projects/soc2010/gabor_jobs/irix_jobs/lib/libc/nls/es_ES.ISO8859-1.msg#2 edit .. //depot/projects/soc2010/gabor_jobs/irix_jobs/lib/libc/nls/hu_HU.ISO8859-2.msg#2 edit .. //depot/projects/soc2010/gabor_jobs/irix_jobs/lib/libc/sys/Makefile.inc#2 edit .. //depot/projects/soc2010/gabor_jobs/irix_jobs/lib/libc/sys/Symbol.map#2 edit .. //depot/projects/soc2010/gabor_jobs/irix_jobs/lib/libc/sys/getjid.2#1 add .. //depot/projects/soc2010/gabor_jobs/irix_jobs/lib/libc/sys/getjlimit.2#1 add .. //depot/projects/soc2010/gabor_jobs/irix_jobs/lib/libc/sys/killjob.2#1 add .. //depot/projects/soc2010/gabor_jobs/irix_jobs/lib/libc/sys/makenewjob.2#1 add .. //depot/projects/soc2010/gabor_jobs/irix_jobs/sys/conf/files#2 edit .. //depot/projects/soc2010/gabor_jobs/irix_jobs/sys/kern/init_main.c#2 edit .. //depot/projects/soc2010/gabor_jobs/irix_jobs/sys/kern/init_sysent.c#2 edit .. //depot/projects/soc2010/gabor_jobs/irix_jobs/sys/kern/kern_exit.c#2 edit .. //depot/projects/soc2010/gabor_jobs/irix_jobs/sys/kern/kern_fork.c#2 edit .. //depot/projects/soc2010/gabor_jobs/irix_jobs/sys/kern/kern_jobs.c#1 add .. //depot/projects/soc2010/gabor_jobs/irix_jobs/sys/kern/syscalls.c#2 edit .. //depot/projects/soc2010/gabor_jobs/irix_jobs/sys/kern/syscalls.master#2 edit .. //depot/projects/soc2010/gabor_jobs/irix_jobs/sys/kern/systrace_args.c#2 edit .. //depot/projects/soc2010/gabor_jobs/irix_jobs/sys/sys/_types.h#2 edit .. //depot/projects/soc2010/gabor_jobs/irix_jobs/sys/sys/errno.h#2 edit .. //depot/projects/soc2010/gabor_jobs/irix_jobs/sys/sys/jobs.h#1 add .. //depot/projects/soc2010/gabor_jobs/irix_jobs/sys/sys/resource.h#2 edit .. //depot/projects/soc2010/gabor_jobs/irix_jobs/sys/sys/syscall.h#2 edit .. //depot/projects/soc2010/gabor_jobs/irix_jobs/sys/sys/syscall.mk#2 edit .. //depot/projects/soc2010/gabor_jobs/irix_jobs/sys/sys/sysproto.h#2 edit .. //depot/projects/soc2010/gabor_jobs/irix_jobs/sys/sys/types.h#2 edit .. //depot/projects/soc2010/gabor_jobs/irix_jobs/sys/sys/ucred.h#2 edit .. //depot/projects/soc2010/gabor_jobs/irix_jobs/tools/test/irix_jobs/Makefile#1 add .. //depot/projects/soc2010/gabor_jobs/irix_jobs/tools/test/irix_jobs/jobtest.c#1 add Differences ... ==== //depot/projects/soc2010/gabor_jobs/irix_jobs/lib/libc/gen/errlst.c#2 (text+ko) ==== @@ -151,5 +151,7 @@ "Link has been severed", /* 91 - ENOLINK */ "Protocol error", /* 92 - EPROTO */ "Capabilities insufficient", /* 93 - ENOTCAPABLE */ + "No such job", /* 94 - ENOJOB */ + "Required software not installed", /* 95 - ENOPKG */ }; const int sys_nerr = sizeof(sys_errlist) / sizeof(sys_errlist[0]); ==== //depot/projects/soc2010/gabor_jobs/irix_jobs/lib/libc/nls/C.msg#2 (text+ko) ==== @@ -191,6 +191,10 @@ 92 Protocol error $ ENOTCAPABLE 93 Capabilities insufficient +$ ENOJOB +94 No such job +$ ENOPKG +95 Required software not installed $ $ strsignal() support catalog $ ==== //depot/projects/soc2010/gabor_jobs/irix_jobs/lib/libc/nls/es_ES.ISO8859-1.msg#2 (text+ko) ==== @@ -191,6 +191,10 @@ 92 Fallo de protocolo $ ENOTCAPABLE 93 Habilidades insuficientes +$ ENOJOB +94 Job inexistente +$ ENOPKG +95 Software requerido no está instalado $ $ strsignal() support catalog $ ==== //depot/projects/soc2010/gabor_jobs/irix_jobs/lib/libc/nls/hu_HU.ISO8859-2.msg#2 (text+ko) ==== @@ -191,6 +191,10 @@ 92 Protokol hiba $ ENOTCAPABLE 93 Elégtelen képességek +$ ENOJOB +94 Job nem található +$ ENOPKG +95 Szükséges szoftver nincs telepítve $ $ strsignal() support catalog $ ==== //depot/projects/soc2010/gabor_jobs/irix_jobs/lib/libc/sys/Makefile.inc#2 (text+ko) ==== @@ -69,18 +69,18 @@ connect.2 cpuset.2 cpuset_getaffinity.2 dup.2 execve.2 _exit.2 \ extattr_get_file.2 fcntl.2 fhopen.2 flock.2 fork.2 fsync.2 \ getdirentries.2 getdtablesize.2 \ - getfh.2 getfsstat.2 getgid.2 getgroups.2 getitimer.2 getlogin.2 \ - getpeername.2 getpgrp.2 getpid.2 getpriority.2 getrlimit.2 \ - getrusage.2 getsid.2 getsockname.2 \ + getfh.2 getfsstat.2 getgid.2 getgroups.2 getitimer.2 getjid.2 \ + getjlimit.2 getlogin.2 getpeername.2 getpgrp.2 getpid.2 getpriority.2 \ + getrlimit.2 getrusage.2 getsid.2 getsockname.2 \ getsockopt.2 gettimeofday.2 getuid.2 \ - intro.2 ioctl.2 issetugid.2 jail.2 kenv.2 kill.2 \ + intro.2 ioctl.2 issetugid.2 jail.2 kenv.2 kill.2 killjob.2 \ kldfind.2 kldfirstmod.2 kldload.2 kldnext.2 kldstat.2 kldsym.2 \ kldunload.2 kqueue.2 ktrace.2 link.2 lio_listio.2 listen.2 \ lseek.2 \ - madvise.2 mincore.2 minherit.2 mkdir.2 mkfifo.2 mknod.2 mlock.2 \ - mlockall.2 mmap.2 modfind.2 modnext.2 modstat.2 mount.2 mprotect.2 \ - mq_close.2 mq_getattr.2 mq_notify.2 mq_open.2 mq_receive.2 mq_send.2 \ - mq_setattr.2 \ + madvise.2 makenewjob.2 mincore.2 minherit.2 mkdir.2 mkfifo.2 mknod.2 \ + mlock.2 mlockall.2 mmap.2 modfind.2 modnext.2 modstat.2 mount.2 \ + mprotect.2 mq_close.2 mq_getattr.2 mq_notify.2 mq_open.2 mq_receive.2 \ + mq_send.2 mq_setattr.2 \ msgctl.2 msgget.2 msgrcv.2 msgsnd.2 \ msync.2 munmap.2 nanosleep.2 nfssvc.2 ntp_adjtime.2 open.2 \ pathconf.2 pipe.2 poll.2 posix_openpt.2 profil.2 \ @@ -131,6 +131,7 @@ MLINKS+=getfh.2 lgetfh.2 MLINKS+=getgid.2 getegid.2 MLINKS+=getitimer.2 setitimer.2 +MLINKS+=getjlimit.2 setjlimit.2 MLINKS+=getlogin.2 getlogin_r.3 MLINKS+=getlogin.2 setlogin.2 MLINKS+=getpgrp.2 getpgid.2 ==== //depot/projects/soc2010/gabor_jobs/irix_jobs/lib/libc/sys/Symbol.map#2 (text) ==== @@ -360,6 +360,14 @@ unlinkat; }; +FBSD_1.2 { + getjid; + getjlimit; + killjob; + makenewjob; + setjlimit; +}; + FBSDprivate_1.0 { ___acl_aclcheck_fd; __sys___acl_aclcheck_fd; ==== //depot/projects/soc2010/gabor_jobs/irix_jobs/sys/conf/files#2 (text+ko) ==== @@ -2100,6 +2100,7 @@ kern/kern_idle.c standard kern/kern_intr.c standard kern/kern_jail.c standard +kern/kern_jobs.c standard kern/kern_kthread.c standard kern/kern_ktr.c optional ktr kern/kern_ktrace.c standard ==== //depot/projects/soc2010/gabor_jobs/irix_jobs/sys/kern/init_main.c#2 (text+ko) ==== @@ -486,6 +486,7 @@ p->p_ucred->cr_uidinfo = uifind(0); p->p_ucred->cr_ruidinfo = uifind(0); p->p_ucred->cr_prison = &prison0; + p->p_ucred->cr_jid = 0; #ifdef AUDIT audit_cred_kproc0(p->p_ucred); #endif ==== //depot/projects/soc2010/gabor_jobs/irix_jobs/sys/kern/init_sysent.c#2 (text+ko) ==== @@ -2,8 +2,8 @@ * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/kern/init_sysent.c,v 1.256 2010/06/28 18:17:21 kib Exp $ - * created from FreeBSD: head/sys/kern/syscalls.master 209579 2010-06-28 18:06:46Z kib + * $FreeBSD$ + * created from FreeBSD: src/sys/kern/syscalls.master,v 1.263 2010/06/28 18:06:46 kib Exp */ #include "opt_compat.h" @@ -557,4 +557,9 @@ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 520 = pdgetpid */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 521 = pdwait */ { AS(pselect_args), (sy_call_t *)pselect, AUE_SELECT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 522 = pselect */ + { AS(makenewjob_args), (sy_call_t *)makenewjob, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 523 = makenewjob */ + { AS(killjob_args), (sy_call_t *)killjob, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 524 = killjob */ + { 0, (sy_call_t *)getjid, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 525 = getjid */ + { AS(getjlimit_args), (sy_call_t *)getjlimit, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 526 = getjlimit */ + { AS(setjlimit_args), (sy_call_t *)setjlimit, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 527 = setjlimit */ }; ==== //depot/projects/soc2010/gabor_jobs/irix_jobs/sys/kern/kern_exit.c#2 (text+ko) ==== @@ -52,10 +52,12 @@ #include #include #include +#include #include #include #include #include +#include #include #include #include @@ -768,6 +770,12 @@ (void)chgproccnt(p->p_ucred->cr_ruidinfo, -1, 0); /* + * Release IRIX jobs resources + */ + if (p->p_ucred->cr_jid != (jid_t)0) + irix_jobs_remove_proc(p->p_ucred->cr_jid, p->p_pid); + + /* * Free credentials, arguments, and sigacts. */ crfree(p->p_ucred); ==== //depot/projects/soc2010/gabor_jobs/irix_jobs/sys/kern/kern_fork.c#2 (text+ko) ==== @@ -47,6 +47,7 @@ #include #include #include +#include #include #include #include @@ -104,10 +105,16 @@ int error; struct proc *p2; +// error = irix_jobs_alloc(td->td_proc, JLIMIT_NUMPROC, 1); +// if (error != 0) +// returnv(error); + error = fork1(td, RFFDG | RFPROC, 0, &p2); if (error == 0) { td->td_retval[0] = p2->p_pid; td->td_retval[1] = 0; + if (td->td_proc->p_ucred->cr_jid != 0) + irix_jobs_add_proc(td->td_proc->p_ucred->cr_jid, p2->p_pid); } return (error); } ==== //depot/projects/soc2010/gabor_jobs/irix_jobs/sys/kern/syscalls.c#2 (text+ko) ==== @@ -2,8 +2,8 @@ * System call names. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/kern/syscalls.c,v 1.239 2010/06/28 18:17:21 kib Exp $ - * created from FreeBSD: head/sys/kern/syscalls.master 209579 2010-06-28 18:06:46Z kib + * $FreeBSD$ + * created from FreeBSD: src/sys/kern/syscalls.master,v 1.263 2010/06/28 18:06:46 kib Exp */ const char *syscallnames[] = { @@ -530,4 +530,9 @@ "#520", /* 520 = pdgetpid */ "#521", /* 521 = pdwait */ "pselect", /* 522 = pselect */ + "makenewjob", /* 523 = makenewjob */ + "killjob", /* 524 = killjob */ + "getjid", /* 525 = getjid */ + "getjlimit", /* 526 = getjlimit */ + "setjlimit", /* 527 = setjlimit */ }; ==== //depot/projects/soc2010/gabor_jobs/irix_jobs/sys/kern/syscalls.master#2 (text+ko) ==== @@ -922,5 +922,13 @@ fd_set *ou, fd_set *ex, \ const struct timespec *ts, \ const sigset_t *sm); } +523 AUE_NULL STD { __jid_t makenewjob(__jid_t rjid,\ + __uid_t user); } +524 AUE_NULL STD { int killjob(__jid_t jid, int signal); } +525 AUE_NULL STD { __jid_t getjid(void); } +526 AUE_NULL STD { int getjlimit(__jid_t jid, int resource, \ + struct rlimit *rlp); } +527 AUE_NULL STD { int setjlimit(__jid_t jid, int resource, \ + struct rlimit *rlp); } ; Please copy any additions and changes to the following compatability tables: ; sys/compat/freebsd32/syscalls.master ==== //depot/projects/soc2010/gabor_jobs/irix_jobs/sys/kern/systrace_args.c#2 (text+ko) ==== @@ -2,7 +2,7 @@ * System call argument to DTrace register array converstion. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/kern/systrace_args.c,v 1.35 2010/06/21 09:55:56 ed Exp $ + * $FreeBSD$ * This file is part of the DTrace syscall provider. */ @@ -3084,6 +3084,45 @@ *n_args = 6; break; } + /* makenewjob */ + case 523: { + struct makenewjob_args *p = params; + iarg[0] = p->rjid; /* __jid_t */ + iarg[1] = p->user; /* __uid_t */ + *n_args = 2; + break; + } + /* killjob */ + case 524: { + struct killjob_args *p = params; + iarg[0] = p->jid; /* __jid_t */ + iarg[1] = p->signal; /* int */ + *n_args = 2; + break; + } + /* getjid */ + case 525: { + *n_args = 0; + break; + } + /* getjlimit */ + case 526: { + struct getjlimit_args *p = params; + iarg[0] = p->jid; /* __jid_t */ + iarg[1] = p->resource; /* int */ + uarg[2] = (intptr_t) p->rlp; /* struct rlimit * */ + *n_args = 3; + break; + } + /* setjlimit */ + case 527: { + struct setjlimit_args *p = params; + iarg[0] = p->jid; /* __jid_t */ + iarg[1] = p->resource; /* int */ + uarg[2] = (intptr_t) p->rlp; /* struct rlimit * */ + *n_args = 3; + break; + } default: *n_args = 0; break; @@ -8191,6 +8230,67 @@ break; }; break; + /* makenewjob */ + case 523: + switch(ndx) { + case 0: + p = "__jid_t"; + break; + case 1: + p = "__uid_t"; + break; + default: + break; + }; + break; + /* killjob */ + case 524: + switch(ndx) { + case 0: + p = "__jid_t"; + break; + case 1: + p = "int"; + break; + default: + break; + }; + break; + /* getjid */ + case 525: + break; + /* getjlimit */ + case 526: + switch(ndx) { + case 0: + p = "__jid_t"; + break; + case 1: + p = "int"; + break; + case 2: + p = "struct rlimit *"; + break; + default: + break; + }; + break; + /* setjlimit */ + case 527: + switch(ndx) { + case 0: + p = "__jid_t"; + break; + case 1: + p = "int"; + break; + case 2: + p = "struct rlimit *"; + break; + default: + break; + }; + break; default: break; }; ==== //depot/projects/soc2010/gabor_jobs/irix_jobs/sys/sys/_types.h#2 (text+ko) ==== @@ -42,8 +42,10 @@ typedef __uint64_t __fsblkcnt_t; typedef __uint64_t __fsfilcnt_t; typedef __uint32_t __gid_t; -typedef __int64_t __id_t; /* can hold a gid_t, pid_t, or uid_t */ +typedef __int64_t __id_t; /* can hold a gid_t, pid_t, uid_t + or jid_t */ typedef __uint32_t __ino_t; /* inode number */ +typedef __int64_t __jid_t; /* job id (for IRIX jobs) */ typedef long __key_t; /* IPC key (for Sys V IPC) */ typedef __int32_t __lwpid_t; /* Thread ID (a.k.a. LWP) */ typedef __uint16_t __mode_t; /* permissions */ ==== //depot/projects/soc2010/gabor_jobs/irix_jobs/sys/sys/errno.h#2 (text+ko) ==== @@ -177,8 +177,11 @@ #define ENOTCAPABLE 93 /* Capabilities insufficient */ #endif /* _POSIX_SOURCE */ +#define ENOJOB 94 /* No such job */ +#define ENOPKG 95 /* Required software not installed */ + #ifndef _POSIX_SOURCE -#define ELAST 93 /* Must be equal largest errno */ +#define ELAST 95 /* Must be equal largest errno */ #endif /* _POSIX_SOURCE */ #ifdef _KERNEL ==== //depot/projects/soc2010/gabor_jobs/irix_jobs/sys/sys/resource.h#2 (text+ko) ==== @@ -34,6 +34,7 @@ #define _SYS_RESOURCE_H_ #include +#include #include #include @@ -106,7 +107,6 @@ /* * Resource limit string identifiers */ - #ifdef _RLIMIT_IDENT static char *rlimit_ident[RLIM_NLIMITS] = { "cpu", @@ -130,6 +130,16 @@ #define _RLIM_T_DECLARED #endif +#ifndef _JID_T_DECLARED +typedef __jid_t jid_t; +#define _JID_T_DECLARED +#endif + +#ifndef _UID_T_DECLARED +typedef __uid_t uid_t; +#define _UID_T_DECLARED +#endif + struct rlimit { rlim_t rlim_cur; /* current (soft) limit */ rlim_t rlim_max; /* maximum value for rlim_cur */ @@ -154,6 +164,19 @@ #define CP_IDLE 4 #define CPUSTATES 5 +/* + * IRIX job limits + */ +#define JLIMIT_CPU 0 +#define JLIMIT_DATA 1 +#define JLIMIT_NOFILE 2 +#define JLIMIT_NUMPROC 3 +#define JLIMIT_NUMTHR 4 +#define JLIMIT_VMEM 5 +#define JLIMIT_PMEM 6 +#define JLIMIT_RSS 7 +#define JLIMIT_NLIMITS 8 + #endif /* __BSD_VISIBLE */ #ifdef _KERNEL @@ -165,9 +188,14 @@ __BEGIN_DECLS /* XXX 2nd arg to [gs]etpriority() should be an id_t */ +jid_t getjid(void); +int getjlimit(jid_t, int, struct rlimit *); int getpriority(int, int); int getrlimit(int, struct rlimit *); int getrusage(int, struct rusage *); +int killjob(jid_t, int); +jid_t makenewjob(jid_t, uid_t); +int setjlimit(jid_t, int, struct rlimit *); int setpriority(int, int, int); int setrlimit(int, const struct rlimit *); __END_DECLS ==== //depot/projects/soc2010/gabor_jobs/irix_jobs/sys/sys/syscall.h#2 (text+ko) ==== @@ -2,8 +2,8 @@ * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/sys/syscall.h,v 1.236 2010/06/28 18:17:21 kib Exp $ - * created from FreeBSD: head/sys/kern/syscalls.master 209579 2010-06-28 18:06:46Z kib + * $FreeBSD$ + * created from FreeBSD: src/sys/kern/syscalls.master,v 1.263 2010/06/28 18:06:46 kib Exp */ #define SYS_syscall 0 @@ -429,4 +429,9 @@ #define SYS_shmctl 512 #define SYS_lpathconf 513 #define SYS_pselect 522 -#define SYS_MAXSYSCALL 523 +#define SYS_makenewjob 523 +#define SYS_killjob 524 +#define SYS_getjid 525 +#define SYS_getjlimit 526 +#define SYS_setjlimit 527 +#define SYS_MAXSYSCALL 528 ==== //depot/projects/soc2010/gabor_jobs/irix_jobs/sys/sys/syscall.mk#2 (text+ko) ==== @@ -1,7 +1,7 @@ # FreeBSD system call names. # DO NOT EDIT-- this file is automatically generated. -# $FreeBSD: src/sys/sys/syscall.mk,v 1.191 2010/06/28 18:17:21 kib Exp $ -# created from FreeBSD: head/sys/kern/syscalls.master 209579 2010-06-28 18:06:46Z kib +# $FreeBSD$ +# created from FreeBSD: src/sys/kern/syscalls.master,v 1.263 2010/06/28 18:06:46 kib Exp MIASM = \ syscall.o \ exit.o \ @@ -377,4 +377,9 @@ msgctl.o \ shmctl.o \ lpathconf.o \ - pselect.o + pselect.o \ + makenewjob.o \ + killjob.o \ + getjid.o \ + getjlimit.o \ + setjlimit.o ==== //depot/projects/soc2010/gabor_jobs/irix_jobs/sys/sys/sysproto.h#2 (text+ko) ==== @@ -2,8 +2,8 @@ * System call prototypes. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/sys/sysproto.h,v 1.243 2010/06/28 18:17:21 kib Exp $ - * created from FreeBSD: head/sys/kern/syscalls.master 209579 2010-06-28 18:06:46Z kib + * $FreeBSD$ + * created from FreeBSD: src/sys/kern/syscalls.master,v 1.263 2010/06/28 18:06:46 kib Exp */ #ifndef _SYS_SYSPROTO_H_ @@ -1649,6 +1649,27 @@ char ts_l_[PADL_(const struct timespec *)]; const struct timespec * ts; char ts_r_[PADR_(const struct timespec *)]; char sm_l_[PADL_(const sigset_t *)]; const sigset_t * sm; char sm_r_[PADR_(const sigset_t *)]; }; +struct makenewjob_args { + char rjid_l_[PADL_(__jid_t)]; __jid_t rjid; char rjid_r_[PADR_(__jid_t)]; + char user_l_[PADL_(__uid_t)]; __uid_t user; char user_r_[PADR_(__uid_t)]; +}; +struct killjob_args { + char jid_l_[PADL_(__jid_t)]; __jid_t jid; char jid_r_[PADR_(__jid_t)]; + char signal_l_[PADL_(int)]; int signal; char signal_r_[PADR_(int)]; +}; +struct getjid_args { + register_t dummy; +}; +struct getjlimit_args { + char jid_l_[PADL_(__jid_t)]; __jid_t jid; char jid_r_[PADR_(__jid_t)]; + char resource_l_[PADL_(int)]; int resource; char resource_r_[PADR_(int)]; + char rlp_l_[PADL_(struct rlimit *)]; struct rlimit * rlp; char rlp_r_[PADR_(struct rlimit *)]; +}; +struct setjlimit_args { + char jid_l_[PADL_(__jid_t)]; __jid_t jid; char jid_r_[PADR_(__jid_t)]; + char resource_l_[PADL_(int)]; int resource; char resource_r_[PADR_(int)]; + char rlp_l_[PADL_(struct rlimit *)]; struct rlimit * rlp; char rlp_r_[PADR_(struct rlimit *)]; +}; int nosys(struct thread *, struct nosys_args *); void sys_exit(struct thread *, struct sys_exit_args *); int fork(struct thread *, struct fork_args *); @@ -2008,6 +2029,11 @@ int shmctl(struct thread *, struct shmctl_args *); int lpathconf(struct thread *, struct lpathconf_args *); int pselect(struct thread *, struct pselect_args *); +int makenewjob(struct thread *, struct makenewjob_args *); +int killjob(struct thread *, struct killjob_args *); +int getjid(struct thread *, struct getjid_args *); +int getjlimit(struct thread *, struct getjlimit_args *); +int setjlimit(struct thread *, struct setjlimit_args *); #ifdef COMPAT_43 @@ -2681,6 +2707,11 @@ #define SYS_AUE_shmctl AUE_SHMCTL #define SYS_AUE_lpathconf AUE_LPATHCONF #define SYS_AUE_pselect AUE_SELECT +#define SYS_AUE_makenewjob AUE_NULL +#define SYS_AUE_killjob AUE_NULL +#define SYS_AUE_getjid AUE_NULL +#define SYS_AUE_getjlimit AUE_NULL +#define SYS_AUE_setjlimit AUE_NULL #undef PAD_ #undef PADL_ ==== //depot/projects/soc2010/gabor_jobs/irix_jobs/sys/sys/types.h#2 (text+ko) ==== @@ -181,7 +181,7 @@ #endif #ifndef _ID_T_DECLARED -typedef __id_t id_t; /* can hold a uid_t or pid_t */ +typedef __id_t id_t; /* can hold a uid_t, pid_t or jid_t */ #define _ID_T_DECLARED #endif ==== //depot/projects/soc2010/gabor_jobs/irix_jobs/sys/sys/ucred.h#2 (text+ko) ==== @@ -33,6 +33,7 @@ #ifndef _SYS_UCRED_H_ #define _SYS_UCRED_H_ +#include #include /* @@ -62,6 +63,7 @@ struct auditinfo_addr cr_audit; /* Audit properties. */ gid_t *cr_groups; /* groups */ int cr_agroups; /* Available groups */ + jid_t cr_jid; /* job id */ }; #define NOCRED ((struct ucred *)0) /* no credential available */ #define FSCRED ((struct ucred *)-1) /* filesystem credential */