]> arthur.barton.de Git - netatalk.git/blob - include/atalk/afp.h
Merge master
[netatalk.git] / include / atalk / afp.h
1 /*
2  * Copyright (c) 1990,1991 Regents of The University of Michigan.
3  * All Rights Reserved.
4  *
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.
14  *
15  *      Research Systems Unix Group
16  *      The University of Michigan
17  *      c/o Mike Clark
18  *      535 W. William Street
19  *      Ann Arbor, Michigan
20  *      +1-313-763-0525
21  *      netatalk@itd.umich.edu
22  */
23
24 #ifndef _ATALK_AFP_H
25 #define _ATALK_AFP_H 1
26
27 #include <stdint.h>
28 #include <sys/types.h>
29
30 typedef uint16_t AFPUserBytes;
31
32 /* protocols */
33 #define AFPPROTO_ASP           1
34 #define AFPPROTO_DSI           2
35
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_*) 
39  */
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)
44
45 /* server flags */
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_SRVRECONNECT (1<<7)  /* supports server reconnect */ 
54 #define AFPSRVRINFO_SRVRDIR      (1<<8)  /* supports directories service */ 
55 #define AFPSRVRINFO_SRVUTF8      (1<<9)  /* supports UTF8 names AFP 3.1 */ 
56 #define AFPSRVRINFO_UUID         (1<<10) /* supports UUIDs */
57 #define AFPSRVRINFO_EXTSLEEP     (1<<11) /* supports extended sleep */
58 #define AFPSRVRINFO_FASTBOZO     (1<<15) /* fast copying */
59
60 #define AFP_OK          0
61 #define AFPERR_DID1     -4000   /* not an afp error DID is 1*/
62 #define AFPERR_ACCESS   -5000   /* permission denied */
63 #define AFPERR_AUTHCONT -5001   /* logincont */
64 #define AFPERR_BADUAM   -5002   /* uam doesn't exist */
65 #define AFPERR_BADVERS  -5003   /* bad afp version number */
66 #define AFPERR_BITMAP   -5004   /* invalid bitmap */
67 #define AFPERR_CANTMOVE -5005   /* can't move file */
68 #define AFPERR_DENYCONF -5006   /* file synchronization locks conflict */
69 #define AFPERR_DIRNEMPT -5007   /* directory not empty */
70 #define AFPERR_DFULL    -5008   /* disk full */
71 #define AFPERR_EOF      -5009   /* end of file -- catsearch and afp_read */
72 #define AFPERR_BUSY     -5010   /* FileBusy */
73 #define AFPERR_FLATVOL  -5011   /* volume doesn't support directories */
74 #define AFPERR_NOITEM   -5012   /* ItemNotFound */
75 #define AFPERR_LOCK     -5013   /* LockErr */
76 #define AFPERR_MISC     -5014   /* misc. err */
77 #define AFPERR_NLOCK    -5015   /* no more locks */
78 #define AFPERR_NOSRVR   -5016   /* no response by server at that address */
79 #define AFPERR_EXIST    -5017   /* object already exists */
80 #define AFPERR_NOOBJ    -5018   /* object not found */
81 #define AFPERR_PARAM    -5019   /* parameter error */
82 #define AFPERR_NORANGE  -5020   /* no range lock */
83 #define AFPERR_RANGEOVR -5021   /* range overlap */
84 #define AFPERR_SESSCLOS -5022   /* session closed */
85 #define AFPERR_NOTAUTH  -5023   /* user not authenticated */
86 #define AFPERR_NOOP     -5024   /* command not supported */
87 #define AFPERR_BADTYPE  -5025   /* object is the wrong type */
88 #define AFPERR_NFILE    -5026   /* too many files open */
89 #define AFPERR_SHUTDOWN -5027   /* server is going down */
90 #define AFPERR_NORENAME -5028   /* can't rename */
91 #define AFPERR_NODIR    -5029   /* couldn't find directory */
92 #define AFPERR_ITYPE    -5030   /* wrong icon type */
93 #define AFPERR_VLOCK    -5031   /* volume locked */
94 #define AFPERR_OLOCK    -5032   /* object locked */
95 #define AFPERR_CTNSHRD  -5033   /* share point contains a share point */
96 #define AFPERR_NOID     -5034   /* file thread not found */
97 #define AFPERR_EXISTID  -5035   /* file already has an id */
98 #define AFPERR_DIFFVOL  -5036   /* different volume */
99 #define AFPERR_CATCHNG  -5037   /* catalog has changed */
100 #define AFPERR_SAMEOBJ  -5038   /* source file == destination file */
101 #define AFPERR_BADID    -5039   /* non-existent file id */
102 #define AFPERR_PWDSAME  -5040   /* same password/can't change password */
103 #define AFPERR_PWDSHORT -5041   /* password too short */
104 #define AFPERR_PWDEXPR  -5042   /* password expired */
105 #define AFPERR_INSHRD   -5043   /* folder being shared is inside a
106                                    shared folder. may be returned by
107                                    afpMoveAndRename. */
108 #define AFPERR_INTRASH  -5044   /* shared folder in trash. */
109 #define AFPERR_PWDCHNG  -5045   /* password needs to be changed */
110 #define AFPERR_PWDPOLCY -5046   /* password fails policy check */
111 #define AFPERR_USRLOGIN -5047   /* user already logged on */
112
113 /* AFP Attention Codes -- 4 bits */
114 #define AFPATTN_SHUTDOWN     (1 << 15)            /* shutdown/disconnect */
115 #define AFPATTN_CRASH        (1 << 14)            /* server crashed */
116 #define AFPATTN_MESG         (1 << 13)            /* server has message */
117 #define AFPATTN_NORECONNECT  (1 << 12)            /* don't reconnect */
118 /* server notification */
119 #define AFPATTN_NOTIFY       (AFPATTN_MESG | AFPATTN_NORECONNECT) 
120
121 /* extended bitmap -- 12 bits. volchanged is only useful w/ a server
122  * notification, and time is only useful for shutdown. */
123 #define AFPATTN_VOLCHANGED   (1 << 0)             /* volume has changed */
124 #define AFPATTN_TIME(x)      ((x) & 0xfff)        /* time in minutes */
125
126 typedef enum {
127   AFPMESG_LOGIN = 0,
128   AFPMESG_SERVER = 1
129 } afpmessage_t;
130
131 /* extended sleep flag */
132 #define AFPZZZ_EXT_SLEEP  1
133 #define AFPZZZ_EXT_WAKEUP 2
134
135
136 /* AFP functions */
137 #define AFP_BYTELOCK         1
138 #define AFP_CLOSEVOL             2
139 #define AFP_CLOSEDIR             3
140 #define AFP_CLOSEFORK            4
141 #define AFP_COPYFILE             5
142 #define AFP_CREATEDIR            6
143 #define AFP_CREATEFILE           7
144 #define AFP_DELETE                   8
145 #define AFP_ENUMERATE            9
146 #define AFP_FLUSH                   10
147 #define AFP_FLUSHFORK           11
148
149 #define AFP_GETFORKPARAM        14
150 #define AFP_GETSRVINFO          15
151 #define AFP_GETSRVPARAM         16
152 #define AFP_GETVOLPARAM         17
153 #define AFP_LOGIN               18
154 #define AFP_LOGINCONT           19
155 #define AFP_LOGOUT              20
156 #define AFP_MAPID                   21
157 #define AFP_MAPNAME                 22
158 #define AFP_MOVE                    23
159 #define AFP_OPENVOL             24
160 #define AFP_OPENDIR                 25
161 #define AFP_OPENFORK            26
162 #define AFP_READ                    27
163 #define AFP_RENAME                  28
164 #define AFP_SETDIRPARAM         29
165 #define AFP_SETFILEPARAM        30
166 #define AFP_SETFORKPARAM        31
167 #define AFP_SETVOLPARAM         32
168 #define AFP_WRITE                   33
169 #define AFP_GETFLDRPARAM        34
170 #define AFP_SETFLDRPARAM        35
171 #define AFP_CHANGEPW            36
172 #define AFP_GETUSERINFO     37
173 #define AFP_GETSRVRMSG          38
174 #define AFP_CREATEID            39
175 #define AFP_DELETEID            40
176 #define AFP_RESOLVEID           41
177 #define AFP_EXCHANGEFILE        42
178 #define AFP_CATSEARCH           43
179
180 #define AFP_OPENDT                  48
181 #define AFP_CLOSEDT                 49
182
183 #define AFP_GETICON         51
184 #define AFP_GTICNINFO       52
185 #define AFP_ADDAPPL         53
186 #define AFP_RMVAPPL         54
187
188 #define AFP_GETAPPL         55
189 #define AFP_ADDCMT          56
190 #define AFP_RMVCMT          57
191 #define AFP_GETCMT          58
192 #define AFP_ADDICON        192
193
194 /* version 3.0 */
195 #define AFP_BYTELOCK_EXT        59
196 #define AFP_CATSEARCH_EXT       67
197 #define AFP_ENUMERATE_EXT       66
198 #define AFP_READ_EXT            60
199 #define AFP_WRITE_EXT           61
200 #define AFP_LOGIN_EXT           63
201 #define AFP_GETSESSTOKEN        64
202 #define AFP_DISCTOLDSESS        65
203
204 /* version 3.1 */
205 #define AFP_ENUMERATE_EXT2      68
206 #define AFP_SPOTLIGHT_PRIVATE   76
207 #define AFP_SYNCDIR             78
208 #define AFP_SYNCFORK            79
209 #define AFP_ZZZ                 122
210
211 /* version 3.2 */
212 #define AFP_GETEXTATTR          69
213 #define AFP_SETEXTATTR          70
214 #define AFP_REMOVEATTR          71
215 #define AFP_LISTEXTATTR         72
216 #define AFP_GETACL              73
217 #define AFP_SETACL              74
218 #define AFP_ACCESS              75
219
220 /* more defines */
221 #define REPLAYCACHE_SIZE 128
222
223 #endif