genevent 0.8
[lttv.git] / genevent-new / genevent.h
CommitLineData
92d82357 1/******************************************************************************
2 * Genevent
3 *
4 * Event generator. XML to logging C code converter.
5 *
6 * Supports :
7 * - C Alignment
8 * - C types : struct, union, enum, basic types.
9 * - Architectures : LP32, ILP32, ILP64, LLP64, LP64.
10 *
11 * Additionnal structures supported :
12 * - embedded variable size strings
13 * - embedded variable size arrays
14 * - embedded variable size sequences
15 *
16 * Notes :
17 * (1)
18 * enums are limited to integer type, as this is what is used in C. Note,
19 * however, that ISO/IEC 9899:TC2 specify that the type of enum can be char,
20 * unsigned int or int. This is implementation defined (compiler). That's why we
21 * add a check for sizeof enum.
22 *
23 * (2)
24 * Because of archtecture defined type sizes, we need to ask for ltt_align
25 * (which gives the alignment) by passing basic types, not their actual sizes.
26 * It's up to ltt_align to determine sizes of types.
27 *
28 * Note that, from
29 * http://www.usenix.org/publications/login/standards/10.data.html
30 * (Andrew Josey <a.josey@opengroup.org>) :
31 *
32 * Data Type LP32 ILP32 ILP64 LLP64 LP64
33 * char 8 8 8 8 8
34 * short 16 16 16 16 16
35 * int32 32
36 * int 16 32 64 32 32
37 * long 32 32 64 32 64
38 * long long (int64) 64
39 * pointer 32 32 64 64 64
40 *
41 * With these constraints :
42 * sizeof(char) <= sizeof(short) <= sizeof(int)
43 * <= sizeof(long) = sizeof(size_t)
44 *
45 * and therefore sizeof(long) <= sizeof(pointer) <= sizeof(size_t)
46 *
47 * Which means we only have to remember which is the biggest type in a structure
48 * to know the structure's alignment.
49 */
50
51
52
53/* Code printing */
54
55/* Type size checking */
56int print_check(int fd);
57
58
59/* Print types */
60int print_types(int fd);
61
62/* Print events */
63int print_events(int fd);
64
65
66
This page took 0.025319 seconds and 4 git commands to generate.