PAM Programming Manual

Link-Level Programming Examples
PAM Programming Manual142482
B-31
Building an Aggregate SDU
Build_Aggr_SDU := ( data_offset_b + current_user_data_size_B );
END;
(Sending the Aggregate SDU) SUBHEAD
Sending the
Aggregate SDU
The application must provide a procedure for sending an aggregate SDU to a
PORT.
?PAGE ’PROCEDURE: Send_’
{------------------------------------------------------------------
PROCEDURE: Send
------------------------------------------------------------------}
PROCEDURE Send_ ( buffer_lst_ndx : LONGINT );
VAR
out_len : INTEGER;
BEGIN
buffer_lst[ buffer_lst_ndx ].in_use_flag := True;
buffer_lst[ buffer_lst_ndx ].test_char := test_char;
buffer_lst[ buffer_lst_ndx ].user_data_size_b :=
current_user_data_size_b;
out_len := Build_Aggr_SDU
( buffer_lst [ buffer_lst_ndx ].buffer );
buf_addr := XAddr ( buffer_lst [ buffer_lst_ndx ].buffer );
cc := WriteX ( L2SAP_file_num,
buf_addr,
out_len,
{ count written },
buffer_lst_ndx );
IF ( cc <> OK_Condition ) THEN
BEGIN
cc := FileInfo ( L2SAP_file_num, file_error );
WriteLn ( Output, ’Write error: ’, file_error:4 );
AbEnd_;
END;
END;
{------------------- End of Send_ procedure ----------------------}