1.7. types — Common types

A bunch of types and difinitions that didn’t fit anywhere else.


Source code: src/kernel/types.h


Defines

UNUSED(v)

Ignore unused function argument.

An example of a function that does not use it’s first argument a:

int foo(int a, int b)
{
    UNUSED(a);

    return (b);
}

STRINGIFY(x)

Create a string of an identifier using the pre-processor.

STRINGIFY2(x)

Used internally by STRINGIFY().

TOKENPASTE(x, y)

Concatenate two tokens.

TOKENPASTE2(x, y)

Used internally by TOKENPASTE().

UNIQUE(x)

Create a unique token.

PRINT_FILE_LINE()

Debug print of file and line.

STD_PRINTF_DEBUG(...)
membersof(a)

Get the number of elements in an array.

As an example, the code below outputs number of members in foo = 10.

int foo[10];

std_printf(FSTR("number of members in foo = %d\\r\\n"),
           membersof(foo));

indexof(e_p, a)

Get the index of given element in an array.

container_of(ptr, type, member)
DIV_CEIL(n, d)

Integer division that rounds the result up.

DIV_ROUND(n, d)

Integer division that rounds the result to the closest integer.

MIN(a, b)

Get the minimum value of the two.

MAX(a, b)

Get the maximum value of the two.

BIT(pos)
BITFIELD_SET(name, value)
BITFIELD_GET(name, value)
OSTR(string)
CSTR(string)

Typedefs

typedef uint8_t u8_t
typedef int8_t s8_t
typedef uint16_t u16_t
typedef int16_t s16_t
typedef uint32_t u32_t
typedef int32_t s32_t

Functions

static size_t iov_uintptr_size(struct iov_uintptr_t *iov_p, size_t length)
struct thrd_prio_list_elem_t

Public Members

struct thrd_prio_list_elem_t *next_p
struct thrd_t *thrd_p
struct thrd_prio_list_t

Public Members

struct thrd_prio_list_elem_t *head_p
struct iov_t
#include <types.h>

Input-output vector.

Public Members

void *buf_p
size_t size
struct iov_uintptr_t
#include <types.h>

Input-output vector with address.

Public Members

uintptr_t address
size_t size