xref: /aosp_15_r20/external/igt-gpu-tools/overlay/tracepoint_format.leg (revision d83cc019efdc2edc6c4b16e9034a3ceb8d35d77c)
1*d83cc019SAndroid Build Coastguard WorkerTracepointFmt =
2*d83cc019SAndroid Build Coastguard Worker    'name' ':' Space n:PropertyName EndLine { free(n.string); }
3*d83cc019SAndroid Build Coastguard Worker    'ID:' Space v:Number EndLine { yy->ctx.tp->event_id = v.integer; }
4*d83cc019SAndroid Build Coastguard Worker    'format:' EndLine
5*d83cc019SAndroid Build Coastguard Worker    Field+
6*d83cc019SAndroid Build Coastguard Worker    'print fmt:' [^.]* !.
7*d83cc019SAndroid Build Coastguard Worker
8*d83cc019SAndroid Build Coastguard WorkerField = Space (Property ';' Space)+ EndLine
9*d83cc019SAndroid Build Coastguard Worker            { yy->ctx.tp->n_fields++; }
10*d83cc019SAndroid Build Coastguard Worker      | EndLine
11*d83cc019SAndroid Build Coastguard Worker
12*d83cc019SAndroid Build Coastguard WorkerProperty = 'offset' ':' v:Number
13*d83cc019SAndroid Build Coastguard Worker               { yy->ctx.tp->fields[yy->ctx.tp->n_fields].offset = v.integer; }
14*d83cc019SAndroid Build Coastguard Worker         | 'size' ':' v:Number
15*d83cc019SAndroid Build Coastguard Worker               { yy->ctx.tp->fields[yy->ctx.tp->n_fields].size = v.integer; }
16*d83cc019SAndroid Build Coastguard Worker         | 'signed' ':' v:Number
17*d83cc019SAndroid Build Coastguard Worker               { yy->ctx.tp->fields[yy->ctx.tp->n_fields].is_signed = v.integer != 0; }
18*d83cc019SAndroid Build Coastguard Worker         | 'field' ':' v:PropertyValue
19*d83cc019SAndroid Build Coastguard Worker               { snprintf(yy->ctx.tp->fields[yy->ctx.tp->n_fields].name,
20*d83cc019SAndroid Build Coastguard Worker			  sizeof(yy->ctx.tp->fields[yy->ctx.tp->n_fields].name),
21*d83cc019SAndroid Build Coastguard Worker			  "%s", strrchr(v.string, ' ') + 1);
22*d83cc019SAndroid Build Coastguard Worker		 free(v.string); }
23*d83cc019SAndroid Build Coastguard Worker         | n:PropertyName ':' v:PropertyValue
24*d83cc019SAndroid Build Coastguard Worker               { free(n.string); free(v.string); }
25*d83cc019SAndroid Build Coastguard Worker
26*d83cc019SAndroid Build Coastguard WorkerPropertyName  = < [A-Za-z0-9_]+ >
27*d83cc019SAndroid Build Coastguard Worker        { $$.string = strdup(yytext); }
28*d83cc019SAndroid Build Coastguard WorkerPropertyValue = < [^;]+ >
29*d83cc019SAndroid Build Coastguard Worker        { $$.string = strdup(yytext); }
30*d83cc019SAndroid Build Coastguard WorkerNumber        = < [0-9]+ >
31*d83cc019SAndroid Build Coastguard Worker        { $$.integer = atoi(yytext); }
32*d83cc019SAndroid Build Coastguard Worker
33*d83cc019SAndroid Build Coastguard WorkerEndLine       = [\n]
34*d83cc019SAndroid Build Coastguard WorkerSpace         = [ \t]*
35