home *** CD-ROM | disk | FTP | other *** search
/ C Programming Starter Kit 2.0 / SamsPublishing-CProgrammingStarterKit-v2.0-Win31.iso / bc45 / geninc32.pak / ATALKWSH.H next >
C/C++ Source or Header  |  1997-07-23  |  6KB  |  198 lines

  1.  
  2. /*
  3.  *      C/C++ Run Time Library - Version 6.5
  4.  *
  5.  *      Copyright (c) 1994 by Borland International
  6.  *      All Rights Reserved.
  7.  *
  8.  */
  9.  
  10. #ifndef _ATALKWSH_
  11. #define _ATALKWSH_
  12. #define __ATALKWSH_H
  13.  
  14. //
  15. //  All protocol types should be specified in the Decimal base
  16. //
  17.  
  18. #define DECIMAL_BASE                            10
  19.  
  20. //
  21. //  Protocol number 0 is invalid in the Appletalk case
  22. //
  23.  
  24. #define ATPROTO_BASE                            (1000 * AF_APPLETALK)
  25. #define SOL_APPLETALK                           (ATPROTO_BASE)
  26.  
  27. #define DDPPROTO_RTMP                           (ATPROTO_BASE + 1)
  28. #define DDPPROTO_NBP                            (ATPROTO_BASE + 2)
  29. #define DDPPROTO_ATP                            (ATPROTO_BASE + 3)
  30. #define DDPPROTO_AEP                            (ATPROTO_BASE + 4)
  31. #define DDPPROTO_RTMPRQ                         (ATPROTO_BASE + 5)
  32. #define DDPPROTO_ZIP                            (ATPROTO_BASE + 6)
  33. #define DDPPROTO_ADSP                           (ATPROTO_BASE + 7)
  34.  
  35. #define DDPPROTO_MAX                            (ATPROTO_BASE + 255)
  36.  
  37. //
  38. //  Define the higher layer appletalk protocol types
  39. //
  40.  
  41. #define ATPROTO_ADSP                    (DDPPROTO_MAX + 1)
  42. #define ATPROTO_ATP                     (DDPPROTO_MAX + 2)
  43. #define ATPROTO_ASP                     (DDPPROTO_MAX + 3)
  44. #define ATPROTO_PAP                     (DDPPROTO_MAX + 4)
  45.  
  46. #define SO_REGISTER_NAME                0xA000
  47. #define SO_DEREGISTER_NAME              0xA001
  48. #define SO_REMOVE_NAME                          SO_DEREGISTER_NAME
  49. #define SO_LOOKUP_NAME                  0xA002
  50. #define SO_CONFIRM_NAME                 0xA003
  51. #define SO_LOOKUP_MYZONE                        0xA004
  52. #define SO_GETMYZONE                            SO_LOOKUP_MYZONE
  53. #define SO_LOOKUP_ZONES                 0xA005
  54. #define SO_GETZONELIST                          SO_LOOKUP_ZONES
  55. #define SO_LOOKUP_ZONES_ON_ADAPTER      0xA006
  56. #define SO_GETLOCALZONES                        SO_LOOKUP_ZONES_ON_ADAPTER
  57. #define SO_LOOKUP_NETDEF_ON_ADAPTER     0xA007
  58. #define SO_GETNETINFO                           SO_LOOKUP_NETDEF_ON_ADAPTER
  59.  
  60. //
  61. //  PAP-specific options
  62. //
  63.  
  64. #define SO_PAP_SET_SERVER_STATUS        0xA007
  65. #define SO_PAP_GET_SERVER_STATUS        0xA008
  66. #define SO_PAP_PRIME_READ                       0xA009
  67.  
  68.  
  69. #define ATADDR_ANY                      0            // Dynamic socket (=0)
  70. #define ATADDR_BROADCAST                0xFF         // Broadcast node id (=ff)
  71.  
  72. //
  73. //      Define flags/error codes peculiar to Appletalk
  74. //
  75.  
  76. #define WSAEMSGPARTIAL                          (WSABASEERR+100)
  77.  
  78.  
  79. //      Maximum pap status size
  80. #define MAX_PAP_STATUS_SIZE                     255
  81. #define MIN_PAP_READ_BUF_SIZE           4096
  82.  
  83. //      These are the unused 4 bytes returned in the PAP status packet. If ever
  84. //      they are to be interpreted, they will be available.
  85. #define PAP_UNUSED_STATUS_BYTES         4
  86.  
  87.  
  88. //
  89. //  SOCKADDR_AT structure
  90. //
  91.  
  92. typedef struct sockaddr_at
  93. {
  94.     USHORT    sat_family;
  95.     USHORT    sat_net;
  96.     UCHAR     sat_node;
  97.     UCHAR     sat_socket;
  98. } SOCKADDR_AT, *PSOCKADDR_AT;
  99.  
  100.  
  101. //
  102. //      ***WARNING***
  103. //      This is defined to be the same as the ATALK ADDRESS defined in atalktdi.h
  104. //      Change this if the other changes.
  105. //
  106.  
  107. typedef union
  108. {
  109. #if defined(_ANONYMOUS_STRUCT)
  110.     struct
  111.     {
  112.         USHORT      Network;
  113.         UCHAR       Node;
  114.         UCHAR       Socket;
  115.     };
  116. #endif
  117.     struct
  118.     {
  119.         USHORT      Network;
  120.         UCHAR       Node;
  121.         UCHAR       Socket;
  122.     } u;
  123.     ULONG       Address;
  124. } WSH_ATALK_ADDRESS, *PWSH_ATALK_ADDRESS;
  125.  
  126. //
  127. //  Typedefs for the various options
  128. //
  129.  
  130. //
  131. //  ***WARNING***:
  132. //  This should be exactly the same as NBP_NAME defined in atalktdi.h
  133. //
  134.  
  135. #define MAX_ENTITY  32
  136. typedef struct
  137. {
  138.     CHAR    ObjectNameLen;
  139.     CHAR    ObjectName[MAX_ENTITY];
  140.     CHAR    TypeNameLen;
  141.     CHAR    TypeName[MAX_ENTITY];
  142.     CHAR    ZoneNameLen;
  143.     CHAR    ZoneName[MAX_ENTITY];
  144. } WSH_NBP_NAME, *PWSH_NBP_NAME;
  145.  
  146. typedef struct
  147. {
  148.         WSH_ATALK_ADDRESS               Address;
  149.         USHORT                                  Enumerator;
  150.         WSH_NBP_NAME                    NbpName;
  151. } WSH_NBP_TUPLE, *PWSH_NBP_TUPLE;
  152.  
  153. typedef WSH_NBP_NAME    WSH_REGISTER_NAME, *PWSH_REGISTER_NAME;
  154. typedef WSH_NBP_NAME    WSH_DEREGISTER_NAME, *PWSH_DEREGISTER_NAME;
  155. typedef WSH_NBP_NAME    WSH_REMOVE_NAME, *PWSH_REMOVE_NAME;
  156.  
  157. typedef struct _WSH_LOOKUP_ZONES
  158. {
  159.     ULONG   NoZones;
  160.  
  161.     //
  162.     //  CHAR    Zones[] - null separated zones
  163.     //
  164.  
  165. } WSH_LOOKUP_ZONES, *PWSH_LOOKUP_ZONES;
  166.  
  167. typedef struct _WSH_LOOKUP_NETDEF_ON_ADAPTER
  168. {
  169.         USHORT  NetworkRangeLowerEnd;
  170.         USHORT  NetworkRangeUpperEnd;
  171.  
  172.         //      This will be followed by a null terminated ansi default zone.
  173.         //      PUCHAR  DefaultZone[]
  174.  
  175. } WSH_LOOKUP_NETDEF_ON_ADAPTER , *PWSH_LOOKUP_NETDEF_ON_ADAPTER;
  176.  
  177. typedef struct _WSH_LOOKUP_NAME
  178. {
  179.     WSH_NBP_TUPLE    LookupTuple;
  180.     ULONG   NoTuples;
  181.  
  182.     //
  183.     //  Array of NoTuple WSH_NBP_TUPLEs
  184.     //
  185.  
  186. } WSH_LOOKUP_NAME, *PWSH_LOOKUP_NAME;
  187.  
  188. typedef struct _WSH_PAP_GET_SERVER_STATUS
  189. {
  190.         SOCKADDR_AT                     ServerAddr;
  191.         UCHAR                           Reserved[PAP_UNUSED_STATUS_BYTES];
  192.         UCHAR                           ServerStatus[MAX_PAP_STATUS_SIZE+1];
  193.  
  194. } WSH_PAP_GET_SERVER_STATUS, *PWSH_PAP_GET_SERVER_STATUS;
  195.  
  196. #endif  // _ATALKWSH_
  197.  
  198.