📄 buff.h
字号:
//-----------------------------------------------------------------------------
// $Id: buff.h,v 1.0.0 2004/01/13
//-----------------------------------------------------------------------------
//
// ProfiM - PROFIBUS MASTER DRIVER FOR WINDOWS NT/2000
//
// Author:
// Pavel Trnka, CTU FEE
// trnkap@seznam.cz
// With help and advices from:
// Ing. Petr Smolik, CTU FEE
// Ing. Pavel Pisa, CTU FEE
// Ing. Pavel Burget, CTU FEE
//
//-----------------------------------------------------------------------------
//---------------------------------------------------------------------------
#ifndef buffH
#define buffH
#include "vardef.h"
//*****************************************************************************
//**
//** Request Buffer
//**
//*****************************************************************************
typedef struct
{
fdl_rb LowBuffer[RQ_BUFFER_SIZE], HighBuffer[RQ_BUFFER_SIZE];
// fdl_rb - Fieldbus Data Link Request Block
int LowFirst, LowLast;
int HighFirst, HighLast;
void * DeviceExtension;
} TRequestBuffer, *PTRequestBuffer;
void ReqB_Init( PTRequestBuffer ReqB, void *_DeviceExtension );
void ReqB_Close( PTRequestBuffer ReqB );
BOOLEAN ReqB_Empty( PTRequestBuffer ReqB );
BOOLEAN ReqB_Full( PTRequestBuffer ReqB, UBYTE priority );
BOOLEAN ReqB_LowEmpty( PTRequestBuffer ReqB );
BOOLEAN ReqB_HighEmpty( PTRequestBuffer ReqB );
int ReqB_LowCount( PTRequestBuffer ReqB );
int ReqB_HighCount( PTRequestBuffer ReqB );
void ReqB_Add( PTRequestBuffer ReqB, fdl_rb *rb );
//ResultHandle Add(PTRequestBuffer ReqB, fdl_rb *rb);
void ReqB_GetDeleteNextHigh( PTRequestBuffer ReqB, fdl_rb **rb );
void ReqB_GetDeleteNextLow( PTRequestBuffer ReqB, fdl_rb **rb );
//BOOLEAN ReqB_MarkRBforPendingISR( PTRequestBuffer ReqB, int HID, PIRP IPR );
//void ReqB_RemoveIRP( PTRequestBuffer ReqB, PIRP IRP );
//*****************************************************************************
//**
//** Result Buffer
//**
//*****************************************************************************
typedef struct
{
fdl_rb Buffer[RS_BUFFER_SIZE];
int First, Last;
void * DeviceExtension;
} TResultBuffer, *PTResultBuffer;
void ResB_Init ( PTResultBuffer ResB, void *_DeviceExtension );
void ResB_Close( PTResultBuffer ResB );
BOOLEAN ResB_Empty( PTResultBuffer ResB );
BOOLEAN ResB_Full ( PTResultBuffer ResB );
int ResB_Count( PTResultBuffer ResB );
void ResB_Add( PTResultBuffer ResB, fdl_rb *rb );
//ResultHandle Add(PTRequestBuffer ReqB, fdl_rb *rb);
BOOLEAN ResB_GetDeleteNext( PTResultBuffer ResB, fdl_rb **rb );
BOOLEAN ResB_GetByHID( PTResultBuffer ResB, fdl_rb **rb, int HID );
BOOLEAN ResB_DeleteByHID( PTResultBuffer ResB, int HID );
//*****************************************************************************
//**
//** Irp Buffer
//**
//*****************************************************************************
typedef struct
{
int HID[IRP_BUFFER_SIZE]; // Handle ID
int MID[IRP_BUFFER_SIZE]; // Messae ID
PIRP IRP[IRP_BUFFER_SIZE]; // I/O Request Packet
int First, Last;
void * DeviceExtension;
} TIrpBuffer, *PTIrpBuffer;
void IrpB_Init ( PTIrpBuffer IrpB, void *_DeviceExtension );
void IrpB_Close( PTIrpBuffer IrpB );
BOOLEAN IrpB_Empty( PTIrpBuffer IrpB );
BOOLEAN IrpB_Full( PTIrpBuffer IrpB );
void IrpB_Add( PTIrpBuffer IrpB, int _HID, int _MID, PIRP _IRP );
PIRP IrpB_GetFirstIrp( PTIrpBuffer IrpB, int _HID );
void IrpB_DeleteFirstIrp( PTIrpBuffer IrpB, int _HID );
PIRP IrpB_DeleteIrp( PTIrpBuffer IrpB, int _HID, int _MID );
void IrpB_Delete( PTIrpBuffer IrpB, int pos );
void IrpB_DeleteAllByHID( PTIrpBuffer IrpB, int _HID );
void IrpB_DeleteByIrp( PTIrpBuffer IrpB, PIRP _IRP );
//*****************************************************************************
//*****************************************************************************
//*****************************************************************************
//fce z Profim.c
void ResultAdded( void *DeviceExtension );
BOOLEAN MarkActualRequestforPendingISR( void *DeviceExtension,
int HID,
PIRP IRP );
void StoreIRPinRB( fdl_rb *rb, PIRP IRP );
int ReadHIDfromRB( fdl_rb *rb );
PIRP ReadIRPfromRB( fdl_rb *rb );
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -