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

108 lines
3.2 KiB
C

/*******************************************************************
* Pilot Software
*
* Copyright(c) 1995, Palm Computing Inc., All Rights Reserved
*
*-------------------------------------------------------------------
* FileName:
* CMCommon.h
*
* Description:
* Connection Management Protocol common definitions.
*
* History:
* 9/14/95 vmk Created by Vitaly Marty Kruglikov
*
*******************************************************************/
#ifndef __CMCOMMON_H__
#define __CMCOMMON_H__
#if EMULATION_LEVEL == 1 // EMULATION_WINDOWS
// Pilot common definitions
#include "Common.h"
#else // EMULATION_LEVEL != EMULATION_WINDOWS
// Pilot common definitions
#include <Common.h>
#endif // EMULATION_LEVEL == EMULATION_WINDOWS
#if EMULATION_WINDOWS != 1
LOGIC ERROR
#endif
/********************************************************************
* CMP Packet Format
********************************************************************/
// The CMP packets are used for transmitting data for the Pilot CMP protocol layer.
// The structure of the CMP packet is built into the data part of the SLP packet and is,
// therefore, constrained by the SLP packet data size limitations.
// Packet type values used in the CMP packet body "type" field:
//
typedef enum CmpType {
cmpWakeup = 1, // CMP Wakeup packet sent from server to client
cmpInit, // CMP Init packet sent from client to server
cmpAbort // CMP Abort packet sent from client to server
} CmpType;
// cmpInit and cmpWakeup packet body structure:
//
typedef struct CmpBodyType {
Byte type; // CMP packet type
Byte flags; // in cmpInit packets: indicates which values were adjusted by
// the client(defined below); in cmpWakeup pakcets: null;
// in cmpAbort packets: reason for abort.
DWord commVersion; // in cmpWakeup: server comm software version number;
// in cmpInit: client comm version
DWord baudRate; // in cmpWakeup: max server baud rate;
// in cmpInit packets: the prescribed baud rate
} CmpBodyType;
typedef CmpBodyType* CmpBodyPtr;
// Flags used in the packet body "flags" field of cmpInit
// packets. These values are additive in the sense that they can be
// added or or'ed to form a composite value:
#define cmpInitFlagChangeBaudRate 0x80 // signals that the baud rate was adjusted by the client
// Flags used in the packet body "flags" field of cmpAbort packets.
// These values are additive in the sense that they can be
// added or or'ed to form a composite value:
#define cmpAbortFlagVersionError 0x80 // signals incompatible comm versions
/********************************************************************
* CMP Protocol Parameters
********************************************************************/
// This transaction id is used by cmpWakeup packets. cmpInit and cmpAbort
// packets MUST use a different transaction id.
//
#define cmpWakeupTransactionID 0xFF
// This is the baud rate at which CMP connections are initiated
//
#define cmpInitialBaudRate 9600L
// This is the time limit for trying to initiate a connection
//
#define cmpMaxInitiateSec 20
#endif // __CMCOMMON_H__