On Tue, 17 Apr 2001 12:48:48 -0700 (PDT) Linus Torvalds wrote: [deletia] > /* > * a fast semaphore is a 128-byte opaque thing, > * aligned on a 128-byte boundary. This is partly > * to minimize false sharing in the L1 (we assume > * that 128-byte cache-lines are going to be fairly > * common), but also to allow the kernel to hide > * data there > */ > struct fast_semaphore { > unsigned int opaque[32]; > } __attribute__((aligned, 64)); > > struct fast_semaphore *FS_create(char *ID); > int FS_down(struct fast_semaphore *, unsigned long timeout); > void FS_up(struct fast_semaphore *); [deletia] These are counting semaphores, right? If so, would this make sense? struct fast_semaphore *FS_create(char *ID, int initial_count); [FS_down/FS_up the same] int FS_get_count(struct fast_semaphore *); The FS_get_count() is less useful, but being able to pass the initial count to the semaphore is pretty important. --George