Files
TeslaRel410/BORLAND/BC45/INCLUDE/ATALKWSH.H
T
CydandClaude Fable 5 63312e07f9 source410: literal 4.10 source reconstruction + BC++ 4.52 fleet toolchain archived
- BORLAND/: Borland C++ 4.52 (chosen over 4.5 by byte-match: CODE/RP/CW32.LIB
  is identical to 4.52's install lib). BCC32/TLINK32/TLIB/MAKE run natively on
  Win11; CODE/BT/OPT.MAK is the shipped BTL4OPT.EXE's exact flag recipe
  (extender = Borland PowerPack DPMI32, not Phar Lap TNT).
- restoration/source410/: the literal 1995-form reconstruction of the missing
  BT game source (never mixed into CODE/). Round 1-3 state:
  * 6 of 10 surviving original TUs COMPILE CLEAN under the period toolchain
    (BTMSSN, BTCNSL, BTSCNRL, BTTEAM, BTL4MODE, BTL4ARND) - first builds
    since 1996.
  * BT_L4/BTL4APP.CPP pilot reconstruction: 12/12 functions, Fail() lands on
    its binary-recorded line 400 exactly.
  * BT/BTCNSL.HPP: console wire IDs recovered from the binary's ctors
    (Killed=9, Damaged=10, ScoreUpdate=13, DeathWithoutHonor=15 [T1];
    TeamScore=12 flagged [T4]).
  * MUNGA/: 8 engine-header backfills back-dated from the BT412 WinTesla tree
    (VDATA numbering decomp-verified; AUDREND's OpenAL-era virtual removed -
    the period compiler is the drift detector).
  * Tooling: backdate.py (WinTesla->1995 header transform), compile410.sh
    (per-TU verification sweep under authentic OPT.MAK flags).
  * README: corrected roadmap - MECH.HPP is the capstone grown with the mech
    TU reconstructions; BTREG.CPP green = the header-family milestone.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 07:33:26 -05:00

198 lines
5.4 KiB
C++

/*
* 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_