|
|
/***********************************************************************
* INTEL Corporation Proprietary Information * * * * This listing is supplied under the terms of a license agreement * * with INTEL Corporation and may not be copied nor disclosed except * * in accordance with the terms of that agreement. * * * * Copyright (c) 1996 Intel Corporation. All rights reserved. * ***********************************************************************/
#ifndef __CPLS_H
#define __CPLS_H
#include <limits.h>
#ifdef WIN32
#include <precomp.h>
#include "port32.h"
#endif
#ifdef _WINDOWS
#ifndef _MSWINDOWS_
#define _MSWINDOWS_
#endif
#endif
typedef int HLOG;
#ifndef FALSE
#define FALSE 0
#endif
#ifndef TRUE
#define TRUE 1
#endif
#ifdef WIN32
#ifdef BUILDING_CPLS_DLL
#define CPLS_FAREXPORT __declspec(dllexport)
#define CPLS_EXPORT __declspec(dllexport)
#else
#define CPLS_FAREXPORT __declspec(dllimport)
#define CPLS_EXPORT __declspec(dllimport)
#endif
#ifndef EXPORT
#define EXPORT
#endif // EXPORT
#elif _MSWINDOWS_
#ifndef CALLBACK
#define CALLBACK _far _pascal
#endif
#ifdef BUILDING_CPLS_DLL
#define CPLS_FAREXPORT _far _export _pascal
#define CPLS_EXPORT _export
#else
#define CPLS_FAREXPORT _far _pascal
#define CPLS_EXPORT
#endif
#ifndef EXPORT
#define EXPORT _export
#endif // EXPORT
#ifndef FAR
#define FAR _far
#endif
#else
#ifndef CALLBACK
#define CALLBACK
#endif
#define CPLS_FAREXPORT
#ifndef EXPORT
#define EXPORT
#endif
#ifndef FAR
#define FAR
#endif
#endif // _MSWINDOWS_
typedef int BOOL; typedef unsigned char BYTE; typedef unsigned short WORD; typedef const char FAR* CPLProtocol; typedef int CPLProtocolID;
#define CONFIG_FILENAME "CPLS.INI" // internal use only
// Pre-defined event and event category constants.
//
#define String_Event USHRT_MAX
#define Binary_Event USHRT_MAX-1
#define String_Category USHRT_MAX
#define Binary_Category USHRT_MAX-1
#ifdef __cplusplus
class CProtocolLog; class CProtocolEvent; typedef CProtocolEvent FAR* (CALLBACK *CPLEventGenesisProc)( BYTE FAR* pObject, // in
CProtocolLog FAR* pSourceLog, // in
BOOL bCopyObject ); // in
extern "C"{
// This first one is only for C++ clients...
void CPLS_FAREXPORT CPLRegisterEventGenesisProc( CPLProtocolID ProtocolID, CPLEventGenesisProc pfnGenesisProc );
#endif // __cplusplus
// Possible file mode values for CPLOpen().
//
#define CPLS_CREATE 0 // Will overwrite an existing file.
#define CPLS_APPEND 1 // Will append to an existing file, or create a new one.
/////////////////////////////////////////////////////////////////////////////
// PROTOCOL LOGGING FUNCTIONS
//
// Here is the sequence of functions to call for use of a protocol logger:
// 1) CPLInitialize() or CPLINTInitialize()
// 2) CPLOpen()
// 3) CPLOutput*() or CPLINTOutput*() -- repeat as necessary
// 4) CPLClose()
// 5) CPLUninitialize()
//
// CPLInitialize() - Creates a protocol logger.
// CPLINTInitialize() - The version of CPLInitialize() which must be called
// by clients which will be calling the CPLINTOuptut*() functions within
// interrupt context. CPLINTInitialize may not be called within
// interrupt context.
// CPLUninitialize() - Releases a protocol logger. This must be called for
// every initialized logger before shutdown in order to free associated
// memory.
// CPLOpen() - Associates a protocol logger with a file (output stream).
// CPLClose() - Releases a logger's usage of a stream. This function does
// not block. A "close" event is placed on the event queue of the
// stream. Release of the stream occurs when this "close" event is
// serviced.
// CPLOutputDebug() -
// CPLINTOutputDebug() - The version of CPLOutputDebug() safely callable
// within interrupt context.
// CPLOutputAscii() -
// CPLINTOutputAscii() - The version of CPLOutputAscii() safely callable
// within interrupt context.
// CPLOutput() -
// CPLINTOutput() - The version of CPLOutput() safely callable
// within interrupt context.
// CPLFlush() - Flushes all events to the stream of the specified logger.
// Blocks until the flush is complete.
// CPLINTFlush() - The version of CPLFlush() safely callable within
// interrupt context. This version does not block. A "flush" message
// is sent to CPLS. The flush occurs when this flush message is
// serviced.
// CPLFlushAndClose() -
// CPLEnable() - Enables or disables protocol logging at runtime.
// CPLEnableAsync() - Sets synchronous or asynchronous logging output mode.
// CURRENTLY NOT SUPPORTED.
// CPLLogAscii() -
// CPLINTLogAscii() - The version of CPLLogAscii() safely callable
// within interrupt context.
//
// Only these functions may be called from within interrupt context:
// CPLINTOutputDebug()
// CPLINTOutputAscii()
// CPLINTOutput()
// CPLINTFlush()
// CPLEnable()
// CPLINTLogAscii()
/////////////////////////////////////////////////////////////////////////////
CPLProtocolID CPLS_FAREXPORT WINAPI CPLInitialize( CPLProtocol Protocol );
CPLProtocolID CPLS_FAREXPORT CPLINTInitialize( CPLProtocol Protocol );
int CPLS_FAREXPORT WINAPI CPLUninitialize( HLOG hlog );
HLOG CPLS_FAREXPORT WINAPI CPLOpen( CPLProtocolID ProtocolID, const char FAR* szName, int FileMode ); HLOG CPLS_FAREXPORT CPLINTOpen( CPLProtocolID ProtocolID, const char FAR* szName, int FileMode ); int CPLS_FAREXPORT WINAPI CPLClose( HLOG hLog );
int CPLS_FAREXPORT CPLOutputDebug( HLOG hLog, const char FAR* szString ); int CPLS_FAREXPORT CPLINTOutputDebug( HLOG hLog, const char FAR* szString );
int CPLS_FAREXPORT CPLOutputAscii( HLOG hLog, WORD EventID, const char FAR* szEvent, BYTE FAR* pData, int nDataBytes, WORD EventCategory, unsigned long UserData ); int CPLS_FAREXPORT CPLINTOutputAscii( HLOG hLog, WORD EventID, const char FAR* szEvent, BYTE FAR* pData, int nDataBytes, WORD EventCategory, unsigned long UserData );
int CPLS_FAREXPORT WINAPI CPLOutput( HLOG hLog, BYTE FAR* pData, int nDataBytes, unsigned long UserData ); int CPLS_FAREXPORT CPLINTOutput( HLOG hLog, BYTE FAR* pData, int nDataBytes, unsigned long UserData );
int CPLS_FAREXPORT CPLFlush( HLOG hLog ); int CPLS_FAREXPORT CPLINTFlush( HLOG hLog ); int CPLS_FAREXPORT CPLFlushAndClose( HLOG hLog );
void CPLS_FAREXPORT CPLEnable( BOOL bEnable ); //void CPLS_FAREXPORT CPLEnableAsync( BOOL bEnable );
#ifdef __cplusplus
}; // extern "C"
#endif // __cplusplus
#define CPLLogAscii( hLog, \
EventID, \ pData, \ nDataBytes, \ EventCategory, \ UserData ) \ CPLOutputAscii( hLog, EventID, #EventID, pData, nDataBytes, EventCategory, UserData )
#define CPLINTLogAscii( hLog, \
EventID, \ pData, \ nDataBytes, \ EventCategory, \ UserData ) \ CPLINTOutputAscii( hLog, EventID, #EventID, pData, nDataBytes, EventCategory, UserData ) #endif // __CPLS_H
|