2 * Copyright (c) 1990,1991 Regents of The University of Michigan.
5 * Permission to use, copy, modify, and distribute this software and
6 * its documentation for any purpose and without fee is hereby granted,
7 * provided that the above copyright notice appears in all copies and
8 * that both that copyright notice and this permission notice appear
9 * in supporting documentation, and that the name of The University
10 * of Michigan not be used in advertising or publicity pertaining to
11 * distribution of the software without specific, written prior
12 * permission. This software is supplied as is without expressed or
13 * implied warranties of any kind.
15 * Research Systems Unix Group
16 * The University of Michigan
18 * 535 W. William Street
21 * netatalk@itd.umich.edu
25 #define _ATALK_AFP_H 1
27 #include <sys/types.h>
28 #include <netatalk/endian.h>
30 typedef u_int16_t AFPUserBytes;
33 #define AFPPROTO_ASP 1
34 #define AFPPROTO_DSI 2
36 /* actual transports. the DSI ones (tcp right now) need to be
37 * kept in sync w/ <atalk/dsi.h>.
38 * convention: AFPTRANS_* = (1 << DSI_*)
40 #define AFPTRANS_NONE 0
41 #define AFPTRANS_DDP (1 << 0)
42 #define AFPTRANS_TCP (1 << 1)
43 #define AFPTRANS_ALL (AFPTRANS_DDP | AFPTRANS_TCP)
46 #define AFPSRVRINFO_COPY (1<<0) /* supports copyfile */
47 #define AFPSRVRINFO_PASSWD (1<<1) /* supports change password */
48 #define AFPSRVRINFO_NOSAVEPASSWD (1<<2) /* don't allow save password */
49 #define AFPSRVRINFO_SRVMSGS (1<<3) /* supports server messages */
50 #define AFPSRVRINFO_SRVSIGNATURE (1<<4) /* supports server signature */
51 #define AFPSRVRINFO_TCPIP (1<<5) /* supports tcpip */
52 #define AFPSRVRINFO_SRVNOTIFY (1<<6) /* supports server notifications */
53 #define AFPSRVRINFO_FASTBOZO (1<<15) /* fast copying */
56 #define AFPERR_ACCESS -5000 /* permission denied */
57 #define AFPERR_AUTHCONT -5001 /* logincont */
58 #define AFPERR_BADUAM -5002 /* uam doesn't exist */
59 #define AFPERR_BADVERS -5003 /* bad afp version number */
60 #define AFPERR_BITMAP -5004 /* invalid bitmap */
61 #define AFPERR_CANTMOVE -5005 /* can't move file */
62 #define AFPERR_DENYCONF -5006 /* file synchronization locks conflict */
63 #define AFPERR_DIRNEMPT -5007 /* directory not empty */
64 #define AFPERR_DFULL -5008 /* disk full */
65 #define AFPERR_EOF -5009 /* end of file -- catsearch and afp_read */
66 #define AFPERR_BUSY -5010 /* FileBusy */
67 #define AFPERR_FLATVOL -5011 /* volume doesn't support directories */
68 #define AFPERR_NOITEM -5012 /* ItemNotFound */
69 #define AFPERR_LOCK -5013 /* LockErr */
70 #define AFPERR_MISC -5014 /* misc. err */
71 #define AFPERR_NLOCK -5015 /* no more locks */
72 #define AFPERR_NOSRVR -5016 /* no response by server at that address */
73 #define AFPERR_EXIST -5017 /* object already exists */
74 #define AFPERR_NOOBJ -5018 /* object not found */
75 #define AFPERR_PARAM -5019 /* parameter error */
76 #define AFPERR_NORANGE -5020 /* no range lock */
77 #define AFPERR_RANGEOVR -5021 /* range overlap */
78 #define AFPERR_SESSCLOS -5022 /* session closed */
79 #define AFPERR_NOTAUTH -5023 /* user not authenticated */
80 #define AFPERR_NOOP -5024 /* command not supported */
81 #define AFPERR_BADTYPE -5025 /* object is the wrong type */
82 #define AFPERR_NFILE -5026 /* too many files open */
83 #define AFPERR_SHUTDOWN -5027 /* server is going down */
84 #define AFPERR_NORENAME -5028 /* can't rename */
85 #define AFPERR_NODIR -5029 /* couldn't find directory */
86 #define AFPERR_ITYPE -5030 /* wrong icon type */
87 #define AFPERR_VLOCK -5031 /* volume locked */
88 #define AFPERR_OLOCK -5032 /* object locked */
89 #define AFPERR_CTNSHRD -5033 /* share point contains a share point */
90 #define AFPERR_NOID -5034 /* file thread not found */
91 #define AFPERR_EXISTID -5035 /* file already has an id */
92 #define AFPERR_DIFFVOL -5036 /* different volume */
93 #define AFPERR_CATCHNG -5037 /* catalog has changed */
94 #define AFPERR_SAMEOBJ -5038 /* source file == destination file */
95 #define AFPERR_BADID -5039 /* non-existent file id */
96 #define AFPERR_PWDSAME -5040 /* same password/can't change password */
97 #define AFPERR_PWDSHORT -5041 /* password too short */
98 #define AFPERR_PWDEXPR -5042 /* password expired */
99 #define AFPERR_INSHRD -5043 /* folder being shared is inside a
100 shared folder. may be returned by
102 #define AFPERR_INTRASH -5044 /* shared folder in trash. */
103 #define AFPERR_PWDCHNG -5045 /* password needs to be changed */
104 #define AFPERR_PWDPOLCY -5046 /* password fails policy check */
105 #define AFPERR_USRLOGIN -5047 /* user already logged on */
107 /* AFP Attention Codes -- 4 bits */
108 #define AFPATTN_SHUTDOWN (1 << 15) /* shutdown/disconnect */
109 #define AFPATTN_CRASH (1 << 14) /* server crashed */
110 #define AFPATTN_MESG (1 << 13) /* server has message */
111 #define AFPATTN_NORECONNECT (1 << 12) /* don't reconnect */
112 /* server notification */
113 #define AFPATTN_NOTIFY (AFPATTN_MESG | AFPATTN_NORECONNECT)
115 /* extended bitmap -- 12 bits. volchanged is only useful w/ a server
116 * notification, and time is only useful for shutdown. */
117 #define AFPATTN_VOLCHANGED (1 << 0) /* volume has changed */
118 #define AFPATTN_TIME(x) ((x) & 0xfff) /* time in minutes */