#ifndef _ATALK_AFP_H
#define _ATALK_AFP_H 1
+#include <stdint.h>
#include <sys/types.h>
-#include <netatalk/endian.h>
-typedef u_int16_t AFPUserBytes;
+typedef uint16_t AFPUserBytes;
/* protocols */
#define AFPPROTO_ASP 1
#define AFPPROTO_DSI 2
-/* actual transports. the DSI ones (tcp right now) need to be
- * kept in sync w/ <atalk/dsi.h>.
- * convention: AFPTRANS_* = (1 << DSI_*)
- */
-#define AFPTRANS_NONE 0
-#define AFPTRANS_DDP (1 << 0)
-#define AFPTRANS_TCP (1 << 1)
-#define AFPTRANS_ALL (AFPTRANS_DDP | AFPTRANS_TCP)
-
/* server flags */
-#define AFPSRVRINFO_COPY (1<<0) /* supports copyfile */
-#define AFPSRVRINFO_PASSWD (1<<1) /* supports change password */
+#define AFPSRVRINFO_COPY (1<<0) /* supports copyfile */
+#define AFPSRVRINFO_PASSWD (1<<1) /* supports change password */
#define AFPSRVRINFO_NOSAVEPASSWD (1<<2) /* don't allow save password */
#define AFPSRVRINFO_SRVMSGS (1<<3) /* supports server messages */
#define AFPSRVRINFO_SRVSIGNATURE (1<<4) /* supports server signature */
#define AFPSRVRINFO_TCPIP (1<<5) /* supports tcpip */
#define AFPSRVRINFO_SRVNOTIFY (1<<6) /* supports server notifications */
-#define AFPSRVRINFO_FASTBOZO (1<<15) /* fast copying */
+#define AFPSRVRINFO_SRVRECONNECT (1<<7) /* supports server reconnect */
+#define AFPSRVRINFO_SRVRDIR (1<<8) /* supports directories service */
+#define AFPSRVRINFO_SRVUTF8 (1<<9) /* supports UTF8 names AFP 3.1 */
+#define AFPSRVRINFO_UUID (1<<10) /* supports UUIDs */
+#define AFPSRVRINFO_EXTSLEEP (1<<11) /* supports extended sleep */
+#define AFPSRVRINFO_FASTBOZO (1<<15) /* fast copying */
#define AFP_OK 0
+#define AFPERR_DID1 -4000 /* not an afp error DID is 1*/
#define AFPERR_ACCESS -5000 /* permission denied */
#define AFPERR_AUTHCONT -5001 /* logincont */
#define AFPERR_BADUAM -5002 /* uam doesn't exist */
AFPMESG_SERVER = 1
} afpmessage_t;
+/* extended sleep flag */
+#define AFPZZZ_EXT_SLEEP 1
+#define AFPZZZ_EXT_WAKEUP 2
+
+
+/* AFP functions */
+#define AFP_BYTELOCK 1
+#define AFP_CLOSEVOL 2
+#define AFP_CLOSEDIR 3
+#define AFP_CLOSEFORK 4
+#define AFP_COPYFILE 5
+#define AFP_CREATEDIR 6
+#define AFP_CREATEFILE 7
+#define AFP_DELETE 8
+#define AFP_ENUMERATE 9
+#define AFP_FLUSH 10
+#define AFP_FLUSHFORK 11
+
+#define AFP_GETFORKPARAM 14
+#define AFP_GETSRVINFO 15
+#define AFP_GETSRVPARAM 16
+#define AFP_GETVOLPARAM 17
+#define AFP_LOGIN 18
+#define AFP_LOGINCONT 19
+#define AFP_LOGOUT 20
+#define AFP_MAPID 21
+#define AFP_MAPNAME 22
+#define AFP_MOVE 23
+#define AFP_OPENVOL 24
+#define AFP_OPENDIR 25
+#define AFP_OPENFORK 26
+#define AFP_READ 27
+#define AFP_RENAME 28
+#define AFP_SETDIRPARAM 29
+#define AFP_SETFILEPARAM 30
+#define AFP_SETFORKPARAM 31
+#define AFP_SETVOLPARAM 32
+#define AFP_WRITE 33
+#define AFP_GETFLDRPARAM 34
+#define AFP_SETFLDRPARAM 35
+#define AFP_CHANGEPW 36
+#define AFP_GETUSERINFO 37
+#define AFP_GETSRVRMSG 38
+#define AFP_CREATEID 39
+#define AFP_DELETEID 40
+#define AFP_RESOLVEID 41
+#define AFP_EXCHANGEFILE 42
+#define AFP_CATSEARCH 43
+
+#define AFP_OPENDT 48
+#define AFP_CLOSEDT 49
+
+#define AFP_GETICON 51
+#define AFP_GTICNINFO 52
+#define AFP_ADDAPPL 53
+#define AFP_RMVAPPL 54
+
+#define AFP_GETAPPL 55
+#define AFP_ADDCMT 56
+#define AFP_RMVCMT 57
+#define AFP_GETCMT 58
+#define AFP_ADDICON 192
+
+/* version 3.0 */
+#define AFP_BYTELOCK_EXT 59
+#define AFP_CATSEARCH_EXT 67
+#define AFP_ENUMERATE_EXT 66
+#define AFP_READ_EXT 60
+#define AFP_WRITE_EXT 61
+#define AFP_LOGIN_EXT 63
+#define AFP_GETSESSTOKEN 64
+#define AFP_DISCTOLDSESS 65
+
+/* version 3.1 */
+#define AFP_ENUMERATE_EXT2 68
+#define AFP_SPOTLIGHT_PRIVATE 76
+#define AFP_SYNCDIR 78
+#define AFP_SYNCFORK 79
+#define AFP_ZZZ 122
+
+/* version 3.2 */
+#define AFP_GETEXTATTR 69
+#define AFP_SETEXTATTR 70
+#define AFP_REMOVEATTR 71
+#define AFP_LISTEXTATTR 72
+#define AFP_GETACL 73
+#define AFP_SETACL 74
+#define AFP_ACCESS 75
+
+/* more defines */
+#define REPLAYCACHE_SIZE 128
+
#endif