Multiplexer Driver Developer’s Guide

7.3 Buffer Handling

s

7.3Buffer Handling

SerMux

SerPortN

Mulitplexer Control Port 0

Channel number

 

 

 

 

Send

 

RCV

 

Priority with MaxSequence

 

 

Timeouts (Request Timeouts and

Queue

 

Queue

 

Scanning Timeouts)

Requests

 

Requests

 

Statistics

 

 

 

 

V24 Status from itself and the

 

 

 

 

Modem

Circular

 

Circular

 

Handshake Status

 

 

Current Read and Write Status

buffer

 

buffer

 

Circular Buffer Params

Send

 

RCV

 

ScanSendRequest

 

 

 

 

 

 

 

 

 

SerPort 0

Special control functions:

EstablishDLC

ReleaseDLC

CloseDown

SetModemStatus

SendVersionCommand

ConfirmCommand

Buffer

Circular

buffer

Send

CommandBuffer

GetFrameBufferPort0()

if receive a Control Command

SerPort0IndicateFrame()

Timer functions:

WrTimer()

OnTimerSerPort0()

OnTimerSerPort()

Control Timeouts for Send and Receive Queue Requests for repeating Control Commands and Timeouts for scanning the Escape Sequence

Send function:

while(GetWriteBuffer) { SerPort=GetNextSerPort(); SerPort->GetFrame(); SubmitWriteBuffer();

}

Frame Assembly and check

state machine Demux

IndicateRead {

ProcessData(); // check frame, crc SerPortIndicateFrame()

//indicate frame to a SerPort instance

}

WrGetWriteBuffer(void *Buffer,ULONG &Length);

void WrIndicateReadBuffer(void *Buffer,ULONG Length);

WrSubmitWriteBuffer(void *Buffer,ULONG

 

Length);

 

WrWriteComplete();

 

WrReturnWriteBuffer();

 

Write Buffer

Read Buffer

Pool

Pool

Wrapper

Figure 5: Driver internal buffer handling

Mux_Drv_DevGuide_v07

Page 29 of 36

2006-9-27

Confidential / Released

 

 

Page 29
Image 29
Siemens 7 manual Buffer Handling