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 >
Wrap
C/C++ Source or Header
|
1997-07-23
|
6KB
|
198 lines
/*
* C/C++ Run Time Library - Version 6.5
*
* Copyright (c) 1994 by Borland International
* All Rights Reserved.
*
*/
#ifndef _ATALKWSH_
#define _ATALKWSH_
#define __ATALKWSH_H
//
// 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
{
#if defined(_ANONYMOUS_STRUCT)
struct
{
USHORT Network;
UCHAR Node;
UCHAR Socket;
};
#endif
struct
{
USHORT Network;
UCHAR Node;
UCHAR Socket;
} u;
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_