Browse Source

Worked out a sensible doxygen grouping

tags/v0.9.3
Michael Brown 19 years ago
parent
commit
1e0a5d8b30
2 changed files with 784 additions and 120 deletions
  1. 754
    93
      src/include/pxe_api.h
  2. 30
    27
      src/include/pxe_types.h

+ 754
- 93
src/include/pxe_api.h View File

@@ -1,10 +1,6 @@
1 1
 #ifndef PXE_API_H
2 2
 #define PXE_API_H
3 3
 
4
-/** @addtogroup pxe Preboot eXecution Environment (PXE) API
5
- * @{
6
- */
7
-
8 4
 /** @file
9 5
  *
10 6
  * Preboot eXecution Environment (PXE) API
@@ -13,169 +9,834 @@
13 9
 
14 10
 #include "pxe_types.h"
15 11
 
16
-/** @defgroup pxe_code PXE API function codes
12
+/** @addtogroup pxe Preboot eXecution Environment (PXE) API
13
+ *  @{
14
+ */
15
+
16
+/** @defgroup pxe_preboot_api PXE Preboot API
17
+ *
18
+ * General high-level functions: #PXENV_UNLOAD_STACK, #PXENV_START_UNDI etc.
19
+ *
17 20
  * @{
18 21
  */
19 22
 
20
-/** START UNDI (call function pxenv_start_undi())*/
21
-#define	PXENV_START_UNDI		0x0000
22
-/** UNDI STARTUP (call function pxenv_undi_startup()) */ 
23
-#define	PXENV_UNDI_STARTUP		0x0001
24
-/** UNDI CLEANUP (call function pxenv_undi_cleanup()) */
25
-#define	PXENV_UNDI_CLEANUP		0x0002
26
-/** UNDI INITIALIZE (call function pxenv_undi_initialize()) */
27
-#define	PXENV_UNDI_INITIALIZE		0x0003
28
-/** UNDI RESET ADAPTER (call function pxenv_undi_reset_adapter()) */
29
-#define	PXENV_UNDI_RESET_ADAPTER	0x0004
30
-/** UNDI SHUTDOWN (call function pxenv_undi_shutdown()) */
31
-#define	PXENV_UNDI_SHUTDOWN		0x0005
32
-/** UNDI OPEN (call function pxenv_undi_open()) */
33
-#define	PXENV_UNDI_OPEN			0x0006
34
-/** UNDI CLOSE (call function pxenv_undi_close()) */
35
-#define	PXENV_UNDI_CLOSE		0x0007
36
-/** UNDI TRANSMIT PACKET (call function pxenv_undi_transmit()) */
37
-#define	PXENV_UNDI_TRANSMIT		0x0008
38
-/** UNDI SET MULTICAST ADDRESS
39
- *  (call function pxenv_undi_set_mcast_address()) */
40
-#define	PXENV_UNDI_SET_MCAST_ADDRESS	0x0009
41
-/** UNDI SET STATION ADDRESS
42
- *  (call function pxenv_undi_set_station_address()) */
43
-#define	PXENV_UNDI_SET_STATION_ADDRESS	0x000A
44
-/** UNDI SET PACKET FILTER (call function pxenv_undi_set_packet_filter()) */
45
-#define	PXENV_UNDI_SET_PACKET_FILTER	0x000B
46
-/** UNDI GET INFORMATION (call function pxenv_undi_get_information()) */
47
-#define	PXENV_UNDI_GET_INFORMATION	0x000C
48
-/** UNDI GET STATISTICS (call function pxenv_undi_get_statistics()) */
49
-#define	PXENV_UNDI_GET_STATISTICS	0x000D
50
-/** UNDI CLEAR STATISTICS (call function pxenv_undi_get_statistics()) */
51
-#define	PXENV_UNDI_CLEAR_STATISTICS	0x000E
52
-/** UNDI INITIATE DIAGS (call function pxenv_undi_initiate_diags()) */
53
-#define	PXENV_UNDI_INITIATE_DIAGS	0x000F
54
-/** UNDI FORCE INTERRUPT (call function pxenv_undi_force_interrupt()) */
55
-#define	PXENV_UNDI_FORCE_INTERRUPT	0x0010
56
-/** UNDI GET MULTICAST ADDRESS
57
- *  (call function pxenv_undi_get_mcast_address()) */
58
-#define	PXENV_UNDI_GET_MCAST_ADDRESS	0x0011
59
-/** UNDI GET NIC TYPE (call function pxenv_undi_get_nic_type()) */
60
-#define	PXENV_UNDI_GET_NIC_TYPE		0x0012
61
-/** UNDI GET IFACE INFO (call function pxenv_undi_get_iface_info()) */
62
-#define	PXENV_UNDI_GET_IFACE_INFO	0x0013
63
-/** UNDI ISR (call function pxenv_undi_isr()) */
64
-#define	PXENV_UNDI_ISR			0x0014
65
-/** UNDI GET STATE (call function pxenv_undi_get_state()) */
66
-#define PXENV_UNDI_GET_STATE		0x0015
67
-/** STOP UNDI (call function pxenv_stop_undi()) */
68
-#define	PXENV_STOP_UNDI			0x0015
69
-/** TFTP OPEN (call function pxenv_tftp_open()) */
70
-#define	PXENV_TFTP_OPEN			0x0020
71
-/** TFTP CLOSE (call function pxenv_tftp_close()) */
72
-#define	PXENV_TFTP_CLOSE		0x0021
73
-/** TFTP READ (call function pxenv_tftp_read()) */
74
-#define	PXENV_TFTP_READ			0x0022
75
-/** TFTP/MTFTP READ FILE (call function pxenv_tftp_read_file()) */
76
-#define	PXENV_TFTP_READ_FILE		0x0023
77
-/** TFTP GET FILE SIZE (call function pxenv_tftp_get_fsize()) */
78
-#define	PXENV_TFTP_GET_FSIZE		0x0025
79
-/** UDP OPEN (call function pxenv_udp_open()) */
80
-#define	PXENV_UDP_OPEN			0x0030
81
-/** UDP CLOSE (call function pxenv_udp_close()) */
82
-#define	PXENV_UDP_CLOSE			0x0031
83
-/** UDP WRITE (call function pxenv_udp_write()) */
84
-#define	PXENV_UDP_READ			0x0032
85
-/** UDP READ (call function pxenv_udp_read()) */
86
-#define	PXENV_UDP_WRITE			0x0033
87
-/** UNLOAD BASE CODE STACK (call function pxenv_unload_stack()) */
23
+/** @defgroup pxenv_unload_stack PXENV_UNLOAD_STACK
24
+ *
25
+ *  UNLOAD BASE CODE STACK
26
+ *
27
+ *  @{
28
+ */
29
+
30
+/** PXE API function code for pxenv_unload_stack() */
88 31
 #define	PXENV_UNLOAD_STACK		0x0070
89
-/** GET CACHED INFO (call function pxenv_get_cached_info()) */
90
-#define	PXENV_GET_CACHED_INFO		0x0071
91
-/** RESTART TFTP (call function pxenv_restart_tftp()) */
92
-#define	PXENV_RESTART_TFTP		0x0073
93
-/** START BASE (call function pxenv_start_base()) */
94
-#define	PXENV_START_BASE		0x0075
95
-/** STOP BASE (call function pxenv_stop_base()) */
96
-#define	PXENV_STOP_BASE			0x0076
97
-/** @} */
98 32
 
99
-/** @defgroup pxe_preboot PXE Preboot API
100
- * @{
101
- */
33
+/** Parameter block for pxenv_unload_stack() */
34
+struct s_PXENV_UNLOAD_STACK {
35
+	PXENV_STATUS_t Status;			/**< PXE status code */
36
+	UINT8_t reserved[10];			/**< Must be zero */
37
+} PACKED;
38
+
39
+typedef struct s_PXENV_UNLOAD_STACK PXENV_UNLOAD_STACK_t;
40
+
102 41
 extern PXENV_EXIT_t pxenv_unload_stack ( struct s_PXENV_UNLOAD_STACK
103 42
 					 *unload_stack );
43
+
44
+/** @} */ /* pxenv_unload_stack */
45
+
46
+/** @defgroup pxenv_get_cached_info PXENV_GET_CACHED_INFO
47
+ *
48
+ *  GET CACHED INFO
49
+ *
50
+ *  @{
51
+ */
52
+
53
+/** PXE API function code for pxenv_get_cached_info() */
54
+#define	PXENV_GET_CACHED_INFO		0x0071
55
+
56
+/** The client's DHCPDISCOVER packet */
57
+#define PXENV_PACKET_TYPE_DHCP_DISCOVER	1
58
+
59
+/** The DHCP server's DHCPACK packet */
60
+#define PXENV_PACKET_TYPE_DHCP_ACK	2
61
+
62
+/** The Boot Server's Discover Reply packet
63
+ *
64
+ * This packet contains DHCP option 60 set to "PXEClient", a valid
65
+ * boot file name, and may or may not contain MTFTP options.
66
+ */
67
+#define PXENV_PACKET_TYPE_CACHED_REPLY	3
68
+
69
+/** Parameter block for pxenv_get_cached_info() */
70
+struct s_PXENV_GET_CACHED_INFO {
71
+	PXENV_STATUS_t Status;			/**< PXE status code */
72
+	/** Packet type.
73
+	 *
74
+	 * Valid values are #PXENV_PACKET_TYPE_DHCP_DISCOVER,
75
+	 * #PXENV_PACKET_TYPE_DHCP_ACK or #PXENV_PACKET_TYPE_CACHED_REPLY
76
+	 */
77
+	UINT16_t PacketType;
78
+	UINT16_t BufferSize;			/**< Buffer size */
79
+	SEGOFF16_t Buffer;			/**< Buffer address */
80
+	UINT16_t BufferLimit			/**< Maximum buffer size */
81
+} PACKED;
82
+
83
+typedef struct s_PXENV_GET_CACHED_INFO PXENV_GET_CACHED_INFO_t;
84
+
104 85
 extern PXENV_EXIT_t pxenv_get_cached_info ( struct s_PXENV_GET_CACHED_INFO
105 86
 					    *get_cached_info );
87
+
88
+/** @} */ /* pxenv_get_cached_info */
89
+
90
+/** @defgroup pxenv_restart_tftp PXENV_RESTART_TFTP
91
+ *
92
+ *  RESTART TFTP
93
+ *
94
+ *  @{
95
+ */
96
+
97
+/** PXE API function code for pxenv_restart_tftp() */
98
+#define	PXENV_RESTART_TFTP		0x0073
99
+
100
+/** Parameter block for pxenv_restart_tftp() */
101
+struct s_PXENV_RESTART_TFTP {
102
+} PACKED;
103
+
104
+typedef struct s_PXENV_RESTART_TFTP PXENV_RESTART_TFTP_t;
105
+
106 106
 extern PXENV_EXIT_t pxenv_restart_tftp ( struct s_PXENV_TFTP_READ_FILE
107 107
 					 *restart_tftp );
108
+
109
+/** @} */ /* pxenv_restart_tftp */
110
+
111
+/** @defgroup pxenv_start_undi PXENV_START_UNDI
112
+ *
113
+ *  START UNDI
114
+ *
115
+ *  @{
116
+ */
117
+
118
+/** PXE API function code for pxenv_start_undi() */
119
+#define	PXENV_START_UNDI		0x0000
120
+
121
+/** Parameter block for pxenv_start_undi() */
122
+struct s_PXENV_START_UNDI {
123
+} PACKED;
124
+
125
+typedef struct s_PXENV_START_UNDI PXENV_START_UNDI_t;
126
+
108 127
 extern PXENV_EXIT_t pxenv_start_undi ( struct s_PXENV_START_UNDI *start_undi );
128
+
129
+/** @} */ /* pxenv_start_undi */
130
+
131
+/** @defgroup pxenv_stop_undi PXENV_STOP_UNDI
132
+ *
133
+ *  STOP UNDI
134
+ *
135
+ *  @{
136
+ */
137
+
138
+/** PXE API function code for pxenv_stop_undi() */
139
+#define	PXENV_STOP_UNDI			0x0015
140
+
141
+/** Parameter block for pxenv_stop_undi() */
142
+struct s_PXENV_STOP_UNDI {
143
+} PACKED;
144
+
145
+typedef struct s_PXENV_STOP_UNDI PXENV_STOP_UNDI_t;
146
+
109 147
 extern PXENV_EXIT_t pxenv_stop_undi ( struct s_PXENV_STOP_UNDI *stop_undi );
148
+
149
+/** @} */ /* pxenv_stop_undi */
150
+
151
+/** @defgroup pxenv_start_base PXENV_START_BASE
152
+ *
153
+ *  START BASE
154
+ *
155
+ *  @{
156
+ */
157
+
158
+/** PXE API function code for pxenv_start_base() */
159
+#define	PXENV_START_BASE		0x0075
160
+
161
+/** Parameter block for pxenv_start_base() */
162
+struct s_PXENV_START_BASE {
163
+} PACKED;
164
+
165
+typedef struct s_PXENV_START_BASE PXENV_START_BASE_t;
166
+
110 167
 extern PXENV_EXIT_t pxenv_start_base ( struct s_PXENV_START_BASE *start_base );
168
+
169
+/** @} */ /* pxenv_start_base */
170
+
171
+/** @defgroup pxenv_stop_base PXENV_STOP_BASE
172
+ *
173
+ *  STOP BASE
174
+ *
175
+ *  @{
176
+ */
177
+
178
+/** PXE API function code for pxenv_stop_base() */
179
+#define	PXENV_STOP_BASE			0x0076
180
+
181
+/** Parameter block for pxenv_stop_base() */
182
+struct s_PXENV_STOP_BASE {
183
+} PACKED;
184
+
185
+typedef struct s_PXENV_STOP_BASE PXENV_STOP_BASE_t;
186
+
111 187
 extern PXENV_EXIT_t pxenv_stop_base ( struct s_PXENV_STOP_BASE *stop_base );
112
-/** @} */
113 188
 
114
-/** @defgroup pxe_tftp PXE TFTP API
189
+/** @} */ /* pxenv_stop_base */
190
+
191
+/** @} */ /* pxe_preboot_api */
192
+
193
+/** @defgroup pxe_tftp_api PXE TFTP API
194
+ *
195
+ * Download files via TFTP or MTFTP
196
+ *
115 197
  * @{
116 198
  */
199
+
200
+/** @defgroup pxenv_tftp_open PXENV_TFTP_OPEN
201
+ *
202
+ *  TFTP OPEN
203
+ *
204
+ *  @{
205
+ */
206
+
207
+/** PXE API function code for pxenv_tftp_open() */
208
+#define	PXENV_TFTP_OPEN			0x0020
209
+
210
+/** Parameter block for pxenv_tftp_open() */
211
+struct s_PXENV_TFTP_OPEN {
212
+} PACKED;
213
+
214
+typedef struct s_PXENV_TFTP_OPEN PXENV_TFTP_OPEN_t;
215
+
117 216
 extern PXENV_EXIT_t pxenv_tftp_open ( struct s_PXENV_TFTP_OPEN *tftp_open );
217
+
218
+/** @} */ /* pxenv_tftp_open */
219
+
220
+/** @defgroup pxenv_tftp_close PXENV_TFTP_CLOSE
221
+ *
222
+ *  TFTP CLOSE
223
+ *
224
+ *  @{
225
+ */
226
+
227
+/** PXE API function code for pxenv_tftp_close() */
228
+#define	PXENV_TFTP_CLOSE		0x0021
229
+
230
+/** Parameter block for pxenv_tftp_close() */
231
+struct s_PXENV_TFTP_CLOSE {
232
+} PACKED;
233
+
234
+typedef struct s_PXENV_TFTP_CLOSE PXENV_TFTP_CLOSE_t;
235
+
118 236
 extern PXENV_EXIT_t pxenv_tftp_close ( struct s_PXENV_TFTP_CLOSE *tftp_close );
237
+
238
+/** @} */ /* pxenv_tftp_close */
239
+
240
+/** @defgroup pxenv_tftp_read PXENV_TFTP_READ
241
+ *
242
+ *  TFTP READ
243
+ *
244
+ *  @{
245
+ */
246
+
247
+/** PXE API function code for pxenv_tftp_read() */
248
+#define	PXENV_TFTP_READ			0x0022
249
+
250
+/** Parameter block for pxenv_tftp_read() */
251
+struct s_PXENV_TFTP_READ {
252
+} PACKED;
253
+
254
+typedef struct s_PXENV_TFTP_READ PXENV_TFTP_READ_t;
255
+
119 256
 extern PXENV_EXIT_t pxenv_tftp_read ( struct s_PXENV_TFTP_READ *tftp_read );
257
+
258
+/** @} */ /* pxenv_tftp_read */
259
+
260
+/** @defgroup pxenv_tftp_read_file PXENV_TFTP_READ_FILE
261
+ *
262
+ *  TFTP/MTFTP READ FILE
263
+ *
264
+ *  @{
265
+ */
266
+
267
+/** PXE API function code for pxenv_tftp_read_file() */
268
+#define	PXENV_TFTP_READ_FILE		0x0023
269
+
270
+/** Parameter block for pxenv_tftp_read_file() */
271
+struct s_PXENV_TFTP_READ_FILE {
272
+} PACKED;
273
+
274
+typedef struct s_PXENV_TFTP_READ_FILE PXENV_TFTP_READ_FILE_t;
275
+
120 276
 extern PXENV_EXIT_t pxenv_tftp_read_file ( struct s_PXENV_TFTP_READ_FILE
121 277
 					   *tftp_read_file );
278
+
279
+/** @} */ /* pxenv_tftp_read_file */
280
+
281
+/** @defgroup pxenv_tftp_get_fsize PXENV_TFTP_GET_FSIZE
282
+ *
283
+ *  TFTP GET FILE SIZE
284
+ *
285
+ *  @{
286
+ */
287
+
288
+/** PXE API function code for pxenv_tftp_get_fsize() */
289
+#define	PXENV_TFTP_GET_FSIZE		0x0025
290
+
291
+/** Parameter block for pxenv_tftp_get_fsize() */
292
+struct s_PXENV_TFTP_GET_FSIZE {
293
+} PACKED;
294
+
295
+typedef struct s_PXENV_TFTP_GET_FSIZE PXENV_TFTP_GET_FSIZE_t;
296
+
122 297
 extern PXENV_EXIT_t pxenv_tftp_get_fsize ( struct s_PXENV_TFTP_GET_FSIZE
123 298
 					   *get_fsize );
124
-/** @} */
125 299
 
126
-/** @defgroup pxe_udp PXE UDP API
300
+/** @} */ /* pxenv_tftp_get_fsize */
301
+
302
+/** @} */ /* pxe_tftp_api */
303
+
304
+/** @defgroup pxe_udp_api PXE UDP API
305
+ *
306
+ * Transmit and receive UDP packets
307
+ *
127 308
  * @{
128 309
  */
310
+
311
+/** @defgroup pxenv_udp_open PXENV_UDP_OPEN
312
+ *
313
+ *  UDP OPEN
314
+ *
315
+ *  @{
316
+ */
317
+
318
+/** PXE API function code for pxenv_udp_open() */
319
+#define	PXENV_UDP_OPEN			0x0030
320
+
321
+/** Parameter block for pxenv_udp_open() */
322
+struct s_PXENV_UDP_OPEN {
323
+} PACKED;
324
+
325
+typedef struct s_PXENV_UDP_OPEN PXENV_UDP_OPEN_t;
326
+
129 327
 extern PXENV_EXIT_t pxenv_udp_open ( struct s_PXENV_UDP_OPEN *udp_open );
328
+
329
+/** @} */ /* pxenv_udp_open */
330
+
331
+/** @defgroup pxenv_udp_close PXENV_UDP_CLOSE
332
+ *
333
+ *  UDP CLOSE
334
+ *
335
+ *  @{
336
+ */
337
+
338
+/** PXE API function code for pxenv_udp_close() */
339
+#define	PXENV_UDP_CLOSE			0x0031
340
+
341
+/** Parameter block for pxenv_udp_close() */
342
+struct s_PXENV_UDP_CLOSE {
343
+} PACKED;
344
+
345
+typedef struct s_PXENV_UDP_CLOSE PXENV_UDP_CLOSE_t;
346
+
130 347
 extern PXENV_EXIT_t pxenv_udp_close ( struct s_PXENV_UDP_CLOSE *udp_close );
348
+
349
+/** @} */ /* pxenv_udp_close */
350
+
351
+/** @defgroup pxenv_udp_write PXENV_UDP_WRITE
352
+ *
353
+ *  UDP WRITE
354
+ *
355
+ *  @{
356
+ */
357
+
358
+/** PXE API function code for pxenv_udp_write() */
359
+#define	PXENV_UDP_WRITE			0x0033
360
+
361
+/** Parameter block for pxenv_udp_write() */
362
+struct s_PXENV_UDP_WRITE {
363
+} PACKED;
364
+
365
+typedef struct s_PXENV_UDP_WRITE PXENV_UDP_WRITE_t;
366
+
131 367
 extern PXENV_EXIT_t pxenv_udp_write ( struct s_PXENV_UDP_WRITE *udp_write );
368
+
369
+/** @} */ /* pxenv_udp_write */
370
+
371
+/** @defgroup pxenv_udp_read PXENV_UDP_READ
372
+ *
373
+ *  UDP READ
374
+ *
375
+ *  @{
376
+ */
377
+
378
+/** PXE API function code for pxenv_udp_read() */
379
+#define	PXENV_UDP_READ			0x0032
380
+
381
+/** Parameter block for pxenv_udp_read() */
382
+struct s_PXENV_UDP_READ {
383
+} PACKED;
384
+
385
+typedef struct s_PXENV_UDP_READ PXENV_UDP_READ_t;
386
+
132 387
 extern PXENV_EXIT_t pxenv_udp_read ( struct s_PXENV_UDP_READ *udp_read );
133
-/** @} */
134 388
 
135
-/** @defgroup pxe_undi PXE UNDI API
389
+/** @} */ /* pxenv_udp_read */
390
+
391
+/** @} */ /* pxe_udp_api */
392
+
393
+/** @defgroup pxe_undi_api PXE UNDI API
394
+ *
395
+ * Direct control of the network interface card
396
+ *
136 397
  * @{
137 398
  */
399
+
400
+/** @defgroup pxenv_undi_startup PXENV_UNDI_STARTUP
401
+ *
402
+ *  UNDI STARTUP
403
+ *
404
+ *  @{
405
+ */
406
+
407
+/** PXE API function code for pxenv_undi_startup() */
408
+#define	PXENV_UNDI_STARTUP		0x0001
409
+
410
+/** Parameter block for pxenv_undi_startup() */
411
+struct s_PXENV_UNDI_STARTUP {
412
+} PACKED;
413
+
414
+typedef struct s_PXENV_UNDI_STARTUP PXENV_UNDI_STARTUP_t;
415
+
138 416
 extern PXENV_EXIT_t pxenv_undi_startup ( struct s_PXENV_UNDI_STARTUP
139 417
 					 *undi_startup );
418
+
419
+/** @} */ /* pxenv_undi_startup */
420
+
421
+/** @defgroup pxenv_undi_cleanup PXENV_UNDI_CLEANUP
422
+ *
423
+ *  UNDI CLEANUP
424
+ *
425
+ *  @{
426
+ */
427
+
428
+/** PXE API function code for pxenv_undi_cleanup() */
429
+#define	PXENV_UNDI_CLEANUP		0x0002
430
+
431
+/** Parameter block for pxenv_undi_cleanup() */
432
+struct s_PXENV_UNDI_CLEANUP {
433
+} PACKED;
434
+
435
+typedef struct s_PXENV_UNDI_CLEANUP PXENV_UNDI_CLEANUP_t;
436
+
140 437
 extern PXENV_EXIT_t pxenv_undi_cleanup ( struct s_PXENV_UNDI_CLEANUP
141 438
 					 *undi_cleanup );
439
+
440
+/** @} */ /* pxenv_undi_cleanup */
441
+
442
+/** @defgroup pxenv_undi_initialize PXENV_UNDI_INITIALIZE
443
+ *
444
+ *  UNDI INITIALIZE
445
+ *
446
+ *  @{
447
+ */
448
+
449
+/** PXE API function code for pxenv_undi_initialize() */
450
+#define	PXENV_UNDI_INITIALIZE		0x0003
451
+
452
+/** Parameter block for pxenv_undi_initialize() */
453
+struct s_PXENV_UNDI_INITIALIZE {
454
+} PACKED;
455
+
456
+typedef struct s_PXENV_UNDI_INITIALIZE PXENV_UNDI_INITIALIZE_t;
457
+
142 458
 extern PXENV_EXIT_t pxenv_undi_initialize ( struct s_PXENV_UNDI_INITIALIZE
143 459
 					    *undi_initialize );
460
+
461
+/** @} */ /* pxenv_undi_initialize */
462
+
463
+/** @defgroup pxenv_undi_reset_adapter PXENV_UNDI_RESET_ADAPTER
464
+ *
465
+ *  UNDI RESET ADAPTER
466
+ *
467
+ *  @{
468
+ */
469
+
470
+/** PXE API function code for pxenv_undi_reset_adapter() */
471
+#define	PXENV_UNDI_RESET_ADAPTER	0x0004
472
+
473
+/** Parameter block for pxenv_undi_reset_adapter() */
474
+struct s_PXENV_UNDI_RESET_ADAPTER {
475
+} PACKED;
476
+
477
+typedef struct s_PXENV_UNDI_RESET_ADAPTER PXENV_UNDI_RESET_ADAPTER_t;
478
+
144 479
 extern PXENV_EXIT_t pxenv_undi_reset_adapter ( struct s_PXENV_UNDI_RESET
145 480
 					       *undi_reset_adapter );
481
+
482
+/** @} */ /* pxenv_undi_reset_adapter */
483
+
484
+/** @defgroup pxenv_undi_shutdown PXENV_UNDI_SHUTDOWN
485
+ *
486
+ *  UNDI SHUTDOWN
487
+ *
488
+ *  @{
489
+ */
490
+
491
+/** PXE API function code for pxenv_undi_shutdown() */
492
+#define	PXENV_UNDI_SHUTDOWN		0x0005
493
+
494
+/** Parameter block for pxenv_undi_shutdown() */
495
+struct s_PXENV_UNDI_SHUTDOWN {
496
+} PACKED;
497
+
498
+typedef struct s_PXENV_UNDI_SHUTDOWN PXENV_UNDI_SHUTDOWN_t;
499
+
146 500
 extern PXENV_EXIT_t pxenv_undi_shutdown ( struct s_PXENV_UNDI_SHUTDOWN
147 501
 					  *undi_shutdown );
502
+
503
+/** @} */ /* pxenv_undi_shutdown */
504
+
505
+/** @defgroup pxenv_undi_open PXENV_UNDI_OPEN
506
+ *
507
+ *  UNDI OPEN
508
+ *
509
+ *  @{
510
+ */
511
+
512
+/** PXE API function code for pxenv_undi_open() */
513
+#define	PXENV_UNDI_OPEN			0x0006
514
+
515
+/** Parameter block for pxenv_undi_open() */
516
+struct s_PXENV_UNDI_OPEN {
517
+} PACKED;
518
+
519
+typedef struct s_PXENV_UNDI_OPEN PXENV_UNDI_OPEN_t;
520
+
148 521
 extern PXENV_EXIT_t pxenv_undi_open ( struct s_PXENV_UNDI_OPEN *undi_open );
522
+
523
+/** @} */ /* pxenv_undi_open */
524
+
525
+/** @defgroup pxenv_undi_close PXENV_UNDI_CLOSE
526
+ *
527
+ *  UNDI CLOSE
528
+ *
529
+ *  @{
530
+ */
531
+
532
+/** PXE API function code for pxenv_undi_close() */
533
+#define	PXENV_UNDI_CLOSE		0x0007
534
+
535
+/** Parameter block for pxenv_undi_close() */
536
+struct s_PXENV_UNDI_CLOSE {
537
+} PACKED;
538
+
539
+typedef struct s_PXENV_UNDI_CLOSE PXENV_UNDI_CLOSE_t;
540
+
149 541
 extern PXENV_EXIT_t pxenv_undi_close ( struct s_PXENV_UNDI_CLOSE *undi_close );
542
+
543
+/** @} */ /* pxenv_undi_close */
544
+
545
+/** @defgroup pxenv_undi_transmit PXENV_UNDI_TRANSMIT
546
+ *
547
+ *  UNDI TRANSMIT PACKET
548
+ *
549
+ *  @{
550
+ */
551
+
552
+/** PXE API function code for pxenv_undi_transmit() */
553
+#define	PXENV_UNDI_TRANSMIT		0x0008
554
+
555
+/** Parameter block for pxenv_undi_transmit() */
556
+struct s_PXENV_UNDI_TRANSMIT {
557
+} PACKED;
558
+
559
+typedef struct s_PXENV_UNDI_TRANSMIT PXENV_UNDI_TRANSMIT_t;
560
+
150 561
 extern PXENV_EXIT_t pxenv_undi_transmit ( struct s_PXENV_UNDI_TRANSMIT
151 562
 					  *undi_transmit );
563
+
564
+/** @} */ /* pxenv_undi_transmit */
565
+
566
+/** @defgroup pxenv_undi_set_mcast_address PXENV_UNDI_SET_MCAST_ADDRESS
567
+ *
568
+ *  UNDI SET MULTICAST ADDRESS
569
+ *
570
+ *  @{
571
+ */
572
+
573
+/** PXE API function code for pxenv_undi_set_mcast_address() */
574
+#define	PXENV_UNDI_SET_MCAST_ADDRESS	0x0009
575
+
576
+/** Parameter block for pxenv_undi_set_mcast_address() */
577
+struct s_PXENV_UNDI_SET_MCAST_ADDRESS {
578
+} PACKED;
579
+
580
+typedef struct s_PXENV_UNDI_SET_MCAST_ADDRESS PXENV_UNDI_SET_MCAST_ADDRESS_t;
581
+
152 582
 extern PXENV_EXIT_t pxenv_undi_set_mcast_address (
153 583
 	       struct s_PXENV_UNDI_SET_MCAST_ADDRESS *undi_set_mcast_address );
584
+
585
+/** @} */ /* pxenv_undi_set_mcast_address */
586
+
587
+/** @defgroup pxenv_undi_set_station_address PXENV_UNDI_SET_STATION_ADDRESS
588
+ *
589
+ *  UNDI SET STATION ADDRESS
590
+ *
591
+ *  @{
592
+ */
593
+
594
+/** PXE API function code for pxenv_undi_set_station_address() */
595
+#define	PXENV_UNDI_SET_STATION_ADDRESS	0x000a
596
+
597
+/** Parameter block for pxenv_undi_set_station_address() */
598
+struct s_PXENV_UNDI_SET_STATION_ADDRESS {
599
+} PACKED;
600
+
601
+typedef struct s_PXENV_UNDI_SET_STATION_ADDRESS PXENV_UNDI_SET_STATION_ADDRESS_t;
602
+
154 603
 extern PXENV_EXIT_t pxenv_undi_set_station_address (
155 604
 	   struct s_PXENV_UNDI_SET_STATION_ADDRESS *undi_set_station_address );
605
+
606
+/** @} */ /* pxenv_undi_set_station_address */
607
+
608
+/** @defgroup pxenv_undi_set_packet_filter PXENV_UNDI_SET_PACKET_FILTER
609
+ *
610
+ *  UNDI SET PACKET FILTER
611
+ *
612
+ *  @{
613
+ */
614
+
615
+/** PXE API function code for pxenv_undi_set_packet_filter() */
616
+#define	PXENV_UNDI_SET_PACKET_FILTER	0x000b
617
+
618
+/** Parameter block for pxenv_undi_set_packet_filter() */
619
+struct s_PXENV_UNDI_SET_PACKET_FILTER {
620
+} PACKED;
621
+
622
+typedef struct s_PXENV_UNDI_SET_PACKET_FILTER PXENV_UNDI_SET_PACKET_FILTER_t;
623
+
156 624
 extern PXENV_EXIT_t pxenv_undi_set_packet_filter (
157 625
 	       struct s_PXENV_UNDI_SET_PACKET_FILTER *undi_set_packet_filter );
626
+
627
+/** @} */ /* pxenv_undi_set_packet_filter */
628
+
629
+/** @defgroup pxenv_undi_get_information PXENV_UNDI_GET_INFORMATION
630
+ *
631
+ *  UNDI GET INFORMATION
632
+ *
633
+ *  @{
634
+ */
635
+
636
+/** PXE API function code for pxenv_undi_get_information() */
637
+#define	PXENV_UNDI_GET_INFORMATION	0x000c
638
+
639
+/** Parameter block for pxenv_undi_get_information() */
640
+struct s_PXENV_UNDI_GET_INFORMATION {
641
+} PACKED;
642
+
643
+typedef struct s_PXENV_UNDI_GET_INFORMATION PXENV_UNDI_GET_INFORMATION_t;
644
+
158 645
 extern PXENV_EXIT_t pxenv_undi_get_information (
159 646
 		   struct s_PXENV_UNDI_GET_INFORMATION *undi_get_information );
647
+
648
+/** @} */ /* pxenv_undi_get_information */
649
+
650
+/** @defgroup pxenv_undi_get_statistics PXENV_UNDI_GET_STATISTICS
651
+ *
652
+ *  UNDI GET STATISTICS
653
+ *
654
+ *  @{
655
+ */
656
+
657
+/** PXE API function code for pxenv_undi_get_statistics() */
658
+#define	PXENV_UNDI_GET_STATISTICS	0x000d
659
+
660
+/** Parameter block for pxenv_undi_get_statistics() */
661
+struct s_PXENV_UNDI_GET_STATISTICS {
662
+} PACKED;
663
+
664
+typedef struct s_PXENV_UNDI_GET_STATISTICS PXENV_UNDI_GET_STATISTICS_t;
665
+
160 666
 extern PXENV_EXIT_t pxenv_undi_get_statistics (
161 667
 		     struct s_PXENV_UNDI_GET_STATISTICS *undi_get_statistics );
668
+
669
+/** @} */ /* pxenv_undi_get_statistics */
670
+
671
+/** @defgroup pxenv_undi_clear_statistics PXENV_UNDI_CLEAR_STATISTICS
672
+ *
673
+ *  UNDI CLEAR STATISTICS
674
+ *
675
+ *  @{
676
+ */
677
+
678
+/** PXE API function code for pxenv_undi_clear_statistics() */
679
+#define	PXENV_UNDI_CLEAR_STATISTICS	0x000e
680
+
681
+/** Parameter block for pxenv_undi_clear_statistics() */
682
+struct s_PXENV_UNDI_CLEAR_STATISTICS {
683
+} PACKED;
684
+
685
+typedef struct s_PXENV_UNDI_CLEAR_STATISTICS PXENV_UNDI_CLEAR_STATISTICS_t;
686
+
162 687
 extern PXENV_EXIT_t pxenv_undi_clear_statistics (
163 688
 		 struct s_PXENV_UNDI_CLEAR_STATISTICS *undi_clear_statistics );
689
+
690
+/** @} */ /* pxenv_undi_clear_statistics */
691
+
692
+/** @defgroup pxenv_undi_initiate_diags PXENV_UNDI_INITIATE_DIAGS
693
+ *
694
+ *  UNDI INITIATE DIAGS
695
+ *
696
+ *  @{
697
+ */
698
+
699
+/** PXE API function code for pxenv_undi_initiate_diags() */
700
+#define	PXENV_UNDI_INITIATE_DIAGS	0x000f
701
+
702
+/** Parameter block for pxenv_undi_initiate_diags() */
703
+struct s_PXENV_UNDI_INITIATE_DIAGS {
704
+} PACKED;
705
+
706
+typedef struct s_PXENV_UNDI_INITIATE_DIAGS PXENV_UNDI_INITIATE_DIAGS_t;
707
+
164 708
 extern PXENV_EXIT_t pxenv_undi_initiate_diags (
165 709
 		     struct s_PXENV_UNDI_INITIATE_DIAGS *undi_initiate_diags );
710
+
711
+/** @} */ /* pxenv_undi_initiate_diags */
712
+
713
+/** @defgroup pxenv_undi_force_interrupt PXENV_UNDI_FORCE_INTERRUPT
714
+ *
715
+ *  UNDI FORCE INTERRUPT
716
+ *
717
+ *  @{
718
+ */
719
+
720
+/** PXE API function code for pxenv_undi_force_interrupt() */
721
+#define	PXENV_UNDI_FORCE_INTERRUPT	0x0010
722
+
723
+/** Parameter block for pxenv_undi_force_interrupt() */
724
+struct s_PXENV_UNDI_FORCE_INTERRUPT {
725
+} PACKED;
726
+
727
+typedef struct s_PXENV_UNDI_FORCE_INTERRUPT PXENV_UNDI_FORCE_INTERRUPT_t;
728
+
166 729
 extern PXENV_EXIT_t pxenv_undi_force_interrupt (
167 730
 		   struct s_PXENV_UNDI_FORCE_INTERRUPT *undi_force_interrupt );
731
+
732
+/** @} */ /* pxenv_undi_force_interrupt */
733
+
734
+/** @defgroup pxenv_undi_get_mcast_address PXENV_UNDI_GET_MCAST_ADDRESS
735
+ *
736
+ *  UNDI GET MULTICAST ADDRESS
737
+ *
738
+ *  @{
739
+ */
740
+
741
+/** PXE API function code for pxenv_undi_get_mcast_address() */
742
+#define	PXENV_UNDI_GET_MCAST_ADDRESS	0x0011
743
+
744
+/** Parameter block for pxenv_undi_get_mcast_address() */
745
+struct s_PXENV_UNDI_GET_MCAST_ADDRESS {
746
+} PACKED;
747
+
748
+typedef struct s_PXENV_UNDI_GET_MCAST_ADDRESS PXENV_UNDI_GET_MCAST_ADDRESS_t;
749
+
168 750
 extern PXENV_EXIT_t pxenv_undi_get_mcast_address (
169 751
 	       struct s_PXENV_UNDI_GET_MCAST_ADDRESS *undi_get_mcast_address );
752
+
753
+/** @} */ /* pxenv_undi_get_mcast_address */
754
+
755
+/** @defgroup pxenv_undi_get_nic_type PXENV_UNDI_GET_NIC_TYPE
756
+ *
757
+ *  UNDI GET NIC TYPE
758
+ *
759
+ *  @{
760
+ */
761
+
762
+/** PXE API function code for pxenv_undi_get_nic_type() */
763
+#define	PXENV_UNDI_GET_NIC_TYPE		0x0012
764
+
765
+/** Parameter block for pxenv_undi_get_nic_type() */
766
+struct s_PXENV_UNDI_GET_NIC_TYPE {
767
+} PACKED;
768
+
769
+typedef struct s_PXENV_UNDI_GET_NIC_TYPE PXENV_UNDI_GET_NIC_TYPE_t;
770
+
170 771
 extern PXENV_EXIT_t pxenv_undi_get_nic_type ( 
171 772
 			 struct s_PXENV_UNDI_GET_NIC_TYPE *undi_get_nic_type );
773
+
774
+/** @} */ /* pxenv_undi_get_nic_type */
775
+
776
+/** @defgroup pxenv_undi_get_iface_info PXENV_UNDI_GET_IFACE_INFO
777
+ *
778
+ *  UNDI GET IFACE INFO
779
+ *
780
+ *  @{
781
+ */
782
+
783
+/** PXE API function code for pxenv_undi_get_iface_info() */
784
+#define	PXENV_UNDI_GET_IFACE_INFO	0x0013
785
+
786
+/** Parameter block for pxenv_undi_get_iface_info() */
787
+struct s_PXENV_UNDI_GET_IFACE_INFO {
788
+} PACKED;
789
+
790
+typedef struct s_PXENV_UNDI_GET_IFACE_INFO PXENV_UNDI_GET_IFACE_INFO_t;
791
+
172 792
 extern PXENV_EXIT_t pxenv_undi_get_iface_info (
173 793
 		     struct s_PXENV_UNDI_GET_IFACE_INFO *undi_get_iface_info );
794
+
795
+/** @} */ /* pxenv_undi_get_iface_info */
796
+
797
+/** @defgroup pxenv_undi_get_state PXENV_UNDI_GET_STATE
798
+ *
799
+ *  UNDI GET STATE
800
+ *
801
+ *  @{
802
+ */
803
+
804
+/** PXE API function code for pxenv_undi_get_state() */
805
+#define PXENV_UNDI_GET_STATE		0x0015
806
+
807
+/** Parameter block for pxenv_undi_get_state() */
808
+struct s_PXENV_UNDI_GET_STATE {
809
+} PACKED;
810
+
811
+typedef struct s_PXENV_UNDI_GET_STATE PXENV_UNDI_GET_STATE_t;
812
+
174 813
 extern PXENV_EXIT_t pxenv_undi_get_state ( struct s_PXENV_UNDI_GET_STATE
175 814
 					   *undi_get_state );
815
+
816
+/** @} */ /* pxenv_undi_get_state */
817
+
818
+/** @defgroup pxenv_undi_isr PXENV_UNDI_ISR
819
+ *
820
+ *  UNDI ISR
821
+ *
822
+ *  @{
823
+ */
824
+
825
+/** PXE API function code for pxenv_undi_isr() */
826
+#define	PXENV_UNDI_ISR			0x0014
827
+
828
+/** Parameter block for pxenv_undi_isr() */
829
+struct s_PXENV_UNDI_ISR {
830
+} PACKED;
831
+
832
+typedef struct s_PXENV_UNDI_ISR PXENV_UNDI_ISR_t;
833
+
176 834
 extern PXENV_EXIT_t pxenv_undi_isr ( struct s_PXENV_UNDI_ISR *undi_isr );
177
-/** @} */
178 835
 
179
-/** @} */ /* addtogroup */
836
+/** @} */ /* pxenv_undi_isr */
837
+
838
+/** @} */ /* pxe_undi_api */
839
+
840
+/** @} */ /* pxe */
180 841
 
181 842
 #endif /* PXE_API_H */

+ 30
- 27
src/include/pxe_types.h View File

@@ -1,10 +1,6 @@
1 1
 #ifndef PXE_TYPES_H
2 2
 #define PXE_TYPES_H
3 3
 
4
-/** @addtogroup pxe Preboot eXecution Environment (PXE) API
5
- * @{
6
- */
7
-
8 4
 /** @file
9 5
  *
10 6
  * PXE data types
@@ -15,7 +11,13 @@
15 11
 #include "pxe_addr.h" /* Architecture-specific PXE definitions */
16 12
 #include "errno.h" /* PXE status codes */
17 13
 
14
+/** @addtogroup pxe Preboot eXecution Environment (PXE) API
15
+ *  @{
16
+ */
17
+
18 18
 /** @defgroup pxe_types PXE data types
19
+ *
20
+ * Basic PXE data types such as #UINT16, #ADDR32, #SEGSEL etc.
19 21
  *
20 22
  * These definitions are based on Table 1-1 ("Data Type Definitions")
21 23
  * in the Intel PXE specification version 2.1.  They have been
@@ -25,47 +27,49 @@
25 27
  */
26 28
 
27 29
 /** An 8-bit unsigned integer */
28
-typedef uint8_t UINT8;
30
+typedef uint8_t UINT8_t;
29 31
 
30 32
 /** A 16-bit unsigned integer */
31
-typedef uint16_t UINT16;
33
+typedef uint16_t UINT16_t;
32 34
 
33 35
 /** A 32-bit unsigned integer */
34
-typedef uint32_t UINT32;
36
+typedef uint32_t UINT32_t;
35 37
 
36 38
 /** A PXE exit code.
37 39
  *
38
- * Permitted values are PXENV_EXIT_SUCCESS and PXENV_EXIT_FAILURE.
40
+ * Permitted values are #PXENV_EXIT_SUCCESS and #PXENV_EXIT_FAILURE.
39 41
  *
40 42
  */
41
-typedef uint16_t PXENV_EXIT;
43
+typedef uint16_t PXENV_EXIT_t;
44
+#define PXENV_EXIT_SUCCESS	0x0000	/**< No error occurred */
45
+#define PXENV_EXIT_FAILURE	0x0001	/**< An error occurred */
42 46
 
43 47
 /** A PXE status code.
44 48
  *
45 49
  * Status codes are defined in errno.h.
46 50
  *
47 51
  */
48
-typedef uint16_t PXENV_STATUS;
52
+typedef uint16_t PXENV_STATUS_t;
49 53
 
50 54
 /** An IP address.
51 55
  *
52 56
  * This is an IPv4 address in host byte order.
53 57
  *
54 58
  */
55
-typedef uint32_t IP4;
59
+typedef uint32_t IP4_t;
56 60
 
57 61
 /** A UDP port.
58 62
  *
59
- * Note that this is in network (big-endian) byte order.
63
+ * @note This data type is in network (big-endian) byte order.
60 64
  *
61 65
  */
62
-typedef uint16_t UDP_PORT;
66
+typedef uint16_t UDP_PORT_t;
63 67
 
64 68
 /** Maximum length of a MAC address */
65 69
 #define MAC_ADDR_LEN 16
66 70
 
67 71
 /** A MAC address */
68
-typedef uint8_t MAC_ADDR[MAC_ADDR_LEN];
72
+typedef uint8_t MAC_ADDR_t[MAC_ADDR_LEN];
69 73
 
70 74
 /** A physical address.
71 75
  *
@@ -73,7 +77,7 @@ typedef uint8_t MAC_ADDR[MAC_ADDR_LEN];
73 77
  * limited to the low 4GB.
74 78
  *
75 79
  */
76
-typedef physaddr_t ADDR32;
80
+typedef physaddr_t ADDR32_t;
77 81
 
78 82
 #ifndef HAVE_ARCH_SEGSEL
79 83
 /** A segment selector.
@@ -83,30 +87,29 @@ typedef physaddr_t ADDR32;
83 87
  * segment register.
84 88
  *
85 89
  */
86
-typedef uint16_t SEGSEL;
90
+typedef uint16_t SEGSEL_t;
87 91
 #endif
88 92
 
89 93
 #ifndef HAVE_ARCH_OFF16
90 94
 /** An offset within a segment identified by #SEGSEL */
91
-typedef uint16_t OFF16;
95
+typedef uint16_t OFF16_t;
92 96
 #endif
93 97
 
94 98
 /** A segment:offset address */
95 99
 typedef struct s_SEGOFF16 {
96
-	OFF16	offset;			/**< Offset within the segment */
97
-	SEGSEL	segment;		/**< Segment selector */
98
-} SEGOFF16 __attribute__ (( packed ));
100
+	OFF16_t		offset;		/**< Offset within the segment */
101
+	SEGSEL_t	segment;	/**< Segment selector */
102
+} PACKED SEGOFF16_t;
99 103
 
100 104
 /** A segment descriptor */
101 105
 typedef struct s_SEGDESC {
102
-	SEGSEL	segment_address;	/**< Segment selector */
103
-	ADDR32	physical_address;	/**< Base address of the segment */
104
-	OFF16	seg_size;		/**< Size of the segment */
105
-} SEGDESC __attribute__ (( packed ));
106
-
107
-/** @} */ /* defgroup */
106
+	SEGSEL_t	segment_address;	/**< Segment selector */
107
+	ADDR32_t	physical_address;	/**< Segment base address */
108
+	OFF16_t		seg_size;		/**< Size of the segment */
109
+} PACKED __SEGDESC_t;
108 110
 
111
+/** @} */ /* pxe_types */
109 112
 
110
-/** @} */ /* addtogroup */
113
+/** @} */ /* pxe */
111 114
 
112 115
 #endif /* PXE_TYPES_H */

Loading…
Cancel
Save