From 36a8dac10ddb6d6043ce2e684f8e06d46506e0df Mon Sep 17 00:00:00 2001 From: Archie Cobbs Date: Wed, 2 Oct 2002 16:48:16 +0000 Subject: [PATCH] Let kse_wakeup() take a KSE mailbox pointer argument. Reviewed by: julian --- sys/amd64/ia32/ia32_sysent.c | 2 +- sys/amd64/ia32/syscalls.master | 2 +- sys/compat/freebsd32/freebsd32_sysent.c | 2 +- sys/compat/freebsd32/syscalls.master | 2 +- sys/ia64/ia32/ia32_sysent.c | 2 +- sys/ia64/ia32/syscalls.master | 2 +- sys/kern/init_sysent.c | 2 +- sys/kern/kern_proc.c | 3 +++ sys/kern/syscalls.master | 2 +- sys/sys/kse.h | 2 +- sys/sys/sysproto.h | 2 +- 11 files changed, 13 insertions(+), 10 deletions(-) diff --git a/sys/amd64/ia32/ia32_sysent.c b/sys/amd64/ia32/ia32_sysent.c index 9d7d934795f2..eb0b11bf25e7 100644 --- a/sys/amd64/ia32/ia32_sysent.c +++ b/sys/amd64/ia32/ia32_sysent.c @@ -397,7 +397,7 @@ struct sysent ia32_sysent[] = { { 0, (sy_call_t *)nosys }, /* 377 = afs_syscall */ { AS(nmount_args), (sy_call_t *)nmount }, /* 378 = nmount */ { 0, (sy_call_t *)kse_exit }, /* 379 = kse_exit */ - { 0, (sy_call_t *)kse_wakeup }, /* 380 = kse_wakeup */ + { AS(kse_wakeup_args), (sy_call_t *)kse_wakeup }, /* 380 = kse_wakeup */ { AS(kse_create_args), (sy_call_t *)kse_create }, /* 381 = kse_create */ { AS(kse_thr_interrupt_args), (sy_call_t *)kse_thr_interrupt }, /* 382 = kse_thr_interrupt */ { 0, (sy_call_t *)kse_release }, /* 383 = kse_release */ diff --git a/sys/amd64/ia32/syscalls.master b/sys/amd64/ia32/syscalls.master index 7d5b17caf3d8..1cb126c19126 100644 --- a/sys/amd64/ia32/syscalls.master +++ b/sys/amd64/ia32/syscalls.master @@ -546,7 +546,7 @@ 378 NOPROTO BSD { int nmount(struct iovec *iovp, unsigned int iovcnt, \ int flags); } 379 NOPROTO BSD { int kse_exit(void); } -380 NOPROTO BSD { int kse_wakeup(void); } +380 NOPROTO BSD { int kse_wakeup(struct kse_mailbox *mbx); } 381 NOPROTO BSD { int kse_create(struct kse_mailbox *mbx, \ int newgroup); } 382 NOPROTO BSD { int kse_thr_interrupt(struct kse_thr_mailbox *tmbx); } diff --git a/sys/compat/freebsd32/freebsd32_sysent.c b/sys/compat/freebsd32/freebsd32_sysent.c index 9d7d934795f2..eb0b11bf25e7 100644 --- a/sys/compat/freebsd32/freebsd32_sysent.c +++ b/sys/compat/freebsd32/freebsd32_sysent.c @@ -397,7 +397,7 @@ struct sysent ia32_sysent[] = { { 0, (sy_call_t *)nosys }, /* 377 = afs_syscall */ { AS(nmount_args), (sy_call_t *)nmount }, /* 378 = nmount */ { 0, (sy_call_t *)kse_exit }, /* 379 = kse_exit */ - { 0, (sy_call_t *)kse_wakeup }, /* 380 = kse_wakeup */ + { AS(kse_wakeup_args), (sy_call_t *)kse_wakeup }, /* 380 = kse_wakeup */ { AS(kse_create_args), (sy_call_t *)kse_create }, /* 381 = kse_create */ { AS(kse_thr_interrupt_args), (sy_call_t *)kse_thr_interrupt }, /* 382 = kse_thr_interrupt */ { 0, (sy_call_t *)kse_release }, /* 383 = kse_release */ diff --git a/sys/compat/freebsd32/syscalls.master b/sys/compat/freebsd32/syscalls.master index 7d5b17caf3d8..1cb126c19126 100644 --- a/sys/compat/freebsd32/syscalls.master +++ b/sys/compat/freebsd32/syscalls.master @@ -546,7 +546,7 @@ 378 NOPROTO BSD { int nmount(struct iovec *iovp, unsigned int iovcnt, \ int flags); } 379 NOPROTO BSD { int kse_exit(void); } -380 NOPROTO BSD { int kse_wakeup(void); } +380 NOPROTO BSD { int kse_wakeup(struct kse_mailbox *mbx); } 381 NOPROTO BSD { int kse_create(struct kse_mailbox *mbx, \ int newgroup); } 382 NOPROTO BSD { int kse_thr_interrupt(struct kse_thr_mailbox *tmbx); } diff --git a/sys/ia64/ia32/ia32_sysent.c b/sys/ia64/ia32/ia32_sysent.c index 9d7d934795f2..eb0b11bf25e7 100644 --- a/sys/ia64/ia32/ia32_sysent.c +++ b/sys/ia64/ia32/ia32_sysent.c @@ -397,7 +397,7 @@ struct sysent ia32_sysent[] = { { 0, (sy_call_t *)nosys }, /* 377 = afs_syscall */ { AS(nmount_args), (sy_call_t *)nmount }, /* 378 = nmount */ { 0, (sy_call_t *)kse_exit }, /* 379 = kse_exit */ - { 0, (sy_call_t *)kse_wakeup }, /* 380 = kse_wakeup */ + { AS(kse_wakeup_args), (sy_call_t *)kse_wakeup }, /* 380 = kse_wakeup */ { AS(kse_create_args), (sy_call_t *)kse_create }, /* 381 = kse_create */ { AS(kse_thr_interrupt_args), (sy_call_t *)kse_thr_interrupt }, /* 382 = kse_thr_interrupt */ { 0, (sy_call_t *)kse_release }, /* 383 = kse_release */ diff --git a/sys/ia64/ia32/syscalls.master b/sys/ia64/ia32/syscalls.master index 7d5b17caf3d8..1cb126c19126 100644 --- a/sys/ia64/ia32/syscalls.master +++ b/sys/ia64/ia32/syscalls.master @@ -546,7 +546,7 @@ 378 NOPROTO BSD { int nmount(struct iovec *iovp, unsigned int iovcnt, \ int flags); } 379 NOPROTO BSD { int kse_exit(void); } -380 NOPROTO BSD { int kse_wakeup(void); } +380 NOPROTO BSD { int kse_wakeup(struct kse_mailbox *mbx); } 381 NOPROTO BSD { int kse_create(struct kse_mailbox *mbx, \ int newgroup); } 382 NOPROTO BSD { int kse_thr_interrupt(struct kse_thr_mailbox *tmbx); } diff --git a/sys/kern/init_sysent.c b/sys/kern/init_sysent.c index 29adb6c290e8..32c6084a5c84 100644 --- a/sys/kern/init_sysent.c +++ b/sys/kern/init_sysent.c @@ -408,7 +408,7 @@ struct sysent sysent[] = { { 0, (sy_call_t *)nosys }, /* 377 = afs_syscall */ { AS(nmount_args), (sy_call_t *)nmount }, /* 378 = nmount */ { 0, (sy_call_t *)kse_exit }, /* 379 = kse_exit */ - { 0, (sy_call_t *)kse_wakeup }, /* 380 = kse_wakeup */ + { AS(kse_wakeup_args), (sy_call_t *)kse_wakeup }, /* 380 = kse_wakeup */ { AS(kse_create_args), (sy_call_t *)kse_create }, /* 381 = kse_create */ { AS(kse_thr_interrupt_args), (sy_call_t *)kse_thr_interrupt }, /* 382 = kse_thr_interrupt */ { SYF_MPSAFE | 0, (sy_call_t *)kse_release }, /* 383 = kse_release */ diff --git a/sys/kern/kern_proc.c b/sys/kern/kern_proc.c index 9f20562d3d58..81c5c7b36c38 100644 --- a/sys/kern/kern_proc.c +++ b/sys/kern/kern_proc.c @@ -330,6 +330,9 @@ kse_release(struct thread *td, struct kse_release_args *uap) return (0); } +/* struct kse_wakeup_args { + struct kse_mailbox *mbx; +}; */ int kse_wakeup(struct thread *td, struct kse_wakeup_args *uap) { diff --git a/sys/kern/syscalls.master b/sys/kern/syscalls.master index c000fab3254e..b9f62b065c23 100644 --- a/sys/kern/syscalls.master +++ b/sys/kern/syscalls.master @@ -548,7 +548,7 @@ 378 STD BSD { int nmount(struct iovec *iovp, unsigned int iovcnt, \ int flags); } 379 STD BSD { int kse_exit(void); } -380 STD BSD { int kse_wakeup(void); } +380 STD BSD { int kse_wakeup(struct kse_mailbox *mbx); } 381 STD BSD { int kse_create(struct kse_mailbox *mbx, \ int newgroup); } 382 STD BSD { int kse_thr_interrupt(struct kse_thr_mailbox *tmbx); } diff --git a/sys/sys/kse.h b/sys/sys/kse.h index 7616fc210b7a..8f5fa578b0ac 100644 --- a/sys/sys/kse.h +++ b/sys/sys/kse.h @@ -81,7 +81,7 @@ int kse_create(struct kse_mailbox *, int); int kse_exit(void); int kse_release(void); int kse_thr_interrupt(struct kse_thr_mailbox *); -int kse_wakeup(void); +int kse_wakeup(struct kse_mailbox *); #endif /* !_KERNEL */ #endif /* !_SYS_KSE_H_ */ diff --git a/sys/sys/sysproto.h b/sys/sys/sysproto.h index 88895b38b673..8679ac23fb08 100644 --- a/sys/sys/sysproto.h +++ b/sys/sys/sysproto.h @@ -1062,7 +1062,7 @@ struct kse_exit_args { register_t dummy; }; struct kse_wakeup_args { - register_t dummy; + char mbx_l_[PADL_(struct kse_mailbox *)]; struct kse_mailbox * mbx; char mbx_r_[PADR_(struct kse_mailbox *)]; }; struct kse_create_args { char mbx_l_[PADL_(struct kse_mailbox *)]; struct kse_mailbox * mbx; char mbx_r_[PADR_(struct kse_mailbox *)];