ck_bag: Use CK_MD_VMA_BITS

ck_pring
Abel Mathew 13 years ago
parent a5fb24ab61
commit 981e0a49a2

@ -75,7 +75,7 @@ struct ck_bag_block_info {
/* /*
* Determine whether pointer packing should be enabled. * Determine whether pointer packing should be enabled.
*/ */
#if defined(CK_BAG_PP) && defined(CK_MD_POINTER_PACK_ENABLE) #if defined(CK_MD_POINTER_PACK_ENABLE) && defined(CK_MD_VMA_BITS)
#define CK_BAG_PP #define CK_BAG_PP
#endif #endif
@ -114,7 +114,7 @@ struct ck_bag_iterator {
typedef struct ck_bag_iterator ck_bag_iterator_t; typedef struct ck_bag_iterator ck_bag_iterator_t;
#ifdef CK_BAG_PP #ifdef CK_BAG_PP
#define CK_BAG_BLOCK_ENTRIES_MASK ((uintptr_t)0xFFFF << 48) #define CK_BAG_BLOCK_ENTRIES_MASK ((uintptr_t)0xFFFF << CK_MD_VMA_BITS)
#endif #endif
CK_CC_INLINE static struct ck_bag_block * CK_CC_INLINE static struct ck_bag_block *
@ -140,7 +140,7 @@ ck_bag_block_count(struct ck_bag_block *block)
{ {
#ifdef CK_BAG_PP #ifdef CK_BAG_PP
return (uintptr_t)ck_pr_load_ptr(&block->next.ptr) >> 48; return (uintptr_t)ck_pr_load_ptr(&block->next.ptr) >> CK_MD_VMA_BITS;
#else #else
return (uintptr_t)ck_pr_load_ptr(&block->next.n_entries); return (uintptr_t)ck_pr_load_ptr(&block->next.n_entries);
#endif #endif

@ -164,7 +164,7 @@ ck_bag_put_spmc(struct ck_bag *bag, void *entry)
ck_pr_fence_store(); ck_pr_fence_store();
#ifdef CK_BAG_PP #ifdef CK_BAG_PP
next = ((uintptr_t)n_entries_block << 48); next = ((uintptr_t)n_entries_block << CK_MD_VMA_BITS);
#endif #endif
@ -284,7 +284,7 @@ found:
next_ptr = (uintptr_t)(void *)ck_bag_block_next(copy->next.ptr); next_ptr = (uintptr_t)(void *)ck_bag_block_next(copy->next.ptr);
#ifdef CK_BAG_PP #ifdef CK_BAG_PP
copy->next.ptr = (void *)(((uintptr_t)n_entries << 48) | next_ptr); copy->next.ptr = (void *)(((uintptr_t)n_entries << CK_MD_VMA_BITS) | next_ptr);
#else #else
copy->next.n_entries = n_entries; copy->next.n_entries = n_entries;
copy->next.ptr = (struct ck_bag_block *)next_ptr; copy->next.ptr = (struct ck_bag_block *)next_ptr;

Loading…
Cancel
Save