Hybrid ICN (hICN) plugin  v21.06-rc0-4-g18fa668
Macros
common.h File Reference
#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>
#include <hicn/util/ip_address.h>
Include dependency graph for common.h:

Go to the source code of this file.

Macros

#define INT_CMP(x, y)   x < y ? -1 : (x == y ? 0 : 1)
 
#define INDENT(n, fmt)   "%*s" fmt, n, ""
 
#define printfi(n, fmt, ...)   printf(INDENT(n*4, fmt), ##__VA_ARGS__)
 
#define _unused(x)   ((void)(x))
 
#define NO_INITIALIZE(NAME)
 
#define NO_FINALIZE(NAME)
 
#define AUTOGENERATE_CREATE_FREE(NAME)
 
#define AUTOGENERATE_DEFS(NAME)
 

Macro Definition Documentation

◆ AUTOGENERATE_CREATE_FREE

#define AUTOGENERATE_CREATE_FREE (   NAME)
Value:
\
NAME ## _t * \
NAME ## _create() \
{ \
NAME ## _t * obj = malloc(sizeof(NAME ## _t)); \
if (!obj) \
goto ERR_MALLOC; \
\
if (NAME ## _initialize(obj) < 0) \
goto ERR_INIT; \
\
return obj; \
\
ERR_INIT: \
free(obj); \
ERR_MALLOC: \
return NULL; \
} \
\
void \
NAME ## _free(NAME ## _t * obj) \
{ \
if (NAME ## _finalize(obj) < 0) \
(void)0; /* XXX */ \
free(obj); \
} \

◆ AUTOGENERATE_DEFS

#define AUTOGENERATE_DEFS (   NAME)
Value:
int NAME ## _initialize(NAME ## _t *); \
int NAME ## _finalize(NAME ## _t *); \
NAME ## _t * NAME ## _create(); \
void NAME ## _free(NAME ## _t *); \

◆ NO_FINALIZE

#define NO_FINALIZE (   NAME)
Value:
int \
NAME ## _finalize(NAME ## _t * obj) { \
return 0; \
}

◆ NO_INITIALIZE

#define NO_INITIALIZE (   NAME)
Value:
int \
NAME ## _initialize(NAME ## _t * obj) { \
return 0; \
}