1#ifndef AFPD_STATUS_H
2#define AFPD_STATUS_H 1
3
4#include <sys/cdefs.h>
5#include <atalk/dsi.h>
6#include <atalk/asp.h>
7#include <atalk/globals.h>
8
9#include "afp_config.h"
10
11/* we use these to prevent whacky alignment problems */
12#define AFPSTATUS_MACHOFF     0
13#define AFPSTATUS_VERSOFF     2
14#define AFPSTATUS_UAMSOFF     4
15#define AFPSTATUS_ICONOFF     6
16#define AFPSTATUS_FLAGOFF     8
17/* AFPSTATUS_PRELEN is the number of bytes for status data prior to
18 * the ServerName field.
19 *
20 * This is two bytes of offset space for the MachineType, AFPVersionCount,
21 * UAMCount, VolumeIconAndMask, and the 16-bit "Fixed" status flags.
22 */
23#define AFPSTATUS_PRELEN     10
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
34#define PASSWD_NONE     0
35#define PASSWD_SET     (1 << 0)
36#define PASSWD_NOSAVE  (1 << 1)
37#define PASSWD_ALL     (PASSWD_SET | PASSWD_NOSAVE)
38
39extern void status_versions (char * /*status*/, const ASP, const DSI *);
40extern void status_uams (char * /*status*/, const char * /*authlist*/);
41extern void status_init (AFPConfig *, AFPConfig *,
42                                 const struct afp_options *);
43extern void set_signature(struct afp_options *);
44
45/* FP functions */
46int afp_getsrvrinfo (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf,  size_t *rbuflen);
47
48#endif
49