Hmm, well we were talking about rearranging the kse_mailbox,
remember? We can make km_version a long instead of an int
and that would align km_curthread. It would only break
binary compat on 64-bit platforms also.
I think other things in kse_mailbox may need to be fixed
also. km_func is not aligned either since km_flags is
only 32 bits. I think the mailbox should be something
like this:
struct kse_mailbox {
uint32_t km_version;
uint32_t km_flags;
uint32_t km_quantum;
uint32_t __spare1__[1]; /* align km_sigscaught to 16 bytes */
struct kse_thr_mailbox *km_curthread;
struct kse_thr_mailbox *km_completed;
void *km_udata;
kse_func_t *km_func;
sigset_t km_sigscaught;
stack_t km_stack;
struct timespec km_timeofday;
uint32_t __spare2__[8];
};
Probably something similar for kse_thr_mailbox.