]> pd.if.org Git - liblfds/blob - liblfds/liblfds6.1.1/test/src/structures.h
Initial import (all versions, including the new 7.1.0)
[liblfds] / liblfds / liblfds6.1.1 / test / src / structures.h
1 /***** structs *****/\r
2 #pragma pack( push, LFDS611_ALIGN_DOUBLE_POINTER )\r
3 \r
4 /***** abstraction tests *****/\r
5 struct abstraction_test_cas_state\r
6 {\r
7   volatile lfds611_atom_t\r
8     *shared_counter;\r
9 \r
10   lfds611_atom_t\r
11     local_counter;\r
12 };\r
13 \r
14 struct abstraction_test_dcas_state\r
15 {\r
16   volatile lfds611_atom_t\r
17     *shared_counter;\r
18 \r
19   lfds611_atom_t\r
20     local_counter;\r
21 };\r
22 \r
23 /***** freelist tests *****/\r
24 struct freelist_test_popping_state\r
25 {\r
26   struct lfds611_freelist_state\r
27     *fs,\r
28     *fs_thread_local;\r
29 };\r
30 \r
31 struct freelist_test_pushing_state\r
32 {\r
33   lfds611_atom_t\r
34     *count,\r
35     thread_number;\r
36 \r
37   struct lfds611_freelist_state\r
38     *source_fs,\r
39     *fs;\r
40 };\r
41 \r
42 struct freelist_test_popping_and_pushing_state\r
43 {\r
44   struct lfds611_freelist_state\r
45     *local_fs,\r
46     *fs;\r
47 };\r
48 \r
49 struct freelist_test_counter_and_thread_number\r
50 {\r
51   lfds611_atom_t\r
52     thread_number;\r
53 \r
54   unsigned long long int\r
55     counter;\r
56 };\r
57 \r
58 /***** queue tests *****/\r
59 struct queue_test_enqueuing_state\r
60 {\r
61   struct lfds611_queue_state\r
62     *qs;\r
63 \r
64   lfds611_atom_t\r
65     counter;\r
66 };\r
67 \r
68 struct queue_test_dequeuing_state\r
69 {\r
70   struct lfds611_queue_state\r
71     *qs;\r
72 \r
73   int\r
74     error_flag;\r
75 };\r
76 \r
77 struct queue_test_enqueuing_and_dequeuing_state\r
78 {\r
79   struct lfds611_queue_state\r
80     *qs;\r
81 \r
82   lfds611_atom_t\r
83     counter,\r
84     thread_number,\r
85     *per_thread_counters;\r
86 \r
87   unsigned int\r
88     cpu_count;\r
89 \r
90   int\r
91     error_flag;\r
92 };\r
93 \r
94 struct queue_test_rapid_enqueuing_and_dequeuing_state\r
95 {\r
96   struct lfds611_queue_state\r
97     *qs;\r
98 \r
99   lfds611_atom_t\r
100     counter;\r
101 };\r
102 \r
103 /***** ringbuffer tests *****/\r
104 struct ringbuffer_test_reading_state\r
105 {\r
106   struct lfds611_ringbuffer_state\r
107     *rs;\r
108 \r
109   int\r
110     error_flag;\r
111 \r
112   lfds611_atom_t\r
113     read_count;\r
114 };\r
115 \r
116 struct ringbuffer_test_writing_state\r
117 {\r
118   struct lfds611_ringbuffer_state\r
119     *rs;\r
120 \r
121   lfds611_atom_t\r
122     write_count;\r
123 };\r
124 \r
125 struct ringbuffer_test_reading_and_writing_state\r
126 {\r
127   struct lfds611_ringbuffer_state\r
128     *rs;\r
129 \r
130   lfds611_atom_t\r
131     counter,\r
132     *per_thread_counters;\r
133 \r
134   unsigned int\r
135     cpu_count;\r
136 \r
137   int\r
138     error_flag;\r
139 };\r
140 \r
141 /***** slist tests *****/\r
142 struct slist_test_state\r
143 {\r
144   struct lfds611_slist_state\r
145     *ss;\r
146 \r
147   size_t\r
148     create_count,\r
149     delete_count;\r
150 \r
151   lfds611_atom_t\r
152     thread_and_count;\r
153 };\r
154 \r
155 /***** stack tests *****/\r
156 struct stack_test_popping_state\r
157 {\r
158   struct lfds611_stack_state\r
159     *ss,\r
160     *ss_thread_local;\r
161 };\r
162 \r
163 struct stack_test_pushing_state\r
164 {\r
165   lfds611_atom_t\r
166     thread_number;\r
167 \r
168   struct lfds611_stack_state\r
169     *ss;\r
170 };\r
171 \r
172 struct stack_test_popping_and_pushing_state\r
173 {\r
174   struct lfds611_stack_state\r
175     *local_ss,\r
176     *ss;\r
177 };\r
178 \r
179 struct stack_test_counter_and_thread_number\r
180 {\r
181   lfds611_atom_t\r
182     thread_number,\r
183     counter;\r
184 };\r
185 \r
186 /***** freelist benchmarks *****/\r
187 struct lfds611_freelist_benchmark\r
188 {\r
189   struct lfds611_freelist_state\r
190     *fs;\r
191 \r
192   lfds611_atom_t\r
193     operation_count;\r
194 };\r
195 \r
196 /***** queue benchmarks *****/\r
197 struct lfds611_queue_benchmark\r
198 {\r
199   struct lfds611_queue_state\r
200     *qs;\r
201 \r
202   lfds611_atom_t\r
203     operation_count;\r
204 };\r
205 \r
206 /***** ringbuffer benchmarks *****/\r
207 struct lfds611_ringbuffer_benchmark\r
208 {\r
209   struct lfds611_ringbuffer_state\r
210     *rs;\r
211 \r
212   lfds611_atom_t\r
213     operation_count;\r
214 };\r
215 \r
216 /***** stack benchmarks *****/\r
217 struct lfds611_stack_benchmark\r
218 {\r
219   struct lfds611_stack_state\r
220     *ss;\r
221 \r
222   lfds611_atom_t\r
223     operation_count;\r
224 };\r
225 \r
226 #pragma pack( pop )\r
227 \r