XenevaOS
Loading...
Searching...
No Matches
Macros
stddef.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define __always_inline   inline
 
#define __struct_group_tag(TAG)   TAG
 
#define __struct_group(TAG, NAME, ATTRS, MEMBERS...)
 
#define __DECLARE_FLEX_ARRAY(TYPE, NAME)
 
#define __counted_by(m)
 
#define __counted_by_le(m)
 
#define __counted_by_be(m)
 
#define __counted_by_ptr(m)
 
#define __kernel_nonstring
 

Macro Definition Documentation

◆ __always_inline

#define __always_inline   inline

◆ __counted_by

#define __counted_by (   m)

◆ __counted_by_be

#define __counted_by_be (   m)

◆ __counted_by_le

#define __counted_by_le (   m)

◆ __counted_by_ptr

#define __counted_by_ptr (   m)

◆ __DECLARE_FLEX_ARRAY

#define __DECLARE_FLEX_ARRAY (   TYPE,
  NAME 
)
Value:
struct { \
struct { } __empty_ ## NAME; \
TYPE NAME[]; \
}

__DECLARE_FLEX_ARRAY() - Declare a flexible array usable in a union

@TYPE: The type of each flexible array element @NAME: The name of the flexible array member

In order to have a flexible array member in a union or alone in a struct, it needs to be wrapped in an anonymous struct with at least 1 named member, but that member can be empty.

◆ __kernel_nonstring

#define __kernel_nonstring

◆ __struct_group

#define __struct_group (   TAG,
  NAME,
  ATTRS,
  MEMBERS... 
)
Value:
union { \
struct { MEMBERS } ATTRS; \
struct __struct_group_tag(TAG) { MEMBERS } ATTRS NAME; \
} ATTRS

__struct_group() - Create a mirrored named and anonyomous struct

@TAG: The tag name for the named sub-struct (usually empty) @NAME: The identifier name of the mirrored sub-struct @ATTRS: Any struct attributes (usually empty) @MEMBERS: The member declarations for the mirrored structs

Used to create an anonymous union of two structs with identical layout and size: one anonymous and one named. The former's members can be used normally without sub-struct naming, and the latter can be used to reason about the start, end, and size of the group of struct members. The named struct can also be explicitly tagged for layer reuse (C only), as well as both having struct attributes appended.

◆ __struct_group_tag

#define __struct_group_tag (   TAG)    TAG