From owner-p4-projects@FreeBSD.ORG Sun Jun 27 01:59:27 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 873C016A4D1; Sun, 27 Jun 2004 01:59:27 +0000 (GMT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2985E16A4CE for ; Sun, 27 Jun 2004 01:59:27 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0B9C043D3F for ; Sun, 27 Jun 2004 01:59:27 +0000 (GMT) (envelope-from davidxu@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5R1xBbj084085 for ; Sun, 27 Jun 2004 01:59:11 GMT (envelope-from davidxu@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5R1xBOL084082 for perforce@freebsd.org; Sun, 27 Jun 2004 01:59:11 GMT (envelope-from davidxu@freebsd.org) Date: Sun, 27 Jun 2004 01:59:11 GMT Message-Id: <200406270159.i5R1xBOL084082@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to davidxu@freebsd.org using -f From: David Xu To: Perforce Change Reviews Subject: PERFORCE change 55873 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Jun 2004 01:59:28 -0000 http://perforce.freebsd.org/chv.cgi?CH=55873 Change 55873 by davidxu@davidxu_alona on 2004/06/27 01:59:06 Add fields to support debug. Change kse_switchin to accept mailbox pointer. Affected files ... .. //depot/projects/davidxu_ksedbg/src/sys/sys/kse.h#2 edit Differences ... ==== //depot/projects/davidxu_ksedbg/src/sys/sys/kse.h#2 (text+ko) ==== @@ -54,13 +54,15 @@ */ struct kse_thr_mailbox { ucontext_t tm_context; /* User and machine context */ - unsigned int tm_flags; /* Thread flags */ + uint32_t tm_flags; /* Thread flags */ struct kse_thr_mailbox *tm_next; /* Next thread in list */ void *tm_udata; /* For use by the UTS */ - uint32_t tm_uticks; - uint32_t tm_sticks; + uint32_t tm_uticks; /* Time in userland */ + uint32_t tm_sticks; /* Time in kernel */ siginfo_t tm_syncsig; - int tm_spare[8]; + uint32_t tm_dflags; /* Debug flags */ + lwpid_t tm_lwp; /* kernel thread UTS runs on */ + uint32_t __spare__[8]; }; /* @@ -70,37 +72,44 @@ * a single KSE. */ struct kse_mailbox { - int km_version; /* Mailbox version */ + uint32_t km_version; /* Mailbox version */ 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 */ - uint32_t km_flags; /* KSE flags */ + uint32_t km_flags; /* Mailbox flags */ kse_func_t *km_func; /* UTS function */ - stack_t km_stack; /* UTS context */ + stack_t km_stack; /* UTS stack */ void *km_udata; /* For use by the UTS */ struct timespec km_timeofday; /* Time of day */ - int km_quantum; /* Upcall quantum in msecs */ - int km_spare[8]; + uint32_t km_quantum; /* Upcall quantum in msecs */ + lwpid_t km_lwp; /* kernel thread UTS runs on */ + uint32_t __spare2__[8]; }; -#define KSE_VER_0 0 -#define KSE_VERSION KSE_VER_0 +#define KSE_VER_0 0 +#define KSE_VERSION KSE_VER_0 /* These flags are kept in km_flags */ -#define KMF_NOUPCALL 0x01 -#define KMF_NOCOMPLETED 0x02 -#define KMF_DONE 0x04 -#define KMF_BOUND 0x08 -#define KMF_WAITSIGEVENT 0x10 +#define KMF_NOUPCALL 0x01 +#define KMF_NOCOMPLETED 0x02 +#define KMF_DONE 0x04 +#define KMF_BOUND 0x08 +#define KMF_WAITSIGEVENT 0x10 /* These flags are kept in tm_flags */ -#define TMF_NOUPCALL 0x01 +#define TMF_NOUPCALL 0x01 + +/* These flags are kept in tm_dlfags */ +#define TMDF_SSTEP 0x01 + +/* Flags for kse_switchin */ +#define KSE_SWITCHIN_SETTMBX 0x01 /* Commands for kse_thr_interrupt */ -#define KSE_INTR_INTERRUPT 0x01 -#define KSE_INTR_RESTART 0x02 -#define KSE_INTR_SENDSIG 0x03 -#define KSE_INTR_SIGEXIT 0x04 +#define KSE_INTR_INTERRUPT 0x01 +#define KSE_INTR_RESTART 0x02 +#define KSE_INTR_SENDSIG 0x03 +#define KSE_INTR_SIGEXIT 0x04 #ifndef _KERNEL int kse_create(struct kse_mailbox *, int); @@ -108,7 +117,7 @@ int kse_release(struct timespec *); int kse_thr_interrupt(struct kse_thr_mailbox *, int, long); int kse_wakeup(struct kse_mailbox *); -int kse_switchin(mcontext_t *, long, long *); +int kse_switchin(struct kse_thr_mailbox *, int flags); #endif /* !_KERNEL */ #endif /* !_SYS_KSE_H_ */