e0dceaef32daccb589de70e62a35dea8a43b216a
[people/holger/gpxe.git] / src / core / background.c
1 #include "background.h"
2
3 static struct background backgrounds[0]
4         __table_start ( struct background, background );
5 static struct background backgrounds_end[0]
6         __table_end ( struct background, background );
7
8 /** @file */
9
10 /**
11  * Call send method of all background protocols
12  *
13  * @v timestamp         Current time
14  * @ret None            -
15  * @err None            -
16  *
17  * This calls each background protocol's background::send() method.
18  */
19 void background_send ( unsigned long timestamp ) {
20         struct background *background;
21
22         for ( background = backgrounds ; background < backgrounds_end ;
23               background++ ) {
24                 if ( background->send )
25                         background->send ( timestamp );
26         }
27 }
28
29 /**
30  * Call process method of all background protocols
31  *
32  * @v timestamp         Current time
33  * @v ptype             Packet type
34  * @v ip                IP header, if present
35  * @ret None            -
36  * @err None            -
37  *
38  * This calls each background protocol's background::process() method.
39  */
40 void background_process ( unsigned long timestamp, unsigned short ptype,
41                           struct iphdr *ip ) {
42         struct background *background;
43
44         for ( background = backgrounds ; background < backgrounds_end ;
45               background++ ) {
46                 if ( background->process )
47                         background->process ( timestamp, ptype, ip );
48         }
49 }