summaryrefslogtreecommitdiffstats
path: root/public/sdk/inc/atalkwsh.h
diff options
context:
space:
mode:
Diffstat (limited to 'public/sdk/inc/atalkwsh.h')
-rw-r--r--public/sdk/inc/atalkwsh.h197
1 files changed, 197 insertions, 0 deletions
diff --git a/public/sdk/inc/atalkwsh.h b/public/sdk/inc/atalkwsh.h
new file mode 100644
index 000000000..23f034762
--- /dev/null
+++ b/public/sdk/inc/atalkwsh.h
@@ -0,0 +1,197 @@
+/*++
+
+Copyright (c) 1992-1996 Microsoft Corporation
+
+Module Name:
+
+ wshatalk.h
+
+Abstract:
+
+ This is the header file for application using Windows Sockets for
+ Appletalk.
+
+Revision History:
+ 10 Jul 1992 Initial Version
+
+--*/
+
+#ifndef _ATALKWSH_
+#define _ATALKWSH_
+
+//
+// All protocol types should be specified in the Decimal base
+//
+
+#define DECIMAL_BASE 10
+
+//
+// Protocol number 0 is invalid in the Appletalk case
+//
+
+#define ATPROTO_BASE (1000 * AF_APPLETALK)
+#define SOL_APPLETALK (ATPROTO_BASE)
+
+#define DDPPROTO_RTMP (ATPROTO_BASE + 1)
+#define DDPPROTO_NBP (ATPROTO_BASE + 2)
+#define DDPPROTO_ATP (ATPROTO_BASE + 3)
+#define DDPPROTO_AEP (ATPROTO_BASE + 4)
+#define DDPPROTO_RTMPRQ (ATPROTO_BASE + 5)
+#define DDPPROTO_ZIP (ATPROTO_BASE + 6)
+#define DDPPROTO_ADSP (ATPROTO_BASE + 7)
+
+#define DDPPROTO_MAX (ATPROTO_BASE + 255)
+
+//
+// Define the higher layer appletalk protocol types
+//
+
+#define ATPROTO_ADSP (DDPPROTO_MAX + 1)
+#define ATPROTO_ATP (DDPPROTO_MAX + 2)
+#define ATPROTO_ASP (DDPPROTO_MAX + 3)
+#define ATPROTO_PAP (DDPPROTO_MAX + 4)
+
+#define SO_REGISTER_NAME 0xA000
+#define SO_DEREGISTER_NAME 0xA001
+#define SO_REMOVE_NAME SO_DEREGISTER_NAME
+#define SO_LOOKUP_NAME 0xA002
+#define SO_CONFIRM_NAME 0xA003
+#define SO_LOOKUP_MYZONE 0xA004
+#define SO_GETMYZONE SO_LOOKUP_MYZONE
+#define SO_LOOKUP_ZONES 0xA005
+#define SO_GETZONELIST SO_LOOKUP_ZONES
+#define SO_LOOKUP_ZONES_ON_ADAPTER 0xA006
+#define SO_GETLOCALZONES SO_LOOKUP_ZONES_ON_ADAPTER
+#define SO_LOOKUP_NETDEF_ON_ADAPTER 0xA007
+#define SO_GETNETINFO SO_LOOKUP_NETDEF_ON_ADAPTER
+
+//
+// PAP-specific options
+//
+
+#define SO_PAP_SET_SERVER_STATUS 0xA007
+#define SO_PAP_GET_SERVER_STATUS 0xA008
+#define SO_PAP_PRIME_READ 0xA009
+
+
+#define ATADDR_ANY 0 // Dynamic socket (=0)
+#define ATADDR_BROADCAST 0xFF // Broadcast node id (=ff)
+
+//
+// Define flags/error codes peculiar to Appletalk
+//
+
+#define WSAEMSGPARTIAL (WSABASEERR+100)
+
+
+// Maximum pap status size
+#define MAX_PAP_STATUS_SIZE 255
+#define MIN_PAP_READ_BUF_SIZE 4096
+
+// These are the unused 4 bytes returned in the PAP status packet. If ever
+// they are to be interpreted, they will be available.
+#define PAP_UNUSED_STATUS_BYTES 4
+
+
+//
+// SOCKADDR_AT structure
+//
+
+typedef struct sockaddr_at
+{
+ USHORT sat_family;
+ USHORT sat_net;
+ UCHAR sat_node;
+ UCHAR sat_socket;
+} SOCKADDR_AT, *PSOCKADDR_AT;
+
+
+//
+// ***WARNING***
+// This is defined to be the same as the ATALK ADDRESS defined in atalktdi.h
+// Change this if the other changes.
+//
+
+typedef union
+{
+ struct
+ {
+ USHORT Network;
+ UCHAR Node;
+ UCHAR Socket;
+ };
+ ULONG Address;
+} WSH_ATALK_ADDRESS, *PWSH_ATALK_ADDRESS;
+
+//
+// Typedefs for the various options
+//
+
+//
+// ***WARNING***:
+// This should be exactly the same as NBP_NAME defined in atalktdi.h
+//
+
+#define MAX_ENTITY 32
+typedef struct
+{
+ CHAR ObjectNameLen;
+ CHAR ObjectName[MAX_ENTITY];
+ CHAR TypeNameLen;
+ CHAR TypeName[MAX_ENTITY];
+ CHAR ZoneNameLen;
+ CHAR ZoneName[MAX_ENTITY];
+} WSH_NBP_NAME, *PWSH_NBP_NAME;
+
+typedef struct
+{
+ WSH_ATALK_ADDRESS Address;
+ USHORT Enumerator;
+ WSH_NBP_NAME NbpName;
+} WSH_NBP_TUPLE, *PWSH_NBP_TUPLE;
+
+typedef WSH_NBP_NAME WSH_REGISTER_NAME, *PWSH_REGISTER_NAME;
+typedef WSH_NBP_NAME WSH_DEREGISTER_NAME, *PWSH_DEREGISTER_NAME;
+typedef WSH_NBP_NAME WSH_REMOVE_NAME, *PWSH_REMOVE_NAME;
+
+typedef struct _WSH_LOOKUP_ZONES
+{
+ ULONG NoZones;
+
+ //
+ // CHAR Zones[] - null separated zones
+ //
+
+} WSH_LOOKUP_ZONES, *PWSH_LOOKUP_ZONES;
+
+typedef struct _WSH_LOOKUP_NETDEF_ON_ADAPTER
+{
+ USHORT NetworkRangeLowerEnd;
+ USHORT NetworkRangeUpperEnd;
+
+ // This will be followed by a null terminated ansi default zone.
+ // PUCHAR DefaultZone[]
+
+} WSH_LOOKUP_NETDEF_ON_ADAPTER , *PWSH_LOOKUP_NETDEF_ON_ADAPTER;
+
+typedef struct _WSH_LOOKUP_NAME
+{
+ WSH_NBP_TUPLE LookupTuple;
+ ULONG NoTuples;
+
+ //
+ // Array of NoTuple WSH_NBP_TUPLEs
+ //
+
+} WSH_LOOKUP_NAME, *PWSH_LOOKUP_NAME;
+
+typedef struct _WSH_PAP_GET_SERVER_STATUS
+{
+ SOCKADDR_AT ServerAddr;
+ UCHAR Reserved[PAP_UNUSED_STATUS_BYTES];
+ UCHAR ServerStatus[MAX_PAP_STATUS_SIZE+1];
+
+} WSH_PAP_GET_SERVER_STATUS, *PWSH_PAP_GET_SERVER_STATUS;
+
+#endif // _ATALKWSH_
+