Buffer Handling; Figure 5: Driver Internal Buffer Handling - Siemens 7 Developer's Manual

Multiplexer driver
Hide thumbs Also See for 7:
Table of Contents

Advertisement

Multiplexer Driver Developer's Guide

7.3 Buffer Handling

7.3
Buffer Handling
SerMux
SerPortN
Channel number
Priority with MaxSequence
Timeouts (Request Timeouts and
Scanning Timeouts)
Statistics
V24 Status from itself and the
Modem
Handshake Status
Current Read and Write Status
Circular Buffer Params
ScanSendRequest
Timer functions:
WrTimer()
OnTimerSerPort0()
OnTimerSerPort()
Control Timeouts for Send and Receive Queue Requests for
repeating Control Commands and Timeouts for scanning the
Escape Sequence
Mux_Drv_DevGuide_v07
Confidential / Released
Mulitplexer Control Port 0
SerPort 0
RCV
Send
Queue
Queue
Special control functions:
Requests
Requests
EstablishDLC
ReleaseDLC
CloseDown
Circular
Circular
SetModemStatus
buffer
buffer
SendVersionCommand
Send
RCV
Send function:
while(GetWriteBuffer) {
SerPort=GetNextSerPort();
SerPort->GetFrame();
SubmitWriteBuffer();
}
WrGetWriteBuffer(void *Buffer,ULONG &Length);
WrSubmitWriteBuffer(void *Buffer,ULONG
Length);
WrWriteComplete();
WrReturnWriteBuffer();
Write Buffer
Pool

Figure 5: Driver internal buffer handling

Page 29 of 36
ConfirmCommand
Buffer
if receive a Control Command
Circular
buffer
Send
CommandBuffer
GetFrameBufferPort0()
SerPort0IndicateFrame()
Frame Assembly and check
state machine Demux
IndicateRead {
ProcessData(); // check frame, crc
SerPortIndicateFrame()
// indicate frame to a SerPort instance
}
void WrIndicateReadBuffer(void *Buffer,ULONG Length);
Read Buffer
Pool
s
Wrapper
2006-9-27

Advertisement

Table of Contents
loading

Table of Contents