RESTART_TABLE
RESTART_TABLE(1b, 2b, 1b)
struct RESTART_TABLE *open_attr_tbl;
static_assert(sizeof(struct RESTART_TABLE) == 0x18);
struct RESTART_TABLE *dptbl = NULL;
struct RESTART_TABLE *trtbl = NULL;
const struct RESTART_TABLE *rt;
struct RESTART_TABLE *oatbl = NULL;
static inline u32 bytes_per_rt(const struct RESTART_TABLE *rt)
sizeof(struct RESTART_TABLE);
static inline void *enum_rstbl(struct RESTART_TABLE *t, void *c)
e = Add2Ptr(t, sizeof(struct RESTART_TABLE));
static inline struct DIR_PAGE_ENTRY *find_dp(struct RESTART_TABLE *dptbl,
if ((tr - sizeof(struct RESTART_TABLE)) %
if ((t16 - sizeof(struct RESTART_TABLE)) % bytes_per_attr_entry)
static bool check_rstbl(const struct RESTART_TABLE *rt, size_t bytes)
ts = rsize * ne + sizeof(struct RESTART_TABLE);
rsize + sizeof(struct RESTART_TABLE) > bytes || bytes < ts ||
(ff && ff < sizeof(struct RESTART_TABLE)) ||
(lf && lf < sizeof(struct RESTART_TABLE))) {
rt, i * rsize + sizeof(struct RESTART_TABLE)));
(off < sizeof(struct RESTART_TABLE) ||
((off - sizeof(struct RESTART_TABLE)) % rsize))) {
static inline void free_rsttbl_idx(struct RESTART_TABLE *rt, u32 off)
static inline struct RESTART_TABLE *init_rsttbl(u16 esize, u16 used)
u32 bytes = esize * used + sizeof(struct RESTART_TABLE);
u32 lf = sizeof(struct RESTART_TABLE) + (used - 1) * esize;
struct RESTART_TABLE *t = kzalloc(bytes, GFP_NOFS);
t->first_free = cpu_to_le32(sizeof(struct RESTART_TABLE));
for (off = sizeof(struct RESTART_TABLE) + esize; e < last_free;
static inline struct RESTART_TABLE *extend_rsttbl(struct RESTART_TABLE *tbl,
struct RESTART_TABLE *rt;
cpu_to_le32(sizeof(struct RESTART_TABLE) +
static inline void *alloc_rsttbl_idx(struct RESTART_TABLE **tbl)
struct RESTART_TABLE *t = *tbl;
static inline void *alloc_rsttbl_from_idx(struct RESTART_TABLE **tbl, u32 vbo)
struct RESTART_TABLE *rt = *tbl;