http://gimel.esc.cam.ac.uk/james/rpld/src/rpld-1.3.tar.gz
[rpld.git] / client.h
1 /*************************************************
2 *     rpld - an IBM style RIPL server            *
3 *************************************************/
4
5 /* Copyright (c) 1999, James McKenzie.
6  *                      All rights reserved
7  * Copyright (c) 1998, Christopher Lightfoot.
8  *                      All rights reserved
9  *
10  * By using this file, you agree to the terms and conditions set
11  * forth in the LICENCE file which can be found at the top level of
12  * the rpld distribution.
13  *
14  * IBM is a trademark of IBM corp.
15  *
16  */
17
18
19 /*
20  * $Id: client.h,v 1.6 1999/09/22 13:17:49 root Exp $
21  *
22  * $Log: client.h,v $
23  * Revision 1.6  1999/09/22 13:17:49  root
24  * Added partial_mac_len field for wildcarded mac addresses in
25  * struct client.
26  *
27  * Revision 1.5  1999/09/13 11:17:35  root
28  * \#
29  *
30  * Revision 1.4  1999/09/13 11:05:27  root
31  * \#
32  *
33  * Revision 1.3  1999/09/13 11:04:13  root
34  * \#
35  *  
36  */
37
38
39
40
41 #define ST_START        0
42 #define ST_FIND         1
43 #define ST_FOUND        2
44 #define ST_SENDFILE     3
45 #define ST_FILEDATA     4
46 #define ST_DONE         5
47
48 struct clfile
49   {
50     char *path;
51     unsigned char *data;
52
53     int offset;
54     int length;
55
56     u32 load_addr;
57
58     int sblock, eblock;
59     struct clfile *next;
60
61     FILE *f;
62   };
63
64 struct client
65   {
66     int state;
67
68     u8 mac[ETH_ALEN];
69     int partial_mac_len;
70     int framelen;
71     int blocknum;
72     int blocklen;
73
74
75     u32 run_addr;
76
77     struct clfile *files;
78     struct clfile *file;
79
80     struct client *next;
81   };