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
28 #include <sys/types.h>
30 typedef uint16_t AFPUserBytes;
33 #define AFPPROTO_ASP 1
34 #define AFPPROTO_DSI 2
37 #define AFPSRVRINFO_COPY (1<<0) /* supports copyfile */
38 #define AFPSRVRINFO_PASSWD (1<<1) /* supports change password */
39 #define AFPSRVRINFO_NOSAVEPASSWD (1<<2) /* don't allow save password */
40 #define AFPSRVRINFO_SRVMSGS (1<<3) /* supports server messages */
41 #define AFPSRVRINFO_SRVSIGNATURE (1<<4) /* supports server signature */
42 #define AFPSRVRINFO_TCPIP (1<<5) /* supports tcpip */
43 #define AFPSRVRINFO_SRVNOTIFY (1<<6) /* supports server notifications */
44 #define AFPSRVRINFO_SRVRECONNECT (1<<7) /* supports server reconnect */
45 #define AFPSRVRINFO_SRVRDIR (1<<8) /* supports directories service */
46 #define AFPSRVRINFO_SRVUTF8 (1<<9) /* supports UTF8 names AFP 3.1 */
47 #define AFPSRVRINFO_UUID (1<<10) /* supports UUIDs */
48 #define AFPSRVRINFO_EXTSLEEP (1<<11) /* supports extended sleep */
49 #define AFPSRVRINFO_FASTBOZO (1<<15) /* fast copying */
52 #define AFPERR_DID1 -4000 /* not an afp error DID is 1*/
53 #define AFPERR_ACCESS -5000 /* permission denied */
54 #define AFPERR_AUTHCONT -5001 /* logincont */
55 #define AFPERR_BADUAM -5002 /* uam doesn't exist */
56 #define AFPERR_BADVERS -5003 /* bad afp version number */
57 #define AFPERR_BITMAP -5004 /* invalid bitmap */
58 #define AFPERR_CANTMOVE -5005 /* can't move file */
59 #define AFPERR_DENYCONF -5006 /* file synchronization locks conflict */
60 #define AFPERR_DIRNEMPT -5007 /* directory not empty */
61 #define AFPERR_DFULL -5008 /* disk full */
62 #define AFPERR_EOF -5009 /* end of file -- catsearch and afp_read */
63 #define AFPERR_BUSY -5010 /* FileBusy */
64 #define AFPERR_FLATVOL -5011 /* volume doesn't support directories */
65 #define AFPERR_NOITEM -5012 /* ItemNotFound */
66 #define AFPERR_LOCK -5013 /* LockErr */
67 #define AFPERR_MISC -5014 /* misc. err */
68 #define AFPERR_NLOCK -5015 /* no more locks */
69 #define AFPERR_NOSRVR -5016 /* no response by server at that address */
70 #define AFPERR_EXIST -5017 /* object already exists */
71 #define AFPERR_NOOBJ -5018 /* object not found */
72 #define AFPERR_PARAM -5019 /* parameter error */
73 #define AFPERR_NORANGE -5020 /* no range lock */
74 #define AFPERR_RANGEOVR -5021 /* range overlap */
75 #define AFPERR_SESSCLOS -5022 /* session closed */
76 #define AFPERR_NOTAUTH -5023 /* user not authenticated */
77 #define AFPERR_NOOP -5024 /* command not supported */
78 #define AFPERR_BADTYPE -5025 /* object is the wrong type */
79 #define AFPERR_NFILE -5026 /* too many files open */
80 #define AFPERR_SHUTDOWN -5027 /* server is going down */
81 #define AFPERR_NORENAME -5028 /* can't rename */
82 #define AFPERR_NODIR -5029 /* couldn't find directory */
83 #define AFPERR_ITYPE -5030 /* wrong icon type */
84 #define AFPERR_VLOCK -5031 /* volume locked */
85 #define AFPERR_OLOCK -5032 /* object locked */
86 #define AFPERR_CTNSHRD -5033 /* share point contains a share point */
87 #define AFPERR_NOID -5034 /* file thread not found */
88 #define AFPERR_EXISTID -5035 /* file already has an id */
89 #define AFPERR_DIFFVOL -5036 /* different volume */
90 #define AFPERR_CATCHNG -5037 /* catalog has changed */
91 #define AFPERR_SAMEOBJ -5038 /* source file == destination file */
92 #define AFPERR_BADID -5039 /* non-existent file id */
93 #define AFPERR_PWDSAME -5040 /* same password/can't change password */
94 #define AFPERR_PWDSHORT -5041 /* password too short */
95 #define AFPERR_PWDEXPR -5042 /* password expired */
96 #define AFPERR_INSHRD -5043 /* folder being shared is inside a
97 shared folder. may be returned by
99 #define AFPERR_INTRASH -5044 /* shared folder in trash. */
100 #define AFPERR_PWDCHNG -5045 /* password needs to be changed */
101 #define AFPERR_PWDPOLCY -5046 /* password fails policy check */
102 #define AFPERR_USRLOGIN -5047 /* user already logged on */
104 /* AFP Attention Codes -- 4 bits */
105 #define AFPATTN_SHUTDOWN (1 << 15) /* shutdown/disconnect */
106 #define AFPATTN_CRASH (1 << 14) /* server crashed */
107 #define AFPATTN_MESG (1 << 13) /* server has message */
108 #define AFPATTN_NORECONNECT (1 << 12) /* don't reconnect */
109 /* server notification */
110 #define AFPATTN_NOTIFY (AFPATTN_MESG | AFPATTN_NORECONNECT)
112 /* extended bitmap -- 12 bits. volchanged is only useful w/ a server
113 * notification, and time is only useful for shutdown. */
114 #define AFPATTN_VOLCHANGED (1 << 0) /* volume has changed */
115 #define AFPATTN_TIME(x) ((x) & 0xfff) /* time in minutes */
122 /* extended sleep flag */
123 #define AFPZZZ_EXT_SLEEP 1
124 #define AFPZZZ_EXT_WAKEUP 2
128 #define AFP_BYTELOCK 1
129 #define AFP_CLOSEVOL 2
130 #define AFP_CLOSEDIR 3
131 #define AFP_CLOSEFORK 4
132 #define AFP_COPYFILE 5
133 #define AFP_CREATEDIR 6
134 #define AFP_CREATEFILE 7
136 #define AFP_ENUMERATE 9
138 #define AFP_FLUSHFORK 11
140 #define AFP_GETFORKPARAM 14
141 #define AFP_GETSRVINFO 15
142 #define AFP_GETSRVPARAM 16
143 #define AFP_GETVOLPARAM 17
145 #define AFP_LOGINCONT 19
146 #define AFP_LOGOUT 20
148 #define AFP_MAPNAME 22
150 #define AFP_OPENVOL 24
151 #define AFP_OPENDIR 25
152 #define AFP_OPENFORK 26
154 #define AFP_RENAME 28
155 #define AFP_SETDIRPARAM 29
156 #define AFP_SETFILEPARAM 30
157 #define AFP_SETFORKPARAM 31
158 #define AFP_SETVOLPARAM 32
160 #define AFP_GETFLDRPARAM 34
161 #define AFP_SETFLDRPARAM 35
162 #define AFP_CHANGEPW 36
163 #define AFP_GETUSERINFO 37
164 #define AFP_GETSRVRMSG 38
165 #define AFP_CREATEID 39
166 #define AFP_DELETEID 40
167 #define AFP_RESOLVEID 41
168 #define AFP_EXCHANGEFILE 42
169 #define AFP_CATSEARCH 43
171 #define AFP_OPENDT 48
172 #define AFP_CLOSEDT 49
174 #define AFP_GETICON 51
175 #define AFP_GTICNINFO 52
176 #define AFP_ADDAPPL 53
177 #define AFP_RMVAPPL 54
179 #define AFP_GETAPPL 55
180 #define AFP_ADDCMT 56
181 #define AFP_RMVCMT 57
182 #define AFP_GETCMT 58
183 #define AFP_ADDICON 192
186 #define AFP_BYTELOCK_EXT 59
187 #define AFP_CATSEARCH_EXT 67
188 #define AFP_ENUMERATE_EXT 66
189 #define AFP_READ_EXT 60
190 #define AFP_WRITE_EXT 61
191 #define AFP_LOGIN_EXT 63
192 #define AFP_GETSESSTOKEN 64
193 #define AFP_DISCTOLDSESS 65
196 #define AFP_ENUMERATE_EXT2 68
197 #define AFP_SPOTLIGHT_PRIVATE 76
198 #define AFP_SYNCDIR 78
199 #define AFP_SYNCFORK 79
203 #define AFP_GETEXTATTR 69
204 #define AFP_SETEXTATTR 70
205 #define AFP_REMOVEATTR 71
206 #define AFP_LISTEXTATTR 72
207 #define AFP_GETACL 73
208 #define AFP_SETACL 74
209 #define AFP_ACCESS 75
212 #define REPLAYCACHE_SIZE 128