summaryrefslogtreecommitdiffstats
path: root/src/include/proto.h
blob: c16229ef10948b02c8ddd2b8ca0b6b5cebe9eaf3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#ifndef PROTO_H
#define PROTO_H

#include <gpxe/tables.h>
#include "buffer.h"
#include <gpxe/in.h>

struct protocol {
	char *name;
	uint16_t default_port;
	int ( * load ) ( char *url, struct sockaddr_in *server, char *file,
			 struct buffer *buffer );
};

/*
 * Protocols that should be used if no explicit protocol is specified
 * (i.e. tftp) should use __default_protocol; all other protocols
 * should use __protocol.
 *
 */
#define __protocol_start	 __table_start ( struct protocol, protocol )
#define __protocol		 __table ( struct protocol, protocol, 01 )
#define __default_protocol_start __table ( struct protocol, protocol, 02 )
#define __default_protocol	 __table ( struct protocol, protocol, 03 )
#define __protocol_end		 __table_end ( struct protocol, protocol )

/*
 * Functions in proto.c
 *
 */
extern struct protocol * identify_protocol ( const char *name );

#endif /* PROTO_H */