1 /** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6 #ifndef _ATALKWSH_ 7 #define _ATALKWSH_ 8 9 #define DECIMAL_BASE 10 10 11 #define ATPROTO_BASE (1000 *AF_APPLETALK) 12 #define SOL_APPLETALK (ATPROTO_BASE) 13 14 #define DDPPROTO_RTMP (ATPROTO_BASE + 1) 15 #define DDPPROTO_NBP (ATPROTO_BASE + 2) 16 #define DDPPROTO_ATP (ATPROTO_BASE + 3) 17 #define DDPPROTO_AEP (ATPROTO_BASE + 4) 18 #define DDPPROTO_RTMPRQ (ATPROTO_BASE + 5) 19 #define DDPPROTO_ZIP (ATPROTO_BASE + 6) 20 #define DDPPROTO_ADSP (ATPROTO_BASE + 7) 21 22 #define DDPPROTO_MAX (ATPROTO_BASE + 255) 23 24 #define ATPROTO_ADSP (DDPPROTO_MAX + 1) 25 #define ATPROTO_ATP (DDPPROTO_MAX + 2) 26 #define ATPROTO_ASP (DDPPROTO_MAX + 3) 27 #define ATPROTO_PAP (DDPPROTO_MAX + 4) 28 29 #define SO_REGISTER_NAME 0xA000 30 #define SO_DEREGISTER_NAME 0xA001 31 #define SO_REMOVE_NAME SO_DEREGISTER_NAME 32 #define SO_LOOKUP_NAME 0xA002 33 #define SO_CONFIRM_NAME 0xA003 34 #define SO_LOOKUP_MYZONE 0xA004 35 #define SO_GETMYZONE SO_LOOKUP_MYZONE 36 #define SO_LOOKUP_ZONES 0xA005 37 #define SO_GETZONELIST SO_LOOKUP_ZONES 38 #define SO_LOOKUP_ZONES_ON_ADAPTER 0xA006 39 #define SO_GETLOCALZONES SO_LOOKUP_ZONES_ON_ADAPTER 40 #define SO_LOOKUP_NETDEF_ON_ADAPTER 0xA007 41 #define SO_GETNETINFO SO_LOOKUP_NETDEF_ON_ADAPTER 42 43 #define SO_PAP_SET_SERVER_STATUS 0xA007 44 #define SO_PAP_GET_SERVER_STATUS 0xA008 45 #define SO_PAP_PRIME_READ 0xA009 46 47 #define ATADDR_ANY 0 48 #define ATADDR_BROADCAST 0xFF 49 50 #define WSAEMSGPARTIAL (WSABASEERR+100) 51 52 #define MAX_PAP_STATUS_SIZE 255 53 #define MIN_PAP_READ_BUF_SIZE 4096 54 55 #define PAP_UNUSED_STATUS_BYTES 4 56 57 typedef struct sockaddr_at { 58 USHORT sat_family; 59 USHORT sat_net; 60 UCHAR sat_node; 61 UCHAR sat_socket; 62 } SOCKADDR_AT,*PSOCKADDR_AT; 63 64 typedef union { 65 struct { 66 USHORT Network; 67 UCHAR Node; 68 UCHAR Socket; 69 }; 70 ULONG Address; 71 } WSH_ATALK_ADDRESS,*PWSH_ATALK_ADDRESS; 72 73 #define MAX_ENTITY 32 74 typedef struct { 75 CHAR ObjectNameLen; 76 CHAR ObjectName[MAX_ENTITY]; 77 CHAR TypeNameLen; 78 CHAR TypeName[MAX_ENTITY]; 79 CHAR ZoneNameLen; 80 CHAR ZoneName[MAX_ENTITY]; 81 } WSH_NBP_NAME,*PWSH_NBP_NAME; 82 83 typedef struct { 84 WSH_ATALK_ADDRESS Address; 85 USHORT Enumerator; 86 WSH_NBP_NAME NbpName; 87 } WSH_NBP_TUPLE,*PWSH_NBP_TUPLE; 88 89 typedef WSH_NBP_NAME WSH_REGISTER_NAME,*PWSH_REGISTER_NAME; 90 typedef WSH_NBP_NAME WSH_DEREGISTER_NAME,*PWSH_DEREGISTER_NAME; 91 typedef WSH_NBP_NAME WSH_REMOVE_NAME,*PWSH_REMOVE_NAME; 92 93 typedef struct _WSH_LOOKUP_ZONES { 94 ULONG NoZones; 95 } WSH_LOOKUP_ZONES,*PWSH_LOOKUP_ZONES; 96 97 typedef struct _WSH_LOOKUP_NETDEF_ON_ADAPTER { 98 USHORT NetworkRangeLowerEnd; 99 USHORT NetworkRangeUpperEnd; 100 } WSH_LOOKUP_NETDEF_ON_ADAPTER,*PWSH_LOOKUP_NETDEF_ON_ADAPTER; 101 102 typedef struct _WSH_LOOKUP_NAME { 103 WSH_NBP_TUPLE LookupTuple; 104 ULONG NoTuples; 105 } WSH_LOOKUP_NAME,*PWSH_LOOKUP_NAME; 106 107 typedef struct _WSH_PAP_GET_SERVER_STATUS { 108 SOCKADDR_AT ServerAddr; 109 UCHAR Reserved[PAP_UNUSED_STATUS_BYTES]; 110 UCHAR ServerStatus[MAX_PAP_STATUS_SIZE+1]; 111 } WSH_PAP_GET_SERVER_STATUS,*PWSH_PAP_GET_SERVER_STATUS; 112 113 #endif 114