X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=genevent-new%2Fparser.h;h=cf90b7a7814e4023a8db48c9a7aae08c27e6d04a;hb=63c831c5939c524c50e493f1073cc0d0d966fa95;hp=482e16d0eb6de5466ee988ab79b3620443534ab5;hpb=2d2d14a73451144b1f67fb64191a6cef99b90a26;p=lttv.git diff --git a/genevent-new/parser.h b/genevent-new/parser.h index 482e16d0..cf90b7a7 100644 --- a/genevent-new/parser.h +++ b/genevent-new/parser.h @@ -101,24 +101,21 @@ typedef enum _data_type { NONE } data_type_t; -/* Event type descriptors */ - typedef struct _type_descriptor { char * type_name; //used for named type data_type_t type; char *fmt; - unsigned long long size; + size_t size; sequence_t labels; // for enumeration sequence_t labels_description; int already_printed; - sequence_t fields; // for structure - struct _type_descriptor *nested_type; // for array and sequence + sequence_t fields; // for structure, array and sequence int alignment; } type_descriptor_t; -/* Fields within types */ +/* Fields within types or events */ typedef struct _field{ char *name; char *description; @@ -131,7 +128,8 @@ typedef struct _field{ typedef struct _event { char *name; char *description; - type_descriptor_t *type; + //type_descriptor_t *type; + sequence_t fields; /* event fields */ int per_trace; /* Is the event able to be logged to a specific trace ? */ int per_tracefile; /* Must we log this event in a specific tracefile ? */ } event_t; @@ -143,6 +141,7 @@ typedef struct _facility { sequence_t events; sequence_t unnamed_types; table_t named_types; + unsigned int checksum; } facility_t; int getSizeindex(unsigned int value); @@ -156,12 +155,14 @@ void parseTypeDefinition(parse_file_t *in, sequence_t * unnamed_types, table_t * named_types); type_descriptor_t *parseType(parse_file_t *in, type_descriptor_t *t, sequence_t * unnamed_types, table_t * named_types); -void parseFields(parse_file_t *in, type_descriptor_t *t, - sequence_t * unnamed_types, table_t * named_types); +void parseFields(parse_file_t *in, field_t *f, + sequence_t * unnamed_types, + table_t * named_types, + int tag); void checkNamedTypesImplemented(table_t * namedTypes); type_descriptor_t * find_named_type(char *name, table_t * named_types); void generateChecksum(char * facName, - unsigned long * checksum, sequence_t * events); + unsigned int * checksum, sequence_t * events); /* get attributes */