win-pvdrivers

annotate liblfds.6/test/src/structures.h @ 766:6300617040e0

Big changes - not ready for production use.
Removed all the custom DMA handling code as it was completely incompatible with the Windows verifier.
Added liblfds (using the lock free stack) from liblfds.org so that grant's can be obtained at DIRQL.
Fixed xennet and xenvbd to support the changes.
xenusb and xenscsi almost certainly will not yet work after the changes.
author James Harper <james.harper@bendigoit.com.au>
date Sun Jan 31 21:28:42 2010 +1100 (2010-01-31)
parents
children
rev   line source
james@766 1 /***** structs *****/
james@766 2 #pragma pack( push, ALIGN_DOUBLE_POINTER )
james@766 3
james@766 4 /***** abstraction tests *****/
james@766 5 struct abstraction_test_dcas_state
james@766 6 {
james@766 7 volatile atom_t
james@766 8 *shared_counter;
james@766 9
james@766 10 atom_t
james@766 11 local_counter;
james@766 12 };
james@766 13
james@766 14 /***** freelist tests *****/
james@766 15 struct freelist_test_popping_state
james@766 16 {
james@766 17 struct freelist_state
james@766 18 *fs,
james@766 19 *fs_thread_local;
james@766 20 };
james@766 21
james@766 22 struct freelist_test_pushing_state
james@766 23 {
james@766 24 atom_t
james@766 25 thread_number;
james@766 26
james@766 27 struct freelist_state
james@766 28 *source_fs,
james@766 29 *fs;
james@766 30 };
james@766 31
james@766 32 struct freelist_test_popping_and_pushing_state
james@766 33 {
james@766 34 struct freelist_state
james@766 35 *local_fs,
james@766 36 *fs;
james@766 37 };
james@766 38
james@766 39 struct freelist_test_counter_and_thread_number
james@766 40 {
james@766 41 atom_t
james@766 42 thread_number;
james@766 43
james@766 44 unsigned long long int
james@766 45 counter;
james@766 46 };
james@766 47
james@766 48 /***** queue tests *****/
james@766 49 struct queue_test_enqueuing_state
james@766 50 {
james@766 51 struct queue_state
james@766 52 *qs;
james@766 53
james@766 54 atom_t
james@766 55 counter;
james@766 56 };
james@766 57
james@766 58 struct queue_test_dequeuing_state
james@766 59 {
james@766 60 struct queue_state
james@766 61 *qs;
james@766 62
james@766 63 int
james@766 64 error_flag;
james@766 65 };
james@766 66
james@766 67 struct queue_test_enqueuing_and_dequeuing_state
james@766 68 {
james@766 69 struct queue_state
james@766 70 *qs;
james@766 71
james@766 72 atom_t
james@766 73 counter,
james@766 74 thread_number,
james@766 75 *per_thread_counters;
james@766 76
james@766 77 unsigned int
james@766 78 cpu_count;
james@766 79
james@766 80 int
james@766 81 error_flag;
james@766 82 };
james@766 83
james@766 84 struct queue_test_rapid_enqueuing_and_dequeuing_state
james@766 85 {
james@766 86 struct queue_state
james@766 87 *qs;
james@766 88
james@766 89 atom_t
james@766 90 counter;
james@766 91 };
james@766 92
james@766 93 /***** ringbuffer tests *****/
james@766 94 struct ringbuffer_test_reading_state
james@766 95 {
james@766 96 struct ringbuffer_state
james@766 97 *rs;
james@766 98
james@766 99 int
james@766 100 error_flag;
james@766 101
james@766 102 atom_t
james@766 103 read_count;
james@766 104 };
james@766 105
james@766 106 struct ringbuffer_test_writing_state
james@766 107 {
james@766 108 struct ringbuffer_state
james@766 109 *rs;
james@766 110
james@766 111 atom_t
james@766 112 write_count;
james@766 113 };
james@766 114
james@766 115 struct ringbuffer_test_reading_and_writing_state
james@766 116 {
james@766 117 struct ringbuffer_state
james@766 118 *rs;
james@766 119
james@766 120 atom_t
james@766 121 counter,
james@766 122 *per_thread_counters;
james@766 123
james@766 124 unsigned int
james@766 125 cpu_count;
james@766 126
james@766 127 int
james@766 128 error_flag;
james@766 129 };
james@766 130
james@766 131 /***** slist tests *****/
james@766 132 struct slist_thread_start_state
james@766 133 {
james@766 134 struct slist_state
james@766 135 *ss;
james@766 136
james@766 137 struct slist_element
james@766 138 *se;
james@766 139
james@766 140 time_t
james@766 141 duration;
james@766 142
james@766 143 unsigned long int
james@766 144 iteration_modulo;
james@766 145 };
james@766 146
james@766 147 /***** stack tests *****/
james@766 148
james@766 149 /***** freelist benchmarks *****/
james@766 150 struct freelist_benchmark
james@766 151 {
james@766 152 struct freelist_state
james@766 153 *fs;
james@766 154
james@766 155 atom_t
james@766 156 operation_count;
james@766 157 };
james@766 158
james@766 159 /***** queue benchmarks *****/
james@766 160 struct queue_benchmark
james@766 161 {
james@766 162 struct queue_state
james@766 163 *qs;
james@766 164
james@766 165 atom_t
james@766 166 operation_count;
james@766 167 };
james@766 168
james@766 169 /***** ringbuffer benchmarks *****/
james@766 170 struct ringbuffer_benchmark
james@766 171 {
james@766 172 struct ringbuffer_state
james@766 173 *rs;
james@766 174
james@766 175 atom_t
james@766 176 operation_count;
james@766 177 };
james@766 178
james@766 179 /***** stack benchmarks *****/
james@766 180 struct stack_benchmark
james@766 181 {
james@766 182 struct stack_state
james@766 183 *ss;
james@766 184
james@766 185 atom_t
james@766 186 operation_count;
james@766 187 };
james@766 188
james@766 189 #pragma pack( pop )
james@766 190