Generate basic header
[barectf.git] / barectf / templates.py
1 BARECTF_CTX = """struct {prefix}{sid}_ctx {{
2 /* output buffer (will contain a CTF binary packet) */
3 uint8_t* buf;
4
5 /* buffer size in bits */
6 uint32_t buf_size;
7
8 /* current position from beginning of buffer in bits */
9 uint32_t at;
10
11 /* config-specific members follow */
12 {ctx_fields}
13 }};"""
14
15 HEADER = """
16 #ifndef _{ucprefix}_H
17 #define _{ucprefix}_H
18
19 #include <stdint.h>
20
21 /* barectf contexts */
22 {barectf_ctx}
23
24 /* barectf error codes */
25 #define E{ucprefix}_OK 0
26 #define E{ucprefix}_NOSPC 1
27
28 /* alignment macro */
29 #define {ucprefix}_ALIGN_OFFSET(_at, _align) \\
30 do {{ \\
31 _at = ((_at) + (_align)) & ~((_at) + (_align)); \\
32 }} while (0)
33
34 /* buffer overflow check macro */
35 #define {ucprefix}_CHK_OFFSET_V(_at, _bufsize, _size) \\
36 do {{ \\
37 if ((_at) + (_size) > (_bufsize)) {{ \\
38 return -E{ucprefix}_NOSPC; \\
39 }} \\
40 }} while (0)
41
42 /* generated functions follow */
43 {functions}
44
45 #endif /* _{ucprefix}_H */
46 """
This page took 0.064201 seconds and 5 git commands to generate.