PERFORCE change 33461 for review

Robert Watson rwatson at
Sat Jun 21 00:46:05 GMT 2003

Change 33461 by rwatson at rwatson_powerbook on 2003/06/20 17:45:05

	Various cleanups to condvar code:
	(1) Do build kern_condvar.c (also: correct spelling of subr_sbuf.c)
	(2) Include Mach headers to support wait_queue_t and mutex_t in
	    kern_condvar.c, condvar.h.
	(3) Do install condvar.h when building 
	(4) Cleanup types for condvar function variables (bits left over
	    from FreeBSD prototypes)
	(5) Forward declare uthread and use it instead of thread
	Note: we currently statically allocate storage for the wait_queue_t
	in struct cv, in the style of FreeBSD.  This is discouraged in Mach
	due to the potential for the storage to change size.

Affected files ...

.. //depot/projects/trustedbsd/sedarwin/apsl/xnu/bsd/conf/files#4 edit
.. //depot/projects/trustedbsd/sedarwin/apsl/xnu/bsd/kern/kern_condvar.c#2 edit
.. //depot/projects/trustedbsd/sedarwin/apsl/xnu/bsd/sys/Makefile#3 edit
.. //depot/projects/trustedbsd/sedarwin/apsl/xnu/bsd/sys/condvar.h#2 edit

Differences ...

==== //depot/projects/trustedbsd/sedarwin/apsl/xnu/bsd/conf/files#4 (text+ko) ====

@@ -442,6 +442,7 @@
 bsd/kern/kdebug.c			standard
 bsd/kern/kern_acct.c			standard
 bsd/kern/kern_clock.c			standard
+bsd/kern/kern_condvar.c			standard
 bsd/kern/kern_core.c			standard
 bsd/kern/kern_symfile.c			standard
 bsd/kern/kern_descrip.c			standard
@@ -476,7 +477,7 @@
 bsd/kern/subr_log.c			standard
 bsd/kern/subr_prf.c			standard
 bsd/kern/subr_prof.c			standard
-bsd/kern/subr_sbur.c			standard
+bsd/kern/subr_sbuf.c			standard
 bsd/kern/subr_xxx.c			standard
 bsd/kern/sys_generic.c			standard
 bsd/kern/sys_socket.c			standard

==== //depot/projects/trustedbsd/sedarwin/apsl/xnu/bsd/kern/kern_condvar.c#2 (text+ko) ====

@@ -37,6 +37,9 @@
 #include <sys/types.h>
 #include <sys/condvar.h>
+#include <kern/lock.h>
+#include <kern/wait_queue.h>
 cv_init(struct cv *cvp, const char *desc)
@@ -91,7 +94,7 @@
  * Not supported in Darwin right now.
-cv_timedwait(struct cv *cvp, mutex*t *mp, int timo)
+cv_timedwait(struct cv *cvp, mutex_t *mp, int timo)
 	panic("cv_timedwait: not currently supported");
@@ -101,7 +104,7 @@
  * Not supported in Darwin right now.
-cv_timedwait_sig(struct cv *cvp, struct mtx *mp, int timo)
+cv_timedwait_sig(struct cv *cvp, mutex_t *mp, int timo)
 	panic("cv_timedwait: not currently supported");
@@ -125,7 +128,7 @@
  * Not supported in Darwin right now.
-cv_waitq_remove(struct thread *td)
+cv_waitq_remove(struct uthread *td)
 	panic("cv_waitq_remove: not currently supported");

==== //depot/projects/trustedbsd/sedarwin/apsl/xnu/bsd/sys/Makefile#3 (text+ko) ====

@@ -22,6 +22,7 @@
 	appleapiopts.h \
 	acct.h attr.h buf.h callout.h cdefs.h clist.h conf.h \
+	condvar.h \
 	dir.h dirent.h disk.h disklabel.h disktab.h dkstat.h dmap.h domain.h \
 	errno.h ev.h exec.h fcntl.h file.h filedesc.h filio.h gmon.h ioccom.h ioctl.h \
 	ioctl_compat.h ipc.h kernel.h kern_event.h ktrace.h loadable_fs.h lock.h lockf.h mach_swapon.h malloc.h \

==== //depot/projects/trustedbsd/sedarwin/apsl/xnu/bsd/sys/condvar.h#2 (text+ko) ====

@@ -34,23 +34,24 @@
  * Implement BSD-layer condition variables using Mach-layer wait queues.
+#include <kern/lock.h>
+#include <kern/wait_queue.h>
 struct cv {
 	wait_queue_t		 cv_wait_queue;
 	mutex_t			*cv_mutex;		/* Debugging only. */
 	const char		*cv_description;
+struct uthread;
 void	cv_init(struct cv *cvp, const char *desc);
 void	cv_destroy(struct cv *cvp);
 void	cv_wait(struct cv *cvp, mutex_t *mp);
 int	cv_wait_sig(struct cv *cvp, mutex_t *mp);
-int	cv_timedwait(struct cv *cvp, mutex*t *mp, int timo);
-int	cv_timedwait_sig(struct cv *cvp, struct mtx *mp, int timo);
+int	cv_timedwait(struct cv *cvp, mutex_t *mp, int timo);
+int	cv_timedwait_sig(struct cv *cvp, mutex_t *mp, int timo);
 void	cv_signal(struct cv *cvp);
 void	cv_broadcast(struct cv *cvp);
-void	cv_waitq_remove(struct thread *td);
+void	cv_waitq_remove(struct uthread *td);
 int	cv_waitq_empty(struct cv *cvp);
 const char	*cv_wmesg(struct cv *cvp);
To Unsubscribe: send mail to majordomo at
with "unsubscribe trustedbsd-cvs" in the body of the message

More information about the trustedbsd-cvs mailing list