Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 4 Jul 2010 20:00:41 GMT
From:      Gabor Kovesdan <gabor@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 180475 for review
Message-ID:  <201007042000.o64K0fWE062089@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
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 <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 */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201007042000.o64K0fWE062089>