Subversion Repositories HelenOS

Rev

Rev 4743 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4743 Rev 4756
Line 45... Line 45...
45
/** Internal magic value for a field consistency check.
45
/** Internal magic value for a field consistency check.
46
 */
46
 */
47
#define GENERIC_FIELD_MAGIC_VALUE       0x55667788
47
#define GENERIC_FIELD_MAGIC_VALUE       0x55667788
48
 
48
 
49
/** Generic type field declaration.
49
/** Generic type field declaration.
50
 *  @param name Name of the field. Input parameter.
50
 *  @param[in] name Name of the field.
51
 *  @param type Inner object type. Input parameter
51
 *  @param[in] type Inner object type.
52
 */
52
 */
53
#define GENERIC_FIELD_DECLARE( name, type )                 \
53
#define GENERIC_FIELD_DECLARE( name, type )                 \
54
                                        \
54
                                        \
55
typedef struct name     name##_t;                   \
55
typedef struct name     name##_t;                   \
56
typedef name##_t *      name##_ref;                 \
56
typedef name##_t *      name##_ref;                 \
Line 71... Line 71...
71
int name##_initialize( name##_ref field );                  \
71
int name##_initialize( name##_ref field );                  \
72
int name##_is_valid( name##_ref field );
72
int name##_is_valid( name##_ref field );
73
 
73
 
74
/** Generic type field implementation.
74
/** Generic type field implementation.
75
 *  Should follow declaration with the same parameters.
75
 *  Should follow declaration with the same parameters.
76
 *  @param name Name of the field. Input parameter.
76
 *  @param[in] name Name of the field.
77
 *  @param type Inner object type. Input parameter
77
 *  @param[in] type Inner object type.
78
 */
78
 */
79
#define GENERIC_FIELD_IMPLEMENT( name, type )                   \
79
#define GENERIC_FIELD_IMPLEMENT( name, type )                   \
80
                                        \
80
                                        \
81
int name##_add( name##_ref field, type * value ){               \
81
int name##_add( name##_ref field, type * value ){               \
82
    if( name##_is_valid( field )){                      \
82
    if( name##_is_valid( field )){                      \