PERFORCE change 180475 for review
Gabor Kovesdan
gabor at FreeBSD.org
Sun Jul 4 20:00:42 UTC 2010
http://p4web.freebsd.org/@@180475?ac=10
Change 180475 by gabor at 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 <sys/proc.h>
#include <sys/pioctl.h>
#include <sys/jail.h>
+#include <sys/jobs.h>
#include <sys/tty.h>
#include <sys/wait.h>
#include <sys/vmmeter.h>
#include <sys/vnode.h>
+#include <sys/resource.h>
#include <sys/resourcevar.h>
#include <sys/sbuf.h>
#include <sys/signalvar.h>
@@ -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 <sys/eventhandler.h>
#include <sys/filedesc.h>
#include <sys/jail.h>
+#include <sys/jobs.h>
#include <sys/kernel.h>
#include <sys/kthread.h>
#include <sys/sysctl.h>
@@ -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 <sys/cdefs.h>
+#include <sys/queue.h>
#include <sys/_timeval.h>
#include <sys/_types.h>
@@ -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 <sys/resource.h>
#include <bsm/audit.h>
/*
@@ -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 */
More information about the p4-projects
mailing list