ascii-chat 0.11.33
Video chat in your terminal
Loading...
Searching...
No Matches
magic.h File Reference

Magic number validation constants and macros. More...

Go to the source code of this file.

Macros

#define MAGIC_FRAME_VALID   0xA5C11C4A1ULL
 Magic number for valid ring buffer frames (0xA5C11C4A1 = "ASCIICHAT" in hex)
 
#define MAGIC_FRAME_FREED   0xFEEDFACEU
 Magic number for freed ring buffer frames (0xFEEDFACE)
 
#define MAGIC_BUFFER_POOL_VALID   0xBF00B001U
 Magic number for valid pooled buffers (0xBF00B001)
 
#define MAGIC_BUFFER_POOL_FALLBACK   0xBF00FA11U
 Magic number for malloc fallback buffers (0xBF00FA11)
 
#define MAGIC_PACKET_VALID   0xA5C11C4A1ULL
 Magic number for network packets (0xA5C11C4A1 = "ASCIICHAT" in hex)
 
#define IS_MAGIC_VALID(magic, expected)   ((magic) == (expected))
 Check if magic number is valid (true if matches expected)
 
#define IS_FRAME_VALID(frame)   ((frame)->magic == MAGIC_FRAME_VALID && (frame)->data != NULL)
 Check if frame is valid and not freed.
 
#define IS_FRAME_FREED(frame)   ((frame)->magic == MAGIC_FRAME_FREED)
 Check if frame has been freed (corruption detection)
 
#define IS_BUFFER_POOL_VALID(node)    ((node)->magic == MAGIC_BUFFER_POOL_VALID || (node)->magic == MAGIC_BUFFER_POOL_FALLBACK)
 Check if buffer pool node is valid.
 
#define MARK_FRAME_FREED(frame)   ((frame)->magic = MAGIC_FRAME_FREED)
 Mark a frame as freed.
 

Detailed Description

Magic number validation constants and macros.

Definition in file magic.h.

Macro Definition Documentation

◆ IS_BUFFER_POOL_VALID

#define IS_BUFFER_POOL_VALID (   node)     ((node)->magic == MAGIC_BUFFER_POOL_VALID || (node)->magic == MAGIC_BUFFER_POOL_FALLBACK)

Check if buffer pool node is valid.

Definition at line 45 of file magic.h.

◆ IS_FRAME_FREED

#define IS_FRAME_FREED (   frame)    ((frame)->magic == MAGIC_FRAME_FREED)

Check if frame has been freed (corruption detection)

Definition at line 42 of file magic.h.

◆ IS_FRAME_VALID

#define IS_FRAME_VALID (   frame)    ((frame)->magic == MAGIC_FRAME_VALID && (frame)->data != NULL)

Check if frame is valid and not freed.

Definition at line 39 of file magic.h.

◆ IS_MAGIC_VALID

#define IS_MAGIC_VALID (   magic,
  expected 
)    ((magic) == (expected))

Check if magic number is valid (true if matches expected)

Definition at line 36 of file magic.h.

◆ MAGIC_BUFFER_POOL_FALLBACK

#define MAGIC_BUFFER_POOL_FALLBACK   0xBF00FA11U

Magic number for malloc fallback buffers (0xBF00FA11)

Definition at line 26 of file magic.h.

◆ MAGIC_BUFFER_POOL_VALID

#define MAGIC_BUFFER_POOL_VALID   0xBF00B001U

Magic number for valid pooled buffers (0xBF00B001)

Definition at line 23 of file magic.h.

◆ MAGIC_FRAME_FREED

#define MAGIC_FRAME_FREED   0xFEEDFACEU

Magic number for freed ring buffer frames (0xFEEDFACE)

Definition at line 20 of file magic.h.

◆ MAGIC_FRAME_VALID

#define MAGIC_FRAME_VALID   0xA5C11C4A1ULL

Magic number for valid ring buffer frames (0xA5C11C4A1 = "ASCIICHAT" in hex)

Definition at line 17 of file magic.h.

◆ MAGIC_PACKET_VALID

#define MAGIC_PACKET_VALID   0xA5C11C4A1ULL

Magic number for network packets (0xA5C11C4A1 = "ASCIICHAT" in hex)

Definition at line 29 of file magic.h.

◆ MARK_FRAME_FREED

#define MARK_FRAME_FREED (   frame)    ((frame)->magic = MAGIC_FRAME_FREED)

Mark a frame as freed.

Definition at line 49 of file magic.h.