zfsimpl.h (201689) | zfsimpl.h (208047) |
---|---|
1/*- 2 * Copyright (c) 2002 McAfee, Inc. 3 * All rights reserved. 4 * 5 * This software was developed for the FreeBSD Project by Marshall 6 * Kirk McKusick and McAfee Research,, the Security Research Division of 7 * McAfee, Inc. under DARPA/SPAWAR contract N66001-01-C-8035 ("CBOSS"), as 8 * part of the DARPA CHATS research program --- 52 unchanged lines hidden (view full) --- 61 * is known to be a power of 2. 62 */ 63#define P2ALIGN(x, align) ((x) & -(align)) 64#define P2PHASE(x, align) ((x) & ((align) - 1)) 65#define P2NPHASE(x, align) (-(x) & ((align) - 1)) 66#define P2ROUNDUP(x, align) (-(-(x) & -(align))) 67#define P2END(x, align) (-(~(x) & -(align))) 68#define P2PHASEUP(x, align, phase) ((phase) - (((phase) - (x)) & -(align))) | 1/*- 2 * Copyright (c) 2002 McAfee, Inc. 3 * All rights reserved. 4 * 5 * This software was developed for the FreeBSD Project by Marshall 6 * Kirk McKusick and McAfee Research,, the Security Research Division of 7 * McAfee, Inc. under DARPA/SPAWAR contract N66001-01-C-8035 ("CBOSS"), as 8 * part of the DARPA CHATS research program --- 52 unchanged lines hidden (view full) --- 61 * is known to be a power of 2. 62 */ 63#define P2ALIGN(x, align) ((x) & -(align)) 64#define P2PHASE(x, align) ((x) & ((align) - 1)) 65#define P2NPHASE(x, align) (-(x) & ((align) - 1)) 66#define P2ROUNDUP(x, align) (-(-(x) & -(align))) 67#define P2END(x, align) (-(~(x) & -(align))) 68#define P2PHASEUP(x, align, phase) ((phase) - (((phase) - (x)) & -(align))) |
69#define P2CROSS(x, y, align) (((x) ^ (y)) > (align) - 1) | 69#define P2BOUNDARY(off, len, align) (((off) ^ ((off) + (len) - 1)) > (align) - 1) |
70 71/* 72 * General-purpose 32-bit and 64-bit bitfield encodings. 73 */ 74#define BF32_DECODE(x, low, len) P2PHASE((x) >> (low), 1U << (len)) 75#define BF64_DECODE(x, low, len) P2PHASE((x) >> (low), 1ULL << (len)) 76#define BF32_ENCODE(x, low, len) (P2PHASE((x), 1U << (len)) << (low)) 77#define BF64_ENCODE(x, low, len) (P2PHASE((x), 1ULL << (len)) << (low)) --- 1131 unchanged lines hidden --- | 70 71/* 72 * General-purpose 32-bit and 64-bit bitfield encodings. 73 */ 74#define BF32_DECODE(x, low, len) P2PHASE((x) >> (low), 1U << (len)) 75#define BF64_DECODE(x, low, len) P2PHASE((x) >> (low), 1ULL << (len)) 76#define BF32_ENCODE(x, low, len) (P2PHASE((x), 1U << (len)) << (low)) 77#define BF64_ENCODE(x, low, len) (P2PHASE((x), 1ULL << (len)) << (low)) --- 1131 unchanged lines hidden --- |