acl  3.5.3.0
acl_bits_map.h 文件参考
#include "acl_define.h"
+ acl_bits_map.h 的引用(Include)关系图:
+ 此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

struct  ACL_BITS_MASK
 

宏定义

#define ACL_BITS_MASK_NBBY   (8)
 
#define ACL_BITS_MASK_FD_BYTE(number, mask)   (((unsigned char *) (mask)->data)[(number) / ACL_BITS_MASK_NBBY])
 
#define ACL_BITS_MASK_FD_BIT(number)   (1 << ((number) % ACL_BITS_MASK_NBBY))
 
#define ACL_BITS_MASK_BYTES_NEEDED(len)   (size_t) (((acl_int64) (len) + (ACL_BITS_MASK_NBBY - 1)) / ACL_BITS_MASK_NBBY)
 
#define ACL_BITS_MASK_BYTE_COUNT(mask)   ((mask)->data_len)
 
#define ACL_BITS_MASK_ALLOC(mask, nmax)
 
#define ACL_BITS_MASK_REALLOC(mask, nmax)
 
#define ACL_BITS_MASK_FREE(mask)   acl_myfree((mask)->data)
 
#define ACL_BITS_MASK_ZERO(mask)   memset((mask)->data, 0, (mask)->data_len);
 
#define ACL_BITS_MASK_SET(number, mask)   (ACL_BITS_MASK_FD_BYTE((number), (mask)) |= ACL_BITS_MASK_FD_BIT(number))
 
#define ACL_BITS_MASK_ISSET(number, mask)   (ACL_BITS_MASK_FD_BYTE((number), (mask)) & ACL_BITS_MASK_FD_BIT(number))
 
#define ACL_BITS_MASK_CLR(number, mask)   (ACL_BITS_MASK_FD_BYTE((number), (mask)) &= ~ACL_BITS_MASK_FD_BIT(number))
 

类型定义

typedef struct ACL_BITS_MASK ACL_BITS_MASK
 

宏定义说明

◆ ACL_BITS_MASK_ALLOC

#define ACL_BITS_MASK_ALLOC (   mask,
  nmax 
)
值:
do { \
size_t _byte_len = ACL_BITS_MASK_BYTES_NEEDED(nmax); \
(mask)->data = (char*) acl_mymalloc(_byte_len); \
memset((mask)->data, 0, _byte_len); \
(mask)->data_len = _byte_len; \
} while (0)
#define acl_mymalloc(size)
Definition: acl_mymalloc.h:27
#define ACL_BITS_MASK_BYTES_NEEDED(len)
Definition: acl_bits_map.h:25

分配位映射对象空间

参数
mask{ACL_BITS_MASK*) ACL_BITS_MASK 指针
nmax{size_t/unsigned int/unsigned short/unsigned char} 最大值,以此值来 计算 (mask)->data 占的内存空间大小,如:当 nmax=4294967295, 即最大整数值时,则 (mask)->data_len=536870912, 即 (mask)->data 占用 536870912 Bytes; 当 nmax=65535, 即最大 unsigned short 值时,则 (mask)->data_len=8192, 即 (mask)->data 占用 8192 字节

在文件 acl_bits_map.h38 行定义.

◆ ACL_BITS_MASK_BYTE_COUNT

#define ACL_BITS_MASK_BYTE_COUNT (   mask)    ((mask)->data_len)

在文件 acl_bits_map.h27 行定义.

◆ ACL_BITS_MASK_BYTES_NEEDED

#define ACL_BITS_MASK_BYTES_NEEDED (   len)    (size_t) (((acl_int64) (len) + (ACL_BITS_MASK_NBBY - 1)) / ACL_BITS_MASK_NBBY)

在文件 acl_bits_map.h25 行定义.

◆ ACL_BITS_MASK_CLR

#define ACL_BITS_MASK_CLR (   number,
  mask 
)    (ACL_BITS_MASK_FD_BYTE((number), (mask)) &= ~ACL_BITS_MASK_FD_BIT(number))

将某个整数从位映射对象的动态空间中清除掉

参数
number{unsigned int} 整数值
mask{ACL_BITS_MASK*) ACL_BITS_MASK 指针

在文件 acl_bits_map.h98 行定义.

◆ ACL_BITS_MASK_FD_BIT

#define ACL_BITS_MASK_FD_BIT (   number)    (1 << ((number) % ACL_BITS_MASK_NBBY))

在文件 acl_bits_map.h24 行定义.

◆ ACL_BITS_MASK_FD_BYTE

#define ACL_BITS_MASK_FD_BYTE (   number,
  mask 
)    (((unsigned char *) (mask)->data)[(number) / ACL_BITS_MASK_NBBY])

在文件 acl_bits_map.h22 行定义.

◆ ACL_BITS_MASK_FREE

#define ACL_BITS_MASK_FREE (   mask)    acl_myfree((mask)->data)

释放位映射对象的内部动态空间

参数
mask{ACL_BITS_MASK*) ACL_BITS_MASK 指针

在文件 acl_bits_map.h65 行定义.

◆ ACL_BITS_MASK_ISSET

#define ACL_BITS_MASK_ISSET (   number,
  mask 
)    (ACL_BITS_MASK_FD_BYTE((number), (mask)) & ACL_BITS_MASK_FD_BIT(number))

判断某个整数是否存储在位映射对象的动态空间中

参数
number{unsigned int} 整数值
mask{ACL_BITS_MASK*) ACL_BITS_MASK 指针
返回
{int} 0: 不存在;!= 0: 存在

在文件 acl_bits_map.h90 行定义.

◆ ACL_BITS_MASK_NBBY

#define ACL_BITS_MASK_NBBY   (8)

Bits per byte, byte in vector, bit offset in byte, bytes perset

在文件 acl_bits_map.h21 行定义.

◆ ACL_BITS_MASK_REALLOC

#define ACL_BITS_MASK_REALLOC (   mask,
  nmax 
)
值:
do { \
size_t _byte_len = ACL_BITS_MASK_BYTES_NEEDED(nmax); \
size_t _old_len = (mask)->data_len; \
(mask)->data = (char*) acl_myrealloc((mask)->data, _byte_len); \
memset((mask)->data + _old_len, 0, _byte_len - _old_len); \
(mask)->data_len = _byte_len; \
} while (0)
#define acl_myrealloc(ptr, size)
Definition: acl_mymalloc.h:43
#define ACL_BITS_MASK_BYTES_NEEDED(len)
Definition: acl_bits_map.h:25

重分配位映射对象空间

参数
mask{ACL_BITS_MASK*) ACL_BITS_MASK 指针
nmax{size_t/unsigned int/unsigned short/unsigned char} 最大值,以此值来 计算 (mask)->data 占的内存空间大小,如:当 nmax=4294967295, 即最大整数值时,则 (mask)->data_len=536870912, 即 (mask)->data 占用 536870912 Bytes; 当 nmax=65535, 即最大 unsigned short 值时,则 (mask)->data_len=8192, 即 (mask)->data 占用 8192 字节

在文件 acl_bits_map.h53 行定义.

◆ ACL_BITS_MASK_SET

#define ACL_BITS_MASK_SET (   number,
  mask 
)    (ACL_BITS_MASK_FD_BYTE((number), (mask)) |= ACL_BITS_MASK_FD_BIT(number))

将整数映射为位存储在位映射对象的动态空间中

参数
number{unsigned int} 整数值
mask{ACL_BITS_MASK*) ACL_BITS_MASK 指针

在文件 acl_bits_map.h81 行定义.

◆ ACL_BITS_MASK_ZERO

#define ACL_BITS_MASK_ZERO (   mask)    memset((mask)->data, 0, (mask)->data_len);

将位映射对象的内部动态空间清零

参数
mask{ACL_BITS_MASK*) ACL_BITS_MASK 指针

在文件 acl_bits_map.h73 行定义.

类型定义说明

◆ ACL_BITS_MASK

typedef struct ACL_BITS_MASK ACL_BITS_MASK

位映射结构类型定义