⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ecb.h

📁 开放源码的编译器open watcom 1.6.0版的源代码
💻 H
字号:
#ifndef _ECB_H_F39997A6_88FC_434B_B339_554BE343B3E8
#define _ECB_H_F39997A6_88FC_434B_B339_554BE343B3E8
/****************************************************************************
*
*                            Open Watcom Project
*
*    Portions Copyright (c) 1983-2002 Sybase, Inc. All Rights Reserved.
*    Portions Copyright (c) 1989-2002 Novell, Inc.  All Rights Reserved.                      
*
*  ========================================================================
*
*    This file contains Original Code and/or Modifications of Original
*    Code as defined in and that are subject to the Sybase Open Watcom
*    Public License version 1.0 (the 'License'). You may not use this file
*    except in compliance with the License. BY USING THIS FILE YOU AGREE TO
*    ALL TERMS AND CONDITIONS OF THE LICENSE. A copy of the License is
*    provided with the Original Code and Modifications, and is also
*    available at www.sybase.com/developer/opensource.
*
*    The Original Code and all software distributed under the License are
*    distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
*    EXPRESS OR IMPLIED, AND SYBASE AND ALL CONTRIBUTORS HEREBY DISCLAIM
*    ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF
*    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR
*    NON-INFRINGEMENT. Please see the License for the specific language
*    governing rights and limitations under the License.
*
*  ========================================================================
*
*   This header file was generated for the OpenWatcom project by Carl Young
*       carl.young@keycomm.co.uk
*   Any problems or updates required, please either contact the author or
*   the OpenWatcom contributors forums. 
*       http://www.openwatcom.com/
*
* Description:  Defines Netware's low level ECB (Event Control Blocks) and
*               IPX/SPX structures.
*
****************************************************************************/

#include <ownwsupp.h>

struct ResourceTagStructure;

#pragma pack (push, 1)

typedef struct IPXAddress
{
    BYTE        network[4];     /* high-low */
    BYTE        node[6];        /* high-low */
    BYTE        socket[2];      /* high-low */
} IPXAddress;

typedef struct IPXHeader
{
    WORD        checkSum;       /* high-low */
    WORD        length;         /* high-low */
    BYTE        transportControl;
    BYTE        packetType;
    IPXAddress  destination;
    IPXAddress  source;
} IPXHeader;

typedef struct SPXHeader
{
    WORD        checksum;
    WORD        length;                 /* high-low*/
    BYTE        transportControl;
    BYTE        packetType;
    IPXAddress  destination;
    IPXAddress  source;
    BYTE        connectionControl;      /* bit flags */
    BYTE        dataStreamType;
    WORD        sourceConnectionID;     /* high-low unsigned */
    WORD        destConnectionID;       /* high-low unsigned */
    WORD        sequenceNumber;         /* high-low unsigned */
    WORD        acknowledgeNumber;      /* high-low unsigned */
    WORD        allocationNumber;       /* high-low unsigned */
} SPXHeader;

typedef struct ECBFragment {
    void     *address;
    LONG     size;                      /* low-high */
} ECBFragment;

typedef void (*ECB_ESRFunc)();

typedef struct ECB {
    void        *fLinkAddress;
    void        *bLinkAddress;
    WORD        status;
    ECB_ESRFunc ESRAddress;
    WORD        stackID;
    BYTE        protocolID[6];
    LONG        boardNumber;
    BYTE        immediateAddress[6];    /* high-low */
    BYTE        driverWorkspace[4];     /* N/A */
    LONG        ESREBXValue;
    WORD        socketNumber;           /* high-low */
    WORD        protocolWorkspace;      /* Session ID */
    LONG        packetLength;
    LONG        fragmentCount;          /* low-high */
    ECBFragment fragmentDescriptor[2];
} ECB;

/* This structure is idendical to the C structure TimeCallBackStructure */
/* CSL_TimeCallBackStructure is defined here so that CSL applications   */
/* do not need to include the C header file advanced.h, as the file     */
/* advanced.h may conflict with NetWare include files that some CSL     */
/* applications are using                                               */
typedef struct TimeCallBackStructure
   {
   struct TimeCallBackStructure *	TLink; /* Set by CScheduleInterruptTimeCallBack */
   void								(*TCallBackProcedure)(	LONG parameter);              /* Set to function to call; unchanged */
   LONG								TCallBackParameter;           /* Set to value to pass to func; unchanged */
   LONG								TCallBackWaitTime;            /* Set to # ticks to wait; unchanged; 
																		looked at only when call is made */
   //LONG								TResourceTag;                 /* Set to resource tag; unchanged */
   struct ResourceTagStructure *	TResourceTag;				  /* Set to resource tag; unchanged */
   LONG								TWorkWakeUpTime;              /* Set by CScheduleInterruptTimeCallBack */
   LONG								TSignature;                   /* Set by CScheduleInterruptTimeCallBack */
}TimeCallBackStructure;

#define TCallBackEBXParameter	TCallBackParameter
#define	TimerDataStructure		TimeCallBackStructure

#pragma pack (pop)

CPP_START

LONG CIPXCancelECB(
		void *eventControlBlock);

LONG CIPXCheckForSocket(
		LONG socketNumber);

LONG CIPXCloseSocket(
		LONG socketNumber);

LONG CIPXCountReceiveECBs(
		LONG socketNumber);

LONG CIPXGetECB(
		LONG socketNumber);

void CIPXGetInternetworkAddress(
		BYTE *networkAddress);

LONG CIPXGetLocalTarget(
		BYTE *networkAddress,
		BYTE *immediateAddress,
		LONG *transportTime);

LONG CIPXListen(
		void *eventControlBlock);

LONG CIPXOpenSocket(
		LONG *socketNumber);

LONG CIPXSendPacket(
		void *eventControlBlock);

LONG CIPXSendPacketSkipChkSum(
		void *eventControlBlock);

LONG CSPXAbortConnection(
		LONG sessionID);

LONG CSPXCancelSessionListen(
		void *eventControlBlock);

LONG CSPXCheckInstallation(
		WORD *version,
		LONG *maxConnections);

LONG CSPXEstablishConnection(
		BYTE retryCount,
		BYTE watchDog,
		LONG *sessionID,
		void *eventControlBlock);

LONG CSPXGetConnectionStatus(
		LONG sessionID,
		void *buffer);

LONG CSPXListenForConnectedPacket(
		void *eventControlBlock,
		LONG sessionID);

LONG CSPXListenForConnection(
		BYTE retryCount,
		BYTE watchDog,
		LONG *sessionID,
		void *eventControlBlock);

LONG CSPXListenForSequencedPacket(
		void *eventControlBlock);

LONG CSPXSendSequencedPacket(
		LONG sessionID,
		void *eventControlBlock);

LONG CSPXTerminateConnection(
		LONG sessionID,
		void *eventControlBlock);

LONG CIPXOpenSocketRTag( 
		LONG	*	socket, 
		struct ResourceTagStructure * pTag
		);

void CScheduleInterruptTimeCallBack(
		TimeCallBackStructure *TimerNode);

void CCancelInterruptTimeCallBack(
		TimeCallBackStructure *TimerNode);

CPP_END

#endif /* _ECB_H_F39997A6_88FC_434B_B339_554BE343B3E8 */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -