From 9301eb94849946aac95b2a28af968e89d8dbfeca Mon Sep 17 00:00:00 2001 From: archie Date: Wed, 2 Oct 2002 16:48:16 +0000 Subject: 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(-) (limited to 'sys') diff --git a/sys/amd64/ia32/ia32_sysent.c b/sys/amd64/ia32/ia32_sysent.c index 9d7d934..eb0b11b 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 7d5b17c..1cb126c 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 9d7d934..eb0b11b 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 7d5b17c..1cb126c 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 9d7d934..eb0b11b 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 7d5b17c..1cb126c 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 29adb6c..32c6084 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 9f20562..81c5c7b 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 c000fab..b9f62b0 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 7616fc2..8f5fa57 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 88895b3..8679ac2 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 *)]; -- cgit v1.1