Lines Matching refs:meta
18 struct meta *meta;
20 char pad[UNIT - sizeof(struct meta *) - 1];
24 struct meta {
25 struct meta *prev, *next;
38 struct meta slots[];
48 struct meta *free_meta_head;
49 struct meta *avail_meta;
53 struct meta *active[48];
70 struct meta *alloc_meta(void);
85 static inline void queue(struct meta **phead, struct meta *m)
90 struct meta *head = *phead;
105 static inline void dequeue(struct meta **phead, struct meta *m)
117 static inline struct meta *dequeue_head(struct meta **phead)
119 struct meta *m = *phead;
124 static inline void free_meta(struct meta *m)
126 *m = (struct meta){0};
130 static inline uint32_t activate_group(struct meta *m)
144 static inline struct meta *get_meta(const unsigned char *p)
155 const struct meta *meta = encode_ptr(base->meta, ctx.secret);
156 assert(meta->mem == base);
157 assert(index <= meta->last_idx);
158 assert(!(meta->avail_mask & (1u<<index)));
159 assert(!(meta->freed_mask & (1u<<index)));
160 const struct meta_area *area = (void *)((uintptr_t)meta & -4096);
162 if (meta->sizeclass < 48) {
163 assert(offset >= size_classes[meta->sizeclass]*index);
164 assert(offset < size_classes[meta->sizeclass]*(index+1));
166 assert(meta->sizeclass == 63);
168 if (meta->maplen) {
169 assert(offset <= meta->maplen*4096UL/UNIT - 1);
171 return (struct meta *)meta;
190 static inline size_t get_stride(const struct meta *g)
211 static inline void *enframe(struct meta *g, int idx, size_t n, int ctr)