]> pd.if.org Git - liblfds/blob - liblfds/liblfds6.0.1/test/src/structures.h
Initial import (all versions, including the new 7.1.0)
[liblfds] / liblfds / liblfds6.0.1 / test / src / structures.h
1 /***** structs *****/\r
2 #pragma pack( push, LFDS601_ALIGN_DOUBLE_POINTER )\r
3 \r
4 /***** abstraction tests *****/\r
5 struct abstraction_test_dcas_state\r
6 {\r
7   volatile lfds601_atom_t\r
8     *shared_counter;\r
9 \r
10   lfds601_atom_t\r
11     local_counter;\r
12 };\r
13 \r
14 /***** freelist tests *****/\r
15 struct freelist_test_popping_state\r
16 {\r
17   struct lfds601_freelist_state\r
18     *fs,\r
19     *fs_thread_local;\r
20 };\r
21 \r
22 struct freelist_test_pushing_state\r
23 {\r
24   lfds601_atom_t\r
25     thread_number;\r
26 \r
27   struct lfds601_freelist_state\r
28     *source_fs,\r
29     *fs;\r
30 };\r
31 \r
32 struct freelist_test_popping_and_pushing_state\r
33 {\r
34   struct lfds601_freelist_state\r
35     *local_fs,\r
36     *fs;\r
37 };\r
38 \r
39 struct freelist_test_counter_and_thread_number\r
40 {\r
41   lfds601_atom_t\r
42     thread_number;\r
43 \r
44   unsigned long long int\r
45     counter;\r
46 };\r
47 \r
48 /***** queue tests *****/\r
49 struct queue_test_enqueuing_state\r
50 {\r
51   struct lfds601_queue_state\r
52     *qs;\r
53 \r
54   lfds601_atom_t\r
55     counter;\r
56 };\r
57 \r
58 struct queue_test_dequeuing_state\r
59 {\r
60   struct lfds601_queue_state\r
61     *qs;\r
62 \r
63   int\r
64     error_flag;\r
65 };\r
66 \r
67 struct queue_test_enqueuing_and_dequeuing_state\r
68 {\r
69   struct lfds601_queue_state\r
70     *qs;\r
71 \r
72   lfds601_atom_t\r
73     counter,\r
74     thread_number,\r
75     *per_thread_counters;\r
76 \r
77   unsigned int\r
78     cpu_count;\r
79 \r
80   int\r
81     error_flag;\r
82 };\r
83 \r
84 struct queue_test_rapid_enqueuing_and_dequeuing_state\r
85 {\r
86   struct lfds601_queue_state\r
87     *qs;\r
88 \r
89   lfds601_atom_t\r
90     counter;\r
91 };\r
92 \r
93 /***** ringbuffer tests *****/\r
94 struct ringbuffer_test_reading_state\r
95 {\r
96   struct lfds601_ringbuffer_state\r
97     *rs;\r
98 \r
99   int\r
100     error_flag;\r
101 \r
102   lfds601_atom_t\r
103     read_count;\r
104 };\r
105 \r
106 struct ringbuffer_test_writing_state\r
107 {\r
108   struct lfds601_ringbuffer_state\r
109     *rs;\r
110 \r
111   lfds601_atom_t\r
112     write_count;\r
113 };\r
114 \r
115 struct ringbuffer_test_reading_and_writing_state\r
116 {\r
117   struct lfds601_ringbuffer_state\r
118     *rs;\r
119 \r
120   lfds601_atom_t\r
121     counter,\r
122     *per_thread_counters;\r
123 \r
124   unsigned int\r
125     cpu_count;\r
126 \r
127   int\r
128     error_flag;\r
129 };\r
130 \r
131 /***** slist tests *****/\r
132 struct lfds601_slist_thread_start_state\r
133 {\r
134   struct lfds601_slist_state\r
135     *ss;\r
136 \r
137   struct lfds601_slist_element\r
138     *se;\r
139 \r
140   time_t\r
141     duration;\r
142 \r
143   unsigned long int\r
144     iteration_modulo;\r
145 };\r
146 \r
147 /***** stack tests *****/\r
148 \r
149 /***** freelist benchmarks *****/\r
150 struct lfds601_freelist_benchmark\r
151 {\r
152   struct lfds601_freelist_state\r
153     *fs;\r
154 \r
155   lfds601_atom_t\r
156     operation_count;\r
157 };\r
158 \r
159 /***** queue benchmarks *****/\r
160 struct lfds601_queue_benchmark\r
161 {\r
162   struct lfds601_queue_state\r
163     *qs;\r
164 \r
165   lfds601_atom_t\r
166     operation_count;\r
167 };\r
168 \r
169 /***** ringbuffer benchmarks *****/\r
170 struct lfds601_ringbuffer_benchmark\r
171 {\r
172   struct lfds601_ringbuffer_state\r
173     *rs;\r
174 \r
175   lfds601_atom_t\r
176     operation_count;\r
177 };\r
178 \r
179 /***** stack benchmarks *****/\r
180 struct lfds601_stack_benchmark\r
181 {\r
182   struct lfds601_stack_state\r
183     *ss;\r
184 \r
185   lfds601_atom_t\r
186     operation_count;\r
187 };\r
188 \r
189 #pragma pack( pop )\r
190 \r