Print this page
        
*** 36,46 ****
  #include <assert.h>
  #define ASSERT(a)       assert(a)
  #endif
  
  #ifdef lint
! extern list_node_t *list_d2l(list_t *list, void *obj);
  #else
  #define list_d2l(a, obj) ((list_node_t *)(((char *)obj) + (a)->list_offset))
  #endif
  #define list_object(a, node) ((void *)(((char *)node) - (a)->list_offset))
  #define list_empty(a) ((a)->list_head.list_next == &(a)->list_head)
--- 36,56 ----
  #include <assert.h>
  #define ASSERT(a)       assert(a)
  #endif
  
  #ifdef lint
! static list_node_t *
! list_d2l(list_t *list, void *obj)
! {
!         /* Pretty version for lint... */
!         uint64_t *offset = (uint64_t *)obj;
! 
!         if (!IS_P2ALIGNED(obj, 8))
!                 return (NULL);
! 
!         return ((list_node_t *)(offset + (list->list_offset >> 3)));
! }
  #else
  #define list_d2l(a, obj) ((list_node_t *)(((char *)obj) + (a)->list_offset))
  #endif
  #define list_object(a, node) ((void *)(((char *)node) - (a)->list_offset))
  #define list_empty(a) ((a)->list_head.list_next == &(a)->list_head)