ce_stage(..) == 2?
Hi,
I saw some code like:attr.c(365): if (ce_stage(istate->cache[i]) == 2)
...rerere.c(352): if (ce_stage(e2) == 2
...
but there is no 0x200 in cache.h(158):
#define CE_NAMEMASK (0x0fff)
#define CE_STAGEMASK (0x3000)
#define CE_EXTENDED (0x4000)
#define CE_VALID (0x8000)
#define CE_STAGESHIFT 12
so what does "2" mean?
Thanks
cg
Quoted 6 lines · cg
I saw some code like:
attr.c(365): if (ce_stage(istate->cache[i])== 2)
...rerere.c(352): if (ce_stage(e2)== 2
...
Quoted 8 lines
but there is no
0x200incache.h(158):
#defineCE_NAMEMASK(0x0fff)
#defineCE_STAGEMASK(0x3000)
#defineCE_EXTENDED(0x4000)
#defineCE_VALID(0x8000)
#defineCE_STAGESHIFT12so what does "2" mean?
#define ce_stage(ce) ((CE_STAGEMASK & (ce)->ce_flags) >> CE_STAGESHIFT)
0x3000 shifted 12 places is a mask for two bits, as you can have cache entries at stage 0 (normal), or stage 1/2/3.