ascii-chat 0.11.33
Video chat in your terminal
Loading...
Searching...
No Matches
magic.h
Go to the documentation of this file.
1
7#pragma once
8
9#include <stdint.h>
10#include <stdbool.h>
11
12/* ============================================================================
13 * Magic Number Definitions
14 * ============================================================================ */
15
17#define MAGIC_FRAME_VALID 0xA5C11C4A1ULL
18
20#define MAGIC_FRAME_FREED 0xFEEDFACEU
21
23#define MAGIC_BUFFER_POOL_VALID 0xBF00B001U
24
26#define MAGIC_BUFFER_POOL_FALLBACK 0xBF00FA11U
27
29#define MAGIC_PACKET_VALID 0xA5C11C4A1ULL
30
31/* ============================================================================
32 * Validation Macros
33 * ============================================================================ */
34
36#define IS_MAGIC_VALID(magic, expected) ((magic) == (expected))
37
39#define IS_FRAME_VALID(frame) ((frame)->magic == MAGIC_FRAME_VALID && (frame)->data != NULL)
40
42#define IS_FRAME_FREED(frame) ((frame)->magic == MAGIC_FRAME_FREED)
43
45#define IS_BUFFER_POOL_VALID(node) \
46 ((node)->magic == MAGIC_BUFFER_POOL_VALID || (node)->magic == MAGIC_BUFFER_POOL_FALLBACK)
47
49#define MARK_FRAME_FREED(frame) ((frame)->magic = MAGIC_FRAME_FREED)
50
ClangTool/LibTooling compatibility shim for stdbool.h.