Use intptr_t note ptrdiff_t when storing flags in the bottom bits of
pointers.
Obtained from: CheriBSD (e3a69027cc
)
Sponsored by: DARPA, AFRL
This commit is contained in:
parent
0c370c1a96
commit
45308eec4a
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=295031
@ -138,11 +138,11 @@ typedef struct htab { /* Memory resident data structure */
|
||||
#define ALL_SET ((u_int32_t)0xFFFFFFFF)
|
||||
#define ALL_CLEAR 0
|
||||
|
||||
#define PTROF(X) ((BUFHEAD *)((ptrdiff_t)(X)&~0x3))
|
||||
#define ISMOD(X) ((u_int32_t)(ptrdiff_t)(X)&0x1)
|
||||
#define DOMOD(X) ((X) = (char *)((ptrdiff_t)(X)|0x1))
|
||||
#define ISDISK(X) ((u_int32_t)(ptrdiff_t)(X)&0x2)
|
||||
#define DODISK(X) ((X) = (char *)((ptrdiff_t)(X)|0x2))
|
||||
#define PTROF(X) ((BUFHEAD *)((intptr_t)(X)&~0x3))
|
||||
#define ISMOD(X) ((u_int32_t)(intptr_t)(X)&0x1)
|
||||
#define DOMOD(X) ((X) = (char *)((intptr_t)(X)|0x1))
|
||||
#define ISDISK(X) ((u_int32_t)(intptr_t)(X)&0x2)
|
||||
#define DODISK(X) ((X) = (char *)((intptr_t)(X)|0x2))
|
||||
|
||||
#define BITS_PER_MAP 32
|
||||
|
||||
|
@ -138,7 +138,7 @@ __get_buf(HTAB *hashp, u_int32_t addr,
|
||||
return (NULL);
|
||||
if (!prev_bp)
|
||||
segp[segment_ndx] =
|
||||
(BUFHEAD *)((ptrdiff_t)bp | is_disk_mask);
|
||||
(BUFHEAD *)((intptr_t)bp | is_disk_mask);
|
||||
} else {
|
||||
BUF_REMOVE(bp);
|
||||
MRU_INSERT(bp);
|
||||
|
Loading…
Reference in New Issue
Block a user