1 #ifndef AFPD_STATUS_H
2 #define AFPD_STATUS_H 1
3 
4 #include <atalk/dsi.h>
5 #include <atalk/globals.h>
6 
7 #include "afp_config.h"
8 
9 /* we use these to prevent whacky alignment problems */
10 #define AFPSTATUS_MACHOFF     0
11 #define AFPSTATUS_VERSOFF     2
12 #define AFPSTATUS_UAMSOFF     4
13 #define AFPSTATUS_ICONOFF     6
14 #define AFPSTATUS_FLAGOFF     8
15 
16 /* AFPSTATUS_PRELEN is the number of bytes for status data prior to
17  * the ServerName field.
18  *
19  * This is two bytes of offset space for the MachineType, AFPVersionCount,
20  * UAMCount, VolumeIconAndMask, and the 16-bit "Fixed" status flags.
21  */
22 #define AFPSTATUS_PRELEN     10
23 
24 /* AFPSTATUS_POSTLEN is the number of bytes for offset records
25  * after the ServerName field.
26  *
27  * Right now, this is 2 bytes each for ServerSignature, networkAddressCount,
28  * DirectoryNameCount, and UTF-8 ServerName
29  */
30 #define AFPSTATUS_POSTLEN     8
31 #define AFPSTATUS_LEN        (AFPSTATUS_PRELEN + AFPSTATUS_POSTLEN)
32 
33 /* AFPSTATUS_MACHLEN is the number of characters for the MachineType. */
34 #define AFPSTATUS_MACHLEN     16
35 
36 extern void status_versions (char * /*status*/, const DSI *);
37 extern void status_uams (char * /*status*/, const char * /*authlist*/);
38 extern void status_init (AFPObj *, DSI *dsi);
39 extern void set_signature(struct afp_options *);
40 
41 /* FP functions */
42 int afp_getsrvrinfo (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf,  size_t *rbuflen);
43 
44 #endif
45