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 30typedef uint16_t AFPUserBytes; 31 32/* protocols */ 33#define AFPPROTO_ASP 1 34#define AFPPROTO_DSI 2 35 36/* server flags */ 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 */ 50 51#define AFP_OK 0 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 98 afpMoveAndRename. */ 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 */ 103 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) 111 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 */ 116 117typedef enum { 118 AFPMESG_LOGIN = 0, 119 AFPMESG_SERVER = 1 120} afpmessage_t; 121 122/* extended sleep flag */ 123#define AFPZZZ_EXT_SLEEP 1 124#define AFPZZZ_EXT_WAKEUP 2 125 126 127/* AFP functions */ 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 135#define AFP_DELETE 8 136#define AFP_ENUMERATE 9 137#define AFP_FLUSH 10 138#define AFP_FLUSHFORK 11 139 140#define AFP_GETFORKPARAM 14 141#define AFP_GETSRVINFO 15 142#define AFP_GETSRVPARAM 16 143#define AFP_GETVOLPARAM 17 144#define AFP_LOGIN 18 145#define AFP_LOGINCONT 19 146#define AFP_LOGOUT 20 147#define AFP_MAPID 21 148#define AFP_MAPNAME 22 149#define AFP_MOVE 23 150#define AFP_OPENVOL 24 151#define AFP_OPENDIR 25 152#define AFP_OPENFORK 26 153#define AFP_READ 27 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 159#define AFP_WRITE 33 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 170 171#define AFP_OPENDT 48 172#define AFP_CLOSEDT 49 173 174#define AFP_GETICON 51 175#define AFP_GTICNINFO 52 176#define AFP_ADDAPPL 53 177#define AFP_RMVAPPL 54 178 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 184 185/* version 3.0 */ 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 194 195/* version 3.1 */ 196#define AFP_ENUMERATE_EXT2 68 197#define AFP_SPOTLIGHT_PRIVATE 76 198#define AFP_SYNCDIR 78 199#define AFP_SYNCFORK 79 200#define AFP_ZZZ 122 201 202/* version 3.2 */ 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 210 211/* more defines */ 212#define REPLAYCACHE_SIZE 128 213 214#endif 215