mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-12-22 17:51:53 +00:00
Lib: Use alloc_size() function attribute
This commit is contained in:
parent
e29f134ad9
commit
2d6fb31cd1
@ -75,7 +75,8 @@ static inline int u64_cmp(u64 i1, u64 i2)
|
|||||||
#define NORET __attribute__((noreturn))
|
#define NORET __attribute__((noreturn))
|
||||||
#define UNUSED __attribute__((unused))
|
#define UNUSED __attribute__((unused))
|
||||||
#define PACKED __attribute__((packed))
|
#define PACKED __attribute__((packed))
|
||||||
#define NONNULL(...) __attribute__((nonnull((__VA_ARGS__))))
|
#define NONNULL(...) __attribute__((nonnull(__VA_ARGS__)))
|
||||||
|
#define ALLOC_SIZE(...) __attribute__((alloc_size(__VA_ARGS__)))
|
||||||
|
|
||||||
#define STATIC_ASSERT(EXP) _Static_assert(EXP, #EXP)
|
#define STATIC_ASSERT(EXP) _Static_assert(EXP, #EXP)
|
||||||
#define STATIC_ASSERT_MSG(EXP,MSG) _Static_assert(EXP, MSG)
|
#define STATIC_ASSERT_MSG(EXP,MSG) _Static_assert(EXP, MSG)
|
||||||
|
@ -57,9 +57,9 @@ extern pool root_pool;
|
|||||||
|
|
||||||
/* Normal memory blocks */
|
/* Normal memory blocks */
|
||||||
|
|
||||||
void *mb_alloc(pool *, unsigned size);
|
void *mb_alloc(pool *, unsigned size) ALLOC_SIZE(2);
|
||||||
void *mb_allocz(pool *, unsigned size);
|
void *mb_allocz(pool *, unsigned size) ALLOC_SIZE(2);
|
||||||
void *mb_realloc(void *m, unsigned size);
|
void *mb_realloc(void *m, unsigned size) ALLOC_SIZE(2);
|
||||||
void mb_free(void *);
|
void mb_free(void *);
|
||||||
|
|
||||||
/* Memory pools with linear allocation */
|
/* Memory pools with linear allocation */
|
||||||
@ -73,9 +73,9 @@ typedef struct lp_state {
|
|||||||
} lp_state;
|
} lp_state;
|
||||||
|
|
||||||
linpool *lp_new(pool *);
|
linpool *lp_new(pool *);
|
||||||
void *lp_alloc(linpool *, unsigned size); /* Aligned */
|
void *lp_alloc(linpool *, unsigned size) ALLOC_SIZE(2); /* Aligned */
|
||||||
void *lp_allocu(linpool *, unsigned size); /* Unaligned */
|
void *lp_allocu(linpool *, unsigned size) ALLOC_SIZE(2); /* Unaligned */
|
||||||
void *lp_allocz(linpool *, unsigned size); /* With clear */
|
void *lp_allocz(linpool *, unsigned size) ALLOC_SIZE(2); /* With clear */
|
||||||
void lp_flush(linpool *); /* Free everything, but leave linpool */
|
void lp_flush(linpool *); /* Free everything, but leave linpool */
|
||||||
void lp_save(linpool *m, lp_state *p); /* Save state */
|
void lp_save(linpool *m, lp_state *p); /* Save state */
|
||||||
void lp_restore(linpool *m, lp_state *p); /* Restore state */
|
void lp_restore(linpool *m, lp_state *p); /* Restore state */
|
||||||
|
Loading…
Reference in New Issue
Block a user