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