palm-os-sdk/sdk-2/include/Core/System/SerialLinkPrv.h
2016-08-25 07:53:48 -03:00

82 lines
2.4 KiB
C

/*******************************************************************
* Pilot Software
*
* Copyright (c) 1994-1997, Palm Computing Inc., All Rights Reserved
*
*-------------------------------------------------------------------
* FileName:
* SerialLinkPrv.c
*
* Description:
* Private Serial Link includes
*
* History:
* 2/6/95 replaces DSerial.h from Debugger
*
*******************************************************************/
#ifdef NON_PORTABLE
#ifndef __SERIALLINKPRV_H
#define __SERIALLINKPRV_H
#include <SerialLinkMgr.h>
//*************************************************************************
// Misc Constants
//*************************************************************************
// Default timeout value once into receiving a packet in ticks
#define slkDefaultInPktTimeout (sysTicksPerSecond*2)
/*******************************************************************
* Serial Link Globals
*
*******************************************************************/
#define slkMaxSockets 5 // max # of sockets
#define slkMaxRefNums slkMaxSockets // max # of refNums in use at any one time
#define slkAnySocket 0xFF
#define slkEmptyRefNum 0xFF // used to track empty refInfos
// We keep an array of these (slkMaxSockets in size) to track which
// librarie's we've received packet headers for. Since we can have up
// to slkMaxSockets unique refNums in use at any one time, we must make
// the array at least that size.
typedef struct SlkRefInfoType {
Byte refNum; // refNum of library, or 0xFF if empty
SByte destID; // dest socketID, or -1 if none
} SlkRefInfoType;
typedef SlkRefInfoType* SlkRefInfoPtr;
typedef struct SlkGlobalsType {
UInt openCount;
Byte socketRefNum[slkMaxSockets];
Boolean socketOpen[slkMaxSockets];
SlkSocketListenPtr socketListenP[slkMaxSockets];
Word socketTimeout[slkMaxSockets]; // inPacket timeout
// We can keep track of packets coming in for up to slkMaxRefNums libraries.
// This array holds the destination socket ID for packets received from
// each library.
SlkRefInfoType refInfo[slkMaxRefNums];
Byte transId; // next transaction ID
DWord xmitSemaphoreID; // Semaphore ID for transmitting
Word numReceived; // # of packets received since serial link
// was opened.
} SlkGlobalsType;
typedef SlkGlobalsType* SlkGlobalsPtr;
#endif //__SERIALLINKPRV_H
#endif //NON_PORTABLE