Subversion Repositories dashGPS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 mjames 1
#ifndef _JTEST_DEFINE_H_
2
#define _JTEST_DEFINE_H_
3
 
4
/*--------------------------------------------------------------------------------*/
5
/* Macros and Defines */
6
/*--------------------------------------------------------------------------------*/
7
 
8
/**
9
 *  Makes a symbol for use as a struct name. Names made this way have two parts;
10
 *  the first parts is a prefix common to all structs of that class. The second
11
 *  is a specifier which differs for each instance of that struct type.
12
 */
13
#define JTEST_STRUCT_NAME(prefix, specifier)    \
14
    CONCAT(prefix, specifier)
15
 
16
/**
17
 *  Define a struct with type with a name generated by #JTEST_STRUCT_NAME().
18
 */
19
#define JTEST_DEFINE_STRUCT(type, struct_name)    \
20
    type struct_name
21
 
22
/**
23
 *  Declare a struct with type with a name generated by #JTEST_STRUCT_NAME().
24
 */
25
#define JTEST_DECLARE_STRUCT(struct_definition) \
26
    extern struct_definition
27
 
28
/**
29
 *  Define and initialize a struct (created with JTEST_DEFINE_STRUCT()) and
30
 *  initialize it with init_values.
31
 */
32
#define JTEST_INIT_STRUCT(struct_definition, init_values)       \
33
    struct_definition = {                                       \
34
        init_values                                             \
35
    }
36
 
37
#endif /* _JTEST_DEFINE_H_ */