2c157ee4e05ae3e7ca1d589dbfb8af4a874c0c9d
[people/lynusvaz/gpxe.git] / src / include / proto.h
1 #ifndef PROTO_H
2 #define PROTO_H
3
4 #include "tables.h"
5 #include "in.h"
6
7 struct protocol {
8         char *name;
9         in_port_t default_port;
10         int ( * load ) ( char *url,
11                          struct sockaddr_in *server,
12                          char *file,
13                          int ( * process ) ( unsigned char *data,
14                                              unsigned int blocknum,
15                                              unsigned int len,
16                                              int eof ) );
17 };
18
19 /*
20  * Protocols that should be used if no explicit protocol is specified
21  * (i.e. tftp) should use __default_protocol; all other protocols
22  * should use __protocol.
23  *
24  */
25 #define __protocol_start                __table_start(protocol)
26 #define __protocol                      __table(protocol,01)
27 #define __default_protocol_start        __table(protocol,02)
28 #define __default_protocol              __table(protocol,03)
29 #define __protocol_end                  __table_end(protocol)
30
31 /*
32  * Functions in proto.c
33  *
34  */
35 extern struct protocol * identify_protocol ( const char *name );
36
37 #endif /* PROTO_H */