Ack. Justus Winter, le Tue 16 Dec 2014 15:09:47 +0100, a écrit : > * ipc/ipc_kmsg.h (ikm_mark_bogus): New macro. > (ipc_kmsg_rmqueue_first_macro): Use `ikm_mark_bogus'. > * ipc/ipc_kmsg.c (ipc_kmsg_rmqueue): Likewise. > --- > ipc/ipc_kmsg.c | 4 +--- > ipc/ipc_kmsg.h | 19 +++++++++++++++---- > 2 files changed, 16 insertions(+), 7 deletions(-) > > diff --git a/ipc/ipc_kmsg.c b/ipc/ipc_kmsg.c > index 71a0d74..66643fd 100644 > --- a/ipc/ipc_kmsg.c > +++ b/ipc/ipc_kmsg.c > @@ -139,9 +139,7 @@ ipc_kmsg_rmqueue( > next->ikm_prev = prev; > prev->ikm_next = next; > } > - /* XXX Temporary debug logic */ > - kmsg->ikm_next = IKM_BOGUS; > - kmsg->ikm_prev = IKM_BOGUS; > + ikm_mark_bogus (kmsg); > } > > /* > diff --git a/ipc/ipc_kmsg.h b/ipc/ipc_kmsg.h > index f06857a..620785b 100644 > --- a/ipc/ipc_kmsg.h > +++ b/ipc/ipc_kmsg.h > @@ -72,11 +72,24 @@ typedef struct ipc_kmsg { > #define ikm_plus_overhead(size) ((vm_size_t)((size) + IKM_OVERHEAD)) > #define ikm_less_overhead(size) ((mach_msg_size_t)((size) - > IKM_OVERHEAD)) > > +#if MACH_IPC_TEST > /* > - * XXX For debugging. > + * For debugging. > */ > #define IKM_BOGUS ((ipc_kmsg_t) 0xffffff10) > > +#define ikm_mark_bogus(kmsg) > \ > +MACRO_BEGIN \ > + (kmsg)->ikm_next = IKM_BOGUS; \ > + (kmsg)->ikm_prev = IKM_BOGUS; \ > +MACRO_END > + > +#else /* MACH_IPC_TEST */ > + > +#define ikm_mark_bogus(kmsg) ; > + > +#endif /* MACH_IPC_TEST */ > + > /* > * We keep a per-processor cache of kernel message buffers. > * The cache saves the overhead/locking of using kalloc/kfree. > @@ -198,9 +211,7 @@ MACRO_BEGIN > \ > _next->ikm_prev = _prev; \ > _prev->ikm_next = _next; \ > } \ > - /* XXX Debug paranoia */ \ > - kmsg->ikm_next = IKM_BOGUS; \ > - kmsg->ikm_prev = IKM_BOGUS; \ > + ikm_mark_bogus (kmsg); \ > MACRO_END > > #define ipc_kmsg_enqueue_macro(queue, kmsg) > \ > -- > 2.1.3 >
-- Samuel The nice thing about Windows is - It does not just crash, it displays a dialog box and lets you press 'OK' first. (Arno Schaefer's .sig)