PERFORCE change 72266 for review
John Baldwin
jhb at FreeBSD.org
Tue Mar 1 18:15:57 GMT 2005
http://perforce.freebsd.org/chv.cgi?CH=72266
Change 72266 by jhb at jhb_slimer on 2005/03/01 18:15:27
IFC @72263.
Affected files ...
.. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_misc.c#16 integrate
.. //depot/projects/smpng/sys/compat/linux/linux_util.c#14 integrate
.. //depot/projects/smpng/sys/compat/linux/linux_util.h#12 integrate
.. //depot/projects/smpng/sys/compat/ndis/kern_windrv.c#2 integrate
.. //depot/projects/smpng/sys/kern/init_sysent.c#54 integrate
.. //depot/projects/smpng/sys/kern/kern_event.c#37 integrate
.. //depot/projects/smpng/sys/kern/syscalls.c#54 integrate
.. //depot/projects/smpng/sys/kern/syscalls.master#55 integrate
.. //depot/projects/smpng/sys/sys/event.h#14 integrate
.. //depot/projects/smpng/sys/sys/syscall.h#53 integrate
.. //depot/projects/smpng/sys/sys/syscall.mk#53 integrate
.. //depot/projects/smpng/sys/sys/syscallsubr.h#19 integrate
.. //depot/projects/smpng/sys/sys/sysproto.h#55 integrate
Differences ...
==== //depot/projects/smpng/sys/compat/freebsd32/freebsd32_misc.c#16 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.29 2005/03/01 13:50:57 ps Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.30 2005/03/01 17:45:55 ps Exp $");
#include "opt_compat.h"
@@ -556,44 +556,34 @@
int
freebsd32_kevent(struct thread *td, struct freebsd32_kevent_args *uap)
{
- int error;
- caddr_t sg;
struct timespec32 ts32;
- struct timespec ts;
+ struct timespec ts, *tsp;
+ struct kevent *ks;
struct kevent32 ks32;
- struct kevent *ks;
- struct kevent_args a;
- int i;
-
- sg = stackgap_init();
+ struct kevent *changes, *events;
+ int error, i;
- a.fd = uap->fd;
- a.changelist = (struct kevent *)uap->changelist;
- a.nchanges = uap->nchanges;
- a.eventlist = (struct kevent *)uap->eventlist;
- a.nevents = uap->nevents;
- a.timeout = NULL;
if (uap->timeout) {
- a.timeout = stackgap_alloc(&sg, sizeof(struct timespec));
error = copyin(uap->timeout, &ts32, sizeof(ts32));
if (error)
return (error);
CP(ts32, ts, tv_sec);
CP(ts32, ts, tv_nsec);
- error = copyout(&ts, (void *)(uintptr_t)a.timeout, sizeof(ts));
- if (error)
- return (error);
- }
- if (uap->changelist) {
- a.changelist = (struct kevent *)stackgap_alloc(&sg,
- uap->nchanges * sizeof(struct kevent));
+ tsp = &ts;
+ } else
+ tsp = NULL;
+ if (uap->changelist && uap->nchanges > 0) {
+ changes = malloc(sizeof(struct kevent) * uap->nchanges, M_TEMP,
+ M_WAITOK);
for (i = 0; i < uap->nchanges; i++) {
error = copyin(&uap->changelist[i], &ks32,
sizeof(ks32));
- if (error)
+ if (error) {
+ free(changes, M_TEMP);
return (error);
- ks = (struct kevent *)(uintptr_t)&a.changelist[i];
+ }
+ ks = &changes[i];
CP(ks32, *ks, ident);
CP(ks32, *ks, filter);
CP(ks32, *ks, flags);
@@ -601,15 +591,19 @@
CP(ks32, *ks, data);
PTRIN_CP(ks32, *ks, udata);
}
- }
- if (uap->eventlist) {
- a.eventlist = stackgap_alloc(&sg,
- uap->nevents * sizeof(struct kevent));
- }
- error = kevent(td, &a);
- if (uap->eventlist && error > 0) {
- for (i = 0; i < error; i++) {
- ks = &a.eventlist[i];
+ } else
+ changes = NULL;
+ if (uap->eventlist && uap->nevents > 0)
+ events = malloc(sizeof(struct kevent) * uap->nevents, M_TEMP,
+ M_WAITOK);
+ else
+ events = NULL;
+ error = kern_kevent(td, uap->fd, changes, uap->nchanges, UIO_SYSSPACE,
+ events, uap->nevents, UIO_SYSSPACE, tsp);
+ free(changes, M_TEMP);
+ if (uap->eventlist && events && td->td_retval[0] > 0) {
+ for (i = 0; i < td->td_retval[0]; i++) {
+ ks = &events[i];
CP(*ks, ks32, ident);
CP(*ks, ks32, filter);
CP(*ks, ks32, flags);
@@ -619,10 +613,12 @@
error = copyout(&ks32, &uap->eventlist[i],
sizeof(ks32));
if (error)
- return (error);
+ break;
}
}
- return error;
+ if (events)
+ free(events, M_TEMP);
+ return (error);
}
int
==== //depot/projects/smpng/sys/compat/linux/linux_util.c#14 (text+ko) ====
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/linux/linux_util.c,v 1.28 2005/02/07 18:46:05 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/linux/linux_util.c,v 1.29 2005/03/01 17:57:45 jhb Exp $");
#include <sys/param.h>
#include <sys/lock.h>
@@ -57,39 +57,6 @@
* be in exists.
*/
int
-linux_emul_find(td, sgp, path, pbuf, cflag)
- struct thread *td;
- caddr_t *sgp; /* Pointer to stackgap memory */
- char *path;
- char **pbuf;
- int cflag;
-{
- char *newpath;
- size_t sz;
- int error;
-
- error = linux_emul_convpath(td, path, (sgp == NULL) ? UIO_SYSSPACE :
- UIO_USERSPACE, &newpath, cflag);
- if (newpath == NULL)
- return (error);
-
- if (sgp == NULL) {
- *pbuf = newpath;
- return (error);
- }
-
- sz = strlen(newpath);
- *pbuf = stackgap_alloc(sgp, sz + 1);
- if (*pbuf != NULL)
- error = copyout(newpath, *pbuf, sz + 1);
- else
- error = ENAMETOOLONG;
- free(newpath, M_TEMP);
-
- return (error);
-}
-
-int
linux_emul_convpath(td, path, pathseg, pbuf, cflag)
struct thread *td;
char *path;
==== //depot/projects/smpng/sys/compat/linux/linux_util.h#12 (text+ko) ====
@@ -28,7 +28,7 @@
*
* from: svr4_util.h,v 1.5 1994/11/18 02:54:31 christos Exp
* from: linux_util.h,v 1.2 1995/03/05 23:23:50 fvdl Exp
- * $FreeBSD: src/sys/compat/linux/linux_util.h,v 1.24 2005/01/05 22:34:35 imp Exp $
+ * $FreeBSD: src/sys/compat/linux/linux_util.h,v 1.25 2005/03/01 17:57:45 jhb Exp $
*/
/*
@@ -78,19 +78,6 @@
extern const char linux_emul_path[];
int linux_emul_convpath(struct thread *, char *, enum uio_seg, char **, int);
-int linux_emul_find(struct thread *, caddr_t *, char *, char **, int);
-
-#define CHECKALT(td, sgp, path, i) \
- do { \
- int _error; \
- \
- _error = linux_emul_find(td, sgp, path, &path, i); \
- if (_error == EFAULT) \
- return (_error); \
- } while (0)
-
-#define CHECKALTEXIST(td, sgp, path) CHECKALT(td, sgp, path, 0)
-#define CHECKALTCREAT(td, sgp, path) CHECKALT(td, sgp, path, 1)
#define LCONVPATH(td, upath, pathp, i) \
do { \
==== //depot/projects/smpng/sys/compat/ndis/kern_windrv.c#2 (text+ko) ====
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/ndis/kern_windrv.c,v 1.4 2005/02/24 21:49:14 wpaul Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/ndis/kern_windrv.c,v 1.5 2005/03/01 17:21:25 wpaul Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -234,7 +234,7 @@
image_optional_header opt_hdr;
driver_entry entry;
struct drvdb_ent *new;
- struct driver_object *dobj;
+ struct driver_object *drv;
int status;
/*
@@ -277,43 +277,43 @@
if (new == NULL)
return (ENOMEM);
- dobj = malloc(sizeof(device_object), M_DEVBUF, M_NOWAIT|M_ZERO);
- if (dobj == NULL) {
+ drv = malloc(sizeof(driver_object), M_DEVBUF, M_NOWAIT|M_ZERO);
+ if (drv == NULL) {
free (new, M_DEVBUF);
return (ENOMEM);
}
/* Allocate a driver extension structure too. */
- dobj->dro_driverext = malloc(sizeof(driver_extension),
+ drv->dro_driverext = malloc(sizeof(driver_extension),
M_DEVBUF, M_NOWAIT|M_ZERO);
- if (dobj->dro_driverext == NULL) {
+ if (drv->dro_driverext == NULL) {
free(new, M_DEVBUF);
- free(dobj, M_DEVBUF);
+ free(drv, M_DEVBUF);
return(ENOMEM);
}
- INIT_LIST_HEAD((&dobj->dro_driverext->dre_usrext));
+ INIT_LIST_HEAD((&drv->dro_driverext->dre_usrext));
- dobj->dro_driverstart = (void *)img;
- dobj->dro_driversize = len;
+ drv->dro_driverstart = (void *)img;
+ drv->dro_driversize = len;
- dobj->dro_drivername.us_len = strlen(DUMMY_REGISTRY_PATH) * 2;
- dobj->dro_drivername.us_maxlen = strlen(DUMMY_REGISTRY_PATH) * 2;
- dobj->dro_drivername.us_buf = NULL;
+ drv->dro_drivername.us_len = strlen(DUMMY_REGISTRY_PATH) * 2;
+ drv->dro_drivername.us_maxlen = strlen(DUMMY_REGISTRY_PATH) * 2;
+ drv->dro_drivername.us_buf = NULL;
ndis_ascii_to_unicode(DUMMY_REGISTRY_PATH,
- &dobj->dro_drivername.us_buf);
+ &drv->dro_drivername.us_buf);
- new->windrv_object = dobj;
+ new->windrv_object = drv;
/* Now call the DriverEntry() function. */
- status = MSCALL2(entry, dobj, &dobj->dro_drivername);
+ status = MSCALL2(entry, drv, &drv->dro_drivername);
if (status != STATUS_SUCCESS) {
- free(dobj->dro_drivername.us_buf, M_DEVBUF);
- free(dobj, M_DEVBUF);
+ free(drv->dro_drivername.us_buf, M_DEVBUF);
+ free(drv, M_DEVBUF);
free(new, M_DEVBUF);
return(ENODEV);
}
==== //depot/projects/smpng/sys/kern/init_sysent.c#54 (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.185 2005/01/26 02:29:18 jeff Exp $
- * created from FreeBSD: src/sys/kern/syscalls.master,v 1.184 2005/01/24 10:49:26 jeff Exp
+ * $FreeBSD: src/sys/kern/init_sysent.c,v 1.186 2005/03/01 17:44:34 ps Exp $
+ * created from FreeBSD: src/sys/kern/syscalls.master,v 1.186 2005/03/01 17:43:08 ps Exp
*/
#include "opt_compat.h"
==== //depot/projects/smpng/sys/kern/kern_event.c#37 (text+ko) ====
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/kern_event.c,v 1.88 2005/02/22 13:11:33 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/kern_event.c,v 1.89 2005/03/01 17:45:55 ps Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -54,6 +54,7 @@
#include <sys/stat.h>
#include <sys/sysctl.h>
#include <sys/sysproto.h>
+#include <sys/syscallsubr.h>
#include <sys/taskqueue.h>
#include <sys/uio.h>
@@ -80,14 +81,17 @@
TASKQUEUE_DEFINE_THREAD(kqueue);
+static int kevent_copyout(struct kevent **eventlist, enum uio_seg eventseg,
+ struct kevent *kevp, int count);
static int kqueue_aquire(struct file *fp, struct kqueue **kqp);
static void kqueue_release(struct kqueue *kq, int locked);
static int kqueue_expand(struct kqueue *kq, struct filterops *fops,
uintptr_t ident, int waitok);
static void kqueue_task(void *arg, int pending);
static int kqueue_scan(struct kqueue *kq, int maxevents,
- struct kevent *ulistp, const struct timespec *timeout,
- struct kevent *keva, struct thread *td);
+ struct kevent *eventlist, enum uio_seg eventseg,
+ const struct timespec *timeout, struct kevent *keva,
+ struct thread *td);
static void kqueue_wakeup(struct kqueue *kq);
static struct filterops *kqueue_fo_find(int filt);
static void kqueue_fo_release(int filt);
@@ -531,54 +535,91 @@
int
kevent(struct thread *td, struct kevent_args *uap)
{
+ struct timespec ts, *tsp;
+ int error;
+
+ if (uap->timeout != NULL) {
+ error = copyin(uap->timeout, &ts, sizeof(ts));
+ if (error)
+ return (error);
+ tsp = &ts;
+ } else
+ tsp = NULL;
+
+ return (kern_kevent(td, uap->fd, uap->changelist, uap->nchanges,
+ UIO_USERSPACE, uap->eventlist, uap->nevents, UIO_USERSPACE, tsp));
+}
+
+/*
+ * Copy 'count' items into the destination list pointd to by *eventlist. The
+ * eventlist and nevents values are updated to point after the copied out
+ * item(s) upon return.
+ */
+static int
+kevent_copyout(struct kevent **eventlist, enum uio_seg eventseg,
+ struct kevent *kevp, int count)
+{
+ int error;
+
+ if (eventseg == UIO_USERSPACE)
+ error = copyout(kevp, *eventlist,
+ sizeof(struct kevent) * count);
+ else {
+ bcopy(kevp, *eventlist, sizeof(struct kevent) * count);
+ error = 0;
+ }
+ *eventlist += count;
+ return (error);
+}
+
+int
+kern_kevent(struct thread *td, int fd, struct kevent *changelist, int nchanges,
+ enum uio_seg changeseg, struct kevent *eventlist, int nevents,
+ enum uio_seg eventseg, const struct timespec *timeout)
+{
struct kevent keva[KQ_NEVENTS];
- struct kevent *kevp;
+ struct kevent *kevp, *changes;
struct kqueue *kq;
struct file *fp;
- struct timespec ts;
int i, n, nerrors, error;
- if ((error = fget(td, uap->fd, &fp)) != 0)
+ if ((error = fget(td, fd, &fp)) != 0)
return (error);
if ((error = kqueue_aquire(fp, &kq)) != 0)
goto done_norel;
- if (uap->timeout != NULL) {
- error = copyin(uap->timeout, &ts, sizeof(ts));
- if (error)
- goto done;
- uap->timeout = &ts;
- }
-
nerrors = 0;
- while (uap->nchanges > 0) {
- n = uap->nchanges > KQ_NEVENTS ? KQ_NEVENTS : uap->nchanges;
- error = copyin(uap->changelist, keva,
- n * sizeof *keva);
- if (error)
- goto done;
+ while (nchanges > 0) {
+ if (changeseg == UIO_USERSPACE) {
+ n = nchanges > KQ_NEVENTS ? KQ_NEVENTS : nchanges;
+ error = copyin(changelist, keva, n * sizeof *keva);
+ if (error)
+ goto done;
+ changes = keva;
+ } else {
+ changes = changelist;
+ n = nchanges;
+ }
for (i = 0; i < n; i++) {
- kevp = &keva[i];
+ kevp = &changes[i];
kevp->flags &= ~EV_SYSFLAGS;
error = kqueue_register(kq, kevp, td, 1);
if (error) {
- if (uap->nevents != 0) {
+ if (nevents != 0) {
kevp->flags = EV_ERROR;
kevp->data = error;
- (void) copyout(kevp,
- uap->eventlist,
- sizeof(*kevp));
- uap->eventlist++;
- uap->nevents--;
+ (void) kevent_copyout(&eventlist,
+ eventseg, kevp, 1);
+ nevents--;
nerrors++;
} else {
goto done;
}
}
}
- uap->nchanges -= n;
- uap->changelist += n;
+ nchanges -= n;
+ changelist += n;
}
if (nerrors) {
td->td_retval[0] = nerrors;
@@ -586,7 +627,7 @@
goto done;
}
- error = kqueue_scan(kq, uap->nevents, uap->eventlist, uap->timeout,
+ error = kqueue_scan(kq, nevents, eventlist, eventseg, timeout,
keva, td);
done:
kqueue_release(kq, 0);
@@ -1046,8 +1087,9 @@
* We treat KN_MARKER knotes as if they are INFLUX.
*/
static int
-kqueue_scan(struct kqueue *kq, int maxevents, struct kevent *ulistp,
- const struct timespec *tsp, struct kevent *keva, struct thread *td)
+kqueue_scan(struct kqueue *kq, int maxevents, struct kevent *eventlist,
+ enum uio_seg eventseg, const struct timespec *tsp, struct kevent *keva,
+ struct thread *td)
{
struct kevent *kevp;
struct timeval atv, rtv, ttv;
@@ -1200,8 +1242,8 @@
if (nkev == KQ_NEVENTS) {
KQ_UNLOCK_FLUX(kq);
- error = copyout(keva, ulistp, sizeof *keva * nkev);
- ulistp += nkev;
+ error = kevent_copyout(&eventlist, eventseg, keva,
+ nkev);
nkev = 0;
kevp = keva;
KQ_LOCK(kq);
@@ -1218,7 +1260,7 @@
done_nl:
KQ_NOTOWNED(kq);
if (nkev != 0)
- error = copyout(keva, ulistp, sizeof *keva * nkev);
+ error = kevent_copyout(&eventlist, eventseg, keva, nkev);
td->td_retval[0] = maxevents - count;
return (error);
}
==== //depot/projects/smpng/sys/kern/syscalls.c#54 (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.171 2005/01/26 02:29:18 jeff Exp $
- * created from FreeBSD: src/sys/kern/syscalls.master,v 1.184 2005/01/24 10:49:26 jeff Exp
+ * $FreeBSD: src/sys/kern/syscalls.c,v 1.172 2005/03/01 17:44:34 ps Exp $
+ * created from FreeBSD: src/sys/kern/syscalls.master,v 1.186 2005/03/01 17:43:08 ps Exp
*/
const char *syscallnames[] = {
==== //depot/projects/smpng/sys/kern/syscalls.master#55 (text+ko) ====
@@ -1,4 +1,4 @@
- $FreeBSD: src/sys/kern/syscalls.master,v 1.185 2005/01/26 02:28:43 jeff Exp $
+ $FreeBSD: src/sys/kern/syscalls.master,v 1.186 2005/03/01 17:43:08 ps Exp $
; from: @(#)syscalls.master 8.2 (Berkeley) 1/13/94
;
; System call name/number master file.
@@ -515,7 +515,7 @@
361 MSTD { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }
362 MSTD { int kqueue(void); }
363 MSTD { int kevent(int fd, \
- const struct kevent *changelist, int nchanges, \
+ struct kevent *changelist, int nchanges, \
struct kevent *eventlist, int nevents, \
const struct timespec *timeout); }
364 UNIMPL __cap_get_proc
==== //depot/projects/smpng/sys/sys/event.h#14 (text+ko) ====
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/sys/event.h,v 1.26 2004/08/15 15:36:18 jmg Exp $
+ * $FreeBSD: src/sys/sys/event.h,v 1.27 2005/03/01 17:45:55 ps Exp $
*/
#ifndef _SYS_EVENT_H_
@@ -221,7 +221,7 @@
__BEGIN_DECLS
int kqueue(void);
-int kevent(int kq, const struct kevent *changelist, int nchanges,
+int kevent(int kq, struct kevent *changelist, int nchanges,
struct kevent *eventlist, int nevents,
const struct timespec *timeout);
__END_DECLS
==== //depot/projects/smpng/sys/sys/syscall.h#53 (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.168 2005/01/26 02:29:18 jeff Exp $
- * created from FreeBSD: src/sys/kern/syscalls.master,v 1.184 2005/01/24 10:49:26 jeff Exp
+ * $FreeBSD: src/sys/sys/syscall.h,v 1.169 2005/03/01 17:44:34 ps Exp $
+ * created from FreeBSD: src/sys/kern/syscalls.master,v 1.186 2005/03/01 17:43:08 ps Exp
*/
#define SYS_syscall 0
==== //depot/projects/smpng/sys/sys/syscall.mk#53 (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.123 2005/01/26 02:29:18 jeff Exp $
-# created from FreeBSD: src/sys/kern/syscalls.master,v 1.184 2005/01/24 10:49:26 jeff Exp
+# $FreeBSD: src/sys/sys/syscall.mk,v 1.124 2005/03/01 17:44:34 ps Exp $
+# created from FreeBSD: src/sys/kern/syscalls.master,v 1.186 2005/03/01 17:43:08 ps Exp
MIASM = \
syscall.o \
exit.o \
==== //depot/projects/smpng/sys/sys/syscallsubr.h#19 (text+ko) ====
@@ -22,7 +22,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/sys/syscallsubr.h,v 1.25 2005/02/13 17:37:20 sobomax Exp $
+ * $FreeBSD: src/sys/sys/syscallsubr.h,v 1.26 2005/03/01 17:44:34 ps Exp $
*/
#ifndef _SYS_SYSCALLSUBR_H_
@@ -43,6 +43,7 @@
struct rusage;
struct sockaddr;
struct stat;
+struct kevent;
int kern___getcwd(struct thread *td, u_char *buf, enum uio_seg bufseg,
u_int buflen);
@@ -69,6 +70,9 @@
int kern_getrusage(struct thread *td, int who, struct rusage *rup);
int kern_getsockopt(struct thread *td, int s, int level, int name,
void *optval, enum uio_seg valseg, socklen_t *valsize);
+int kern_kevent(struct thread *td, int fd, struct kevent *changelist,
+ int nchanges, enum uio_seg changeseg, struct kevent *eventlist,
+ int nevents, enum uio_seg eventseg, const struct timespec *timeout);
int kern_lchown(struct thread *td, char *path, enum uio_seg pathseg,
int uid, int gid);
int kern_link(struct thread *td, char *path, char *link,
==== //depot/projects/smpng/sys/sys/sysproto.h#55 (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.167 2005/01/26 02:29:18 jeff Exp $
- * created from FreeBSD: src/sys/kern/syscalls.master,v 1.184 2005/01/24 10:49:26 jeff Exp
+ * $FreeBSD: src/sys/sys/sysproto.h,v 1.168 2005/03/01 17:44:34 ps Exp $
+ * created from FreeBSD: src/sys/kern/syscalls.master,v 1.186 2005/03/01 17:43:08 ps Exp
*/
#ifndef _SYS_SYSPROTO_H_
@@ -1009,7 +1009,7 @@
};
struct kevent_args {
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
- char changelist_l_[PADL_(const struct kevent *)]; const struct kevent * changelist; char changelist_r_[PADR_(const struct kevent *)];
+ char changelist_l_[PADL_(struct kevent *)]; struct kevent * changelist; char changelist_r_[PADR_(struct kevent *)];
char nchanges_l_[PADL_(int)]; int nchanges; char nchanges_r_[PADR_(int)];
char eventlist_l_[PADL_(struct kevent *)]; struct kevent * eventlist; char eventlist_r_[PADR_(struct kevent *)];
char nevents_l_[PADL_(int)]; int nevents; char nevents_r_[PADR_(int)];
More information about the p4-projects
mailing list