summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorarchie <archie@FreeBSD.org>2002-09-25 18:10:42 +0000
committerarchie <archie@FreeBSD.org>2002-09-25 18:10:42 +0000
commit904b65e85dd276aa2fb13c05b6eea79860a6855f (patch)
tree33219152bf2278891abb4870867b5943ed735b0d /sys
parent3df40ef43851716731330fa4b3988b6e3693cf22 (diff)
downloadFreeBSD-src-904b65e85dd276aa2fb13c05b6eea79860a6855f.zip
FreeBSD-src-904b65e85dd276aa2fb13c05b6eea79860a6855f.tar.gz
Make the following name changes to KSE related functions, etc., to better
represent their purpose and minimize namespace conflicts: kse_fn_t -> kse_func_t struct thread_mailbox -> struct kse_thr_mailbox thread_interrupt() -> kse_thr_interrupt() kse_yield() -> kse_release() kse_new() -> kse_create() Add missing declaration of kse_thr_interrupt() to <sys/kse.h>. Regenerate the various generated syscall files. Minor style fixes. Reviewed by: julian
Diffstat (limited to 'sys')
-rw-r--r--sys/amd64/ia32/ia32_proto.h2
-rw-r--r--sys/amd64/ia32/ia32_syscall.h6
-rw-r--r--sys/amd64/ia32/ia32_sysent.c6
-rw-r--r--sys/amd64/ia32/syscalls.master8
-rw-r--r--sys/compat/freebsd32/freebsd32_proto.h2
-rw-r--r--sys/compat/freebsd32/freebsd32_syscall.h6
-rw-r--r--sys/compat/freebsd32/freebsd32_sysent.c6
-rw-r--r--sys/compat/freebsd32/syscalls.master8
-rw-r--r--sys/ia64/ia32/ia32_proto.h2
-rw-r--r--sys/ia64/ia32/ia32_syscall.h6
-rw-r--r--sys/ia64/ia32/ia32_sysent.c6
-rw-r--r--sys/ia64/ia32/syscalls.master8
-rw-r--r--sys/kern/init_sysent.c6
-rw-r--r--sys/kern/kern_kse.c6
-rw-r--r--sys/kern/kern_proc.c19
-rw-r--r--sys/kern/kern_thread.c6
-rw-r--r--sys/kern/syscalls.c6
-rw-r--r--sys/kern/syscalls.master8
-rw-r--r--sys/sys/kse.h26
-rw-r--r--sys/sys/proc.h2
-rw-r--r--sys/sys/syscall.h6
-rw-r--r--sys/sys/syscall.mk6
-rw-r--r--sys/sys/sysproto.h16
23 files changed, 88 insertions, 85 deletions
diff --git a/sys/amd64/ia32/ia32_proto.h b/sys/amd64/ia32/ia32_proto.h
index 36b9e73..d7b14b7 100644
--- a/sys/amd64/ia32/ia32_proto.h
+++ b/sys/amd64/ia32/ia32_proto.h
@@ -10,8 +10,8 @@
#define _IA32_SYSPROTO_H_
#include <sys/signal.h>
-
#include <sys/acl.h>
+#include <posix4/_semaphore.h>
struct proc;
diff --git a/sys/amd64/ia32/ia32_syscall.h b/sys/amd64/ia32/ia32_syscall.h
index e457152..7aeb701 100644
--- a/sys/amd64/ia32/ia32_syscall.h
+++ b/sys/amd64/ia32/ia32_syscall.h
@@ -279,9 +279,9 @@
#define IA32_SYS_nmount 378
#define IA32_SYS_kse_exit 379
#define IA32_SYS_kse_wakeup 380
-#define IA32_SYS_kse_new 381
-#define IA32_SYS_thread_wakeup 382
-#define IA32_SYS_kse_yield 383
+#define IA32_SYS_kse_create 381
+#define IA32_SYS_kse_thr_interrupt 382
+#define IA32_SYS_kse_release 383
#define IA32_SYS_kenv 390
#define IA32_SYS_lchflags 391
#define IA32_SYS_uuidgen 392
diff --git a/sys/amd64/ia32/ia32_sysent.c b/sys/amd64/ia32/ia32_sysent.c
index a385596..9d7d934 100644
--- a/sys/amd64/ia32/ia32_sysent.c
+++ b/sys/amd64/ia32/ia32_sysent.c
@@ -398,9 +398,9 @@ struct sysent ia32_sysent[] = {
{ 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_new_args), (sy_call_t *)kse_new }, /* 381 = kse_new */
- { AS(thread_wakeup_args), (sy_call_t *)thread_wakeup }, /* 382 = thread_wakeup */
- { 0, (sy_call_t *)kse_yield }, /* 383 = kse_yield */
+ { 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 */
{ 0, (sy_call_t *)nosys }, /* 384 = __mac_get_proc */
{ 0, (sy_call_t *)nosys }, /* 385 = __mac_set_proc */
{ 0, (sy_call_t *)nosys }, /* 386 = __mac_get_fd */
diff --git a/sys/amd64/ia32/syscalls.master b/sys/amd64/ia32/syscalls.master
index 6de1c57..7d5b17c 100644
--- a/sys/amd64/ia32/syscalls.master
+++ b/sys/amd64/ia32/syscalls.master
@@ -547,10 +547,10 @@
int flags); }
379 NOPROTO BSD { int kse_exit(void); }
380 NOPROTO BSD { int kse_wakeup(void); }
-381 NOPROTO BSD { int kse_new(struct kse_mailbox * mbx, \
- int new_grp_flag); }
-382 NOPROTO BSD { int thread_wakeup(struct thread_mailbox *tmbx); }
-383 NOPROTO BSD { int kse_yield(void); }
+381 NOPROTO BSD { int kse_create(struct kse_mailbox *mbx, \
+ int newgroup); }
+382 NOPROTO BSD { int kse_thr_interrupt(struct kse_thr_mailbox *tmbx); }
+383 NOPROTO BSD { int kse_release(void); }
384 UNIMPL BSD __mac_get_proc
385 UNIMPL BSD __mac_set_proc
386 UNIMPL BSD __mac_get_fd
diff --git a/sys/compat/freebsd32/freebsd32_proto.h b/sys/compat/freebsd32/freebsd32_proto.h
index 36b9e73..d7b14b7 100644
--- a/sys/compat/freebsd32/freebsd32_proto.h
+++ b/sys/compat/freebsd32/freebsd32_proto.h
@@ -10,8 +10,8 @@
#define _IA32_SYSPROTO_H_
#include <sys/signal.h>
-
#include <sys/acl.h>
+#include <posix4/_semaphore.h>
struct proc;
diff --git a/sys/compat/freebsd32/freebsd32_syscall.h b/sys/compat/freebsd32/freebsd32_syscall.h
index e457152..7aeb701 100644
--- a/sys/compat/freebsd32/freebsd32_syscall.h
+++ b/sys/compat/freebsd32/freebsd32_syscall.h
@@ -279,9 +279,9 @@
#define IA32_SYS_nmount 378
#define IA32_SYS_kse_exit 379
#define IA32_SYS_kse_wakeup 380
-#define IA32_SYS_kse_new 381
-#define IA32_SYS_thread_wakeup 382
-#define IA32_SYS_kse_yield 383
+#define IA32_SYS_kse_create 381
+#define IA32_SYS_kse_thr_interrupt 382
+#define IA32_SYS_kse_release 383
#define IA32_SYS_kenv 390
#define IA32_SYS_lchflags 391
#define IA32_SYS_uuidgen 392
diff --git a/sys/compat/freebsd32/freebsd32_sysent.c b/sys/compat/freebsd32/freebsd32_sysent.c
index a385596..9d7d934 100644
--- a/sys/compat/freebsd32/freebsd32_sysent.c
+++ b/sys/compat/freebsd32/freebsd32_sysent.c
@@ -398,9 +398,9 @@ struct sysent ia32_sysent[] = {
{ 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_new_args), (sy_call_t *)kse_new }, /* 381 = kse_new */
- { AS(thread_wakeup_args), (sy_call_t *)thread_wakeup }, /* 382 = thread_wakeup */
- { 0, (sy_call_t *)kse_yield }, /* 383 = kse_yield */
+ { 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 */
{ 0, (sy_call_t *)nosys }, /* 384 = __mac_get_proc */
{ 0, (sy_call_t *)nosys }, /* 385 = __mac_set_proc */
{ 0, (sy_call_t *)nosys }, /* 386 = __mac_get_fd */
diff --git a/sys/compat/freebsd32/syscalls.master b/sys/compat/freebsd32/syscalls.master
index 6de1c57..7d5b17c 100644
--- a/sys/compat/freebsd32/syscalls.master
+++ b/sys/compat/freebsd32/syscalls.master
@@ -547,10 +547,10 @@
int flags); }
379 NOPROTO BSD { int kse_exit(void); }
380 NOPROTO BSD { int kse_wakeup(void); }
-381 NOPROTO BSD { int kse_new(struct kse_mailbox * mbx, \
- int new_grp_flag); }
-382 NOPROTO BSD { int thread_wakeup(struct thread_mailbox *tmbx); }
-383 NOPROTO BSD { int kse_yield(void); }
+381 NOPROTO BSD { int kse_create(struct kse_mailbox *mbx, \
+ int newgroup); }
+382 NOPROTO BSD { int kse_thr_interrupt(struct kse_thr_mailbox *tmbx); }
+383 NOPROTO BSD { int kse_release(void); }
384 UNIMPL BSD __mac_get_proc
385 UNIMPL BSD __mac_set_proc
386 UNIMPL BSD __mac_get_fd
diff --git a/sys/ia64/ia32/ia32_proto.h b/sys/ia64/ia32/ia32_proto.h
index 36b9e73..d7b14b7 100644
--- a/sys/ia64/ia32/ia32_proto.h
+++ b/sys/ia64/ia32/ia32_proto.h
@@ -10,8 +10,8 @@
#define _IA32_SYSPROTO_H_
#include <sys/signal.h>
-
#include <sys/acl.h>
+#include <posix4/_semaphore.h>
struct proc;
diff --git a/sys/ia64/ia32/ia32_syscall.h b/sys/ia64/ia32/ia32_syscall.h
index e457152..7aeb701 100644
--- a/sys/ia64/ia32/ia32_syscall.h
+++ b/sys/ia64/ia32/ia32_syscall.h
@@ -279,9 +279,9 @@
#define IA32_SYS_nmount 378
#define IA32_SYS_kse_exit 379
#define IA32_SYS_kse_wakeup 380
-#define IA32_SYS_kse_new 381
-#define IA32_SYS_thread_wakeup 382
-#define IA32_SYS_kse_yield 383
+#define IA32_SYS_kse_create 381
+#define IA32_SYS_kse_thr_interrupt 382
+#define IA32_SYS_kse_release 383
#define IA32_SYS_kenv 390
#define IA32_SYS_lchflags 391
#define IA32_SYS_uuidgen 392
diff --git a/sys/ia64/ia32/ia32_sysent.c b/sys/ia64/ia32/ia32_sysent.c
index a385596..9d7d934 100644
--- a/sys/ia64/ia32/ia32_sysent.c
+++ b/sys/ia64/ia32/ia32_sysent.c
@@ -398,9 +398,9 @@ struct sysent ia32_sysent[] = {
{ 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_new_args), (sy_call_t *)kse_new }, /* 381 = kse_new */
- { AS(thread_wakeup_args), (sy_call_t *)thread_wakeup }, /* 382 = thread_wakeup */
- { 0, (sy_call_t *)kse_yield }, /* 383 = kse_yield */
+ { 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 */
{ 0, (sy_call_t *)nosys }, /* 384 = __mac_get_proc */
{ 0, (sy_call_t *)nosys }, /* 385 = __mac_set_proc */
{ 0, (sy_call_t *)nosys }, /* 386 = __mac_get_fd */
diff --git a/sys/ia64/ia32/syscalls.master b/sys/ia64/ia32/syscalls.master
index 6de1c57..7d5b17c 100644
--- a/sys/ia64/ia32/syscalls.master
+++ b/sys/ia64/ia32/syscalls.master
@@ -547,10 +547,10 @@
int flags); }
379 NOPROTO BSD { int kse_exit(void); }
380 NOPROTO BSD { int kse_wakeup(void); }
-381 NOPROTO BSD { int kse_new(struct kse_mailbox * mbx, \
- int new_grp_flag); }
-382 NOPROTO BSD { int thread_wakeup(struct thread_mailbox *tmbx); }
-383 NOPROTO BSD { int kse_yield(void); }
+381 NOPROTO BSD { int kse_create(struct kse_mailbox *mbx, \
+ int newgroup); }
+382 NOPROTO BSD { int kse_thr_interrupt(struct kse_thr_mailbox *tmbx); }
+383 NOPROTO BSD { int kse_release(void); }
384 UNIMPL BSD __mac_get_proc
385 UNIMPL BSD __mac_set_proc
386 UNIMPL BSD __mac_get_fd
diff --git a/sys/kern/init_sysent.c b/sys/kern/init_sysent.c
index e9be43b..dfde1c7 100644
--- a/sys/kern/init_sysent.c
+++ b/sys/kern/init_sysent.c
@@ -409,9 +409,9 @@ struct sysent sysent[] = {
{ 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_new_args), (sy_call_t *)kse_new }, /* 381 = kse_new */
- { AS(thread_wakeup_args), (sy_call_t *)thread_wakeup }, /* 382 = thread_wakeup */
- { SYF_MPSAFE | 0, (sy_call_t *)kse_yield }, /* 383 = kse_yield */
+ { 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 */
{ SYF_MPSAFE | AS(__mac_get_proc_args), (sy_call_t *)__mac_get_proc }, /* 384 = __mac_get_proc */
{ SYF_MPSAFE | AS(__mac_set_proc_args), (sy_call_t *)__mac_set_proc }, /* 385 = __mac_set_proc */
{ SYF_MPSAFE | AS(__mac_get_fd_args), (sy_call_t *)__mac_get_fd }, /* 386 = __mac_get_fd */
diff --git a/sys/kern/kern_kse.c b/sys/kern/kern_kse.c
index c722498..5d4fcd4 100644
--- a/sys/kern/kern_kse.c
+++ b/sys/kern/kern_kse.c
@@ -339,13 +339,13 @@ thread_export_context(struct thread *td)
#endif
/* Export the user/machine context. */
error = copyin((caddr_t)td->td_mailbox +
- offsetof(struct thread_mailbox, tm_context),
+ offsetof(struct kse_thr_mailbox, tm_context),
&uc,
sizeof(ucontext_t));
if (error == 0) {
thread_getcontext(td, &uc);
error = copyout(&uc, (caddr_t)td->td_mailbox +
- offsetof(struct thread_mailbox, tm_context),
+ offsetof(struct kse_thr_mailbox, tm_context),
sizeof(ucontext_t));
}
@@ -353,7 +353,7 @@ thread_export_context(struct thread *td)
addr1 = (caddr_t)ke->ke_mailbox
+ offsetof(struct kse_mailbox, km_completed);
addr2 = (caddr_t)td->td_mailbox
- + offsetof(struct thread_mailbox , tm_next);
+ + offsetof(struct kse_thr_mailbox, tm_next);
/* Then link it into it's KSE's list of completed threads. */
if (!error) {
error = td2_mbx = fuword(addr1);
diff --git a/sys/kern/kern_proc.c b/sys/kern/kern_proc.c
index 3a64050..81d9040 100644
--- a/sys/kern/kern_proc.c
+++ b/sys/kern/kern_proc.c
@@ -282,7 +282,7 @@ proc_linkup(struct proc *p, struct ksegrp *kg,
}
int
-thread_wakeup(struct thread *td, struct thread_wakeup_args *uap)
+kse_thr_interrupt(struct thread *td, struct kse_thr_interrupt_args *uap)
{
return(ENOSYS);
@@ -296,7 +296,7 @@ kse_exit(struct thread *td, struct kse_exit_args *uap)
}
int
-kse_yield(struct thread *td, struct kse_yield_args *uap)
+kse_release(struct thread *td, struct kse_release_args *uap)
{
struct thread *td2;
@@ -306,7 +306,7 @@ kse_yield(struct thread *td, struct kse_yield_args *uap)
/* Don't discard the last thread. */
td2 = FIRST_THREAD_IN_PROC(td->td_proc);
- KASSERT(td2 != NULL, ("kse_yield: no threads in our proc"));
+ KASSERT(td2 != NULL, ("kse_release: no threads in our proc"));
if (TAILQ_NEXT(td, td_plist) == NULL)
return (EINVAL);
@@ -318,7 +318,8 @@ kse_yield(struct thread *td, struct kse_yield_args *uap)
return (0);
}
-int kse_wakeup(struct thread *td, struct kse_wakeup_args *uap)
+int
+kse_wakeup(struct thread *td, struct kse_wakeup_args *uap)
{
return(ENOSYS);
@@ -328,12 +329,12 @@ int kse_wakeup(struct thread *td, struct kse_wakeup_args *uap)
* No new KSEG: first call: use current KSE, don't schedule an upcall
* All other situations, do allocate a new KSE and schedule an upcall on it.
*/
-/* struct kse_new_args {
+/* struct kse_create_args {
struct kse_mailbox *mbx;
- int new_grp_flag;
+ int newgroup;
}; */
int
-kse_new(struct thread *td, struct kse_new_args *uap)
+kse_create(struct thread *td, struct kse_create_args *uap)
{
struct kse *newke;
struct ksegrp *newkg;
@@ -358,7 +359,7 @@ kse_new(struct thread *td, struct kse_new_args *uap)
* If newgroup then create the new group.
* Check we have the resources for this.
*/
- if (uap->new_grp_flag) {
+ if (uap->newgroup) {
newkg = ksegrp_alloc();
bzero(&newkg->kg_startzero, RANGEOF(struct ksegrp,
kg_startzero, kg_endzero));
@@ -401,7 +402,7 @@ kse_new(struct thread *td, struct kse_new_args *uap)
PROC_LOCK(p);
if (td->td_proc->p_flag & P_KSES) {
mtx_lock_spin(&sched_lock);
- if (uap->new_grp_flag)
+ if (uap->newgroup)
ksegrp_link(newkg, p);
kse_link(newke, newkg);
if (SIGPENDING(p))
diff --git a/sys/kern/kern_thread.c b/sys/kern/kern_thread.c
index c722498..5d4fcd4 100644
--- a/sys/kern/kern_thread.c
+++ b/sys/kern/kern_thread.c
@@ -339,13 +339,13 @@ thread_export_context(struct thread *td)
#endif
/* Export the user/machine context. */
error = copyin((caddr_t)td->td_mailbox +
- offsetof(struct thread_mailbox, tm_context),
+ offsetof(struct kse_thr_mailbox, tm_context),
&uc,
sizeof(ucontext_t));
if (error == 0) {
thread_getcontext(td, &uc);
error = copyout(&uc, (caddr_t)td->td_mailbox +
- offsetof(struct thread_mailbox, tm_context),
+ offsetof(struct kse_thr_mailbox, tm_context),
sizeof(ucontext_t));
}
@@ -353,7 +353,7 @@ thread_export_context(struct thread *td)
addr1 = (caddr_t)ke->ke_mailbox
+ offsetof(struct kse_mailbox, km_completed);
addr2 = (caddr_t)td->td_mailbox
- + offsetof(struct thread_mailbox , tm_next);
+ + offsetof(struct kse_thr_mailbox, tm_next);
/* Then link it into it's KSE's list of completed threads. */
if (!error) {
error = td2_mbx = fuword(addr1);
diff --git a/sys/kern/syscalls.c b/sys/kern/syscalls.c
index 701c455..763cd4b 100644
--- a/sys/kern/syscalls.c
+++ b/sys/kern/syscalls.c
@@ -388,9 +388,9 @@ char *syscallnames[] = {
"nmount", /* 378 = nmount */
"kse_exit", /* 379 = kse_exit */
"kse_wakeup", /* 380 = kse_wakeup */
- "kse_new", /* 381 = kse_new */
- "thread_wakeup", /* 382 = thread_wakeup */
- "kse_yield", /* 383 = kse_yield */
+ "kse_create", /* 381 = kse_create */
+ "kse_thr_interrupt", /* 382 = kse_thr_interrupt */
+ "kse_release", /* 383 = kse_release */
"__mac_get_proc", /* 384 = __mac_get_proc */
"__mac_set_proc", /* 385 = __mac_set_proc */
"__mac_get_fd", /* 386 = __mac_get_fd */
diff --git a/sys/kern/syscalls.master b/sys/kern/syscalls.master
index ab9674b..d2b5177 100644
--- a/sys/kern/syscalls.master
+++ b/sys/kern/syscalls.master
@@ -549,10 +549,10 @@
int flags); }
379 STD BSD { int kse_exit(void); }
380 STD BSD { int kse_wakeup(void); }
-381 STD BSD { int kse_new(struct kse_mailbox * mbx, \
- int new_grp_flag); }
-382 STD BSD { int thread_wakeup(struct thread_mailbox *tmbx); }
-383 MSTD BSD { int kse_yield(void); }
+381 STD BSD { int kse_create(struct kse_mailbox *mbx, \
+ int newgroup); }
+382 STD BSD { int kse_thr_interrupt(struct kse_thr_mailbox *tmbx); }
+383 MSTD BSD { int kse_release(void); }
384 MSTD BSD { int __mac_get_proc(struct mac *mac_p); }
385 MSTD BSD { int __mac_set_proc(struct mac *mac_p); }
386 MSTD BSD { int __mac_get_fd(int fd, struct mac *mac_p); }
diff --git a/sys/sys/kse.h b/sys/sys/kse.h
index 9b225bd..ed4f9ed 100644
--- a/sys/sys/kse.h
+++ b/sys/sys/kse.h
@@ -30,8 +30,8 @@
* $FreeBSD$
*/
-#ifndef SYS_KSE_H
-#define SYS_KSE_H
+#ifndef _SYS_KSE_H_
+#define _SYS_KSE_H_
#include <machine/kse.h>
#include <sys/ucontext.h>
@@ -42,17 +42,18 @@
* The only programs that should see this file are the UTS and the kernel.
*/
struct kse_mailbox;
-typedef void kse_fn_t(struct kse_mailbox *mbx);
+
+typedef void kse_func_t(struct kse_mailbox *);
/*
* Thread mailbox.
*
* This describes a user thread to the kernel scheduler.
*/
-struct thread_mailbox {
+struct kse_thr_mailbox {
ucontext_t tm_context; /* User and machine context */
unsigned int tm_flags; /* Thread flags */
- struct thread_mailbox *tm_next; /* Next thread in list */
+ struct kse_thr_mailbox *tm_next; /* Next thread in list */
void *tm_udata; /* For use by the UTS */
int tm_spare[8];
};
@@ -64,21 +65,22 @@ struct thread_mailbox {
* a single KSE.
*/
struct kse_mailbox {
- struct thread_mailbox *km_curthread; /* Currently running thread */
- struct thread_mailbox *km_completed; /* Threads back from kernel */
+ struct kse_thr_mailbox *km_curthread; /* Currently running thread */
+ struct kse_thr_mailbox *km_completed; /* Threads back from kernel */
sigset_t km_sigscaught; /* Caught signals */
unsigned int km_flags; /* KSE flags */
- void *km_func; /* UTS function */
+ kse_func_t *km_func; /* UTS function */
stack_t km_stack; /* UTS context */
void *km_udata; /* For use by the UTS */
int tm_spare[8];
};
#ifndef _KERNEL
+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_new(struct kse_mailbox *, int);
-int kse_yield(void);
-#endif
+#endif /* !_KERNEL */
-#endif
+#endif /* !_SYS_KSE_H_ */
diff --git a/sys/sys/proc.h b/sys/sys/proc.h
index 185bca9..22b41b4 100644
--- a/sys/sys/proc.h
+++ b/sys/sys/proc.h
@@ -283,7 +283,7 @@ struct thread {
LIST_HEAD(, mtx) td_contested; /* (j) Contested locks. */
struct lock_list_entry *td_sleeplocks; /* (k) Held sleep locks. */
int td_intr_nesting_level; /* (k) Interrupt recursion. */
- struct thread_mailbox *td_mailbox; /* the userland mailbox address */
+ struct kse_thr_mailbox *td_mailbox; /* the userland mailbox address */
struct ucred *td_ucred; /* (k) Reference to credentials. */
void (*td_switchin)(void); /* (k) Switchin special func. */
u_int td_critnest; /* (k) Critical section nest level. */
diff --git a/sys/sys/syscall.h b/sys/sys/syscall.h
index c2bd578..bf153d1 100644
--- a/sys/sys/syscall.h
+++ b/sys/sys/syscall.h
@@ -294,9 +294,9 @@
#define SYS_nmount 378
#define SYS_kse_exit 379
#define SYS_kse_wakeup 380
-#define SYS_kse_new 381
-#define SYS_thread_wakeup 382
-#define SYS_kse_yield 383
+#define SYS_kse_create 381
+#define SYS_kse_thr_interrupt 382
+#define SYS_kse_release 383
#define SYS___mac_get_proc 384
#define SYS___mac_set_proc 385
#define SYS___mac_get_fd 386
diff --git a/sys/sys/syscall.mk b/sys/sys/syscall.mk
index 15920c6..a6d3f9f 100644
--- a/sys/sys/syscall.mk
+++ b/sys/sys/syscall.mk
@@ -243,9 +243,9 @@ MIASM = \
nmount.o \
kse_exit.o \
kse_wakeup.o \
- kse_new.o \
- thread_wakeup.o \
- kse_yield.o \
+ kse_create.o \
+ kse_thr_interrupt.o \
+ kse_release.o \
__mac_get_proc.o \
__mac_set_proc.o \
__mac_get_fd.o \
diff --git a/sys/sys/sysproto.h b/sys/sys/sysproto.h
index e389b02..238721d 100644
--- a/sys/sys/sysproto.h
+++ b/sys/sys/sysproto.h
@@ -1064,14 +1064,14 @@ struct kse_exit_args {
struct kse_wakeup_args {
register_t dummy;
};
-struct kse_new_args {
+struct kse_create_args {
char mbx_l_[PADL_(struct kse_mailbox *)]; struct kse_mailbox * mbx; char mbx_r_[PADR_(struct kse_mailbox *)];
- char new_grp_flag_l_[PADL_(int)]; int new_grp_flag; char new_grp_flag_r_[PADR_(int)];
+ char newgroup_l_[PADL_(int)]; int newgroup; char newgroup_r_[PADR_(int)];
};
-struct thread_wakeup_args {
- char tmbx_l_[PADL_(struct thread_mailbox *)]; struct thread_mailbox * tmbx; char tmbx_r_[PADR_(struct thread_mailbox *)];
+struct kse_thr_interrupt_args {
+ char tmbx_l_[PADL_(struct kse_thr_mailbox *)]; struct kse_thr_mailbox * tmbx; char tmbx_r_[PADR_(struct kse_thr_mailbox *)];
};
-struct kse_yield_args {
+struct kse_release_args {
register_t dummy;
};
struct __mac_get_proc_args {
@@ -1396,9 +1396,9 @@ int eaccess(struct thread *, struct eaccess_args *);
int nmount(struct thread *, struct nmount_args *);
int kse_exit(struct thread *, struct kse_exit_args *);
int kse_wakeup(struct thread *, struct kse_wakeup_args *);
-int kse_new(struct thread *, struct kse_new_args *);
-int thread_wakeup(struct thread *, struct thread_wakeup_args *);
-int kse_yield(struct thread *, struct kse_yield_args *);
+int kse_create(struct thread *, struct kse_create_args *);
+int kse_thr_interrupt(struct thread *, struct kse_thr_interrupt_args *);
+int kse_release(struct thread *, struct kse_release_args *);
int __mac_get_proc(struct thread *, struct __mac_get_proc_args *);
int __mac_set_proc(struct thread *, struct __mac_set_proc_args *);
int __mac_get_fd(struct thread *, struct __mac_get_fd_args *);
OpenPOWER on IntegriCloud