PAM Programming Manual

Link-Level Programming Examples
PAM Programming Manual142482
B-19
Receiving an Aggregate SDU
Receiving an Aggregate SDU
The application must also provide a procedure for receiving aggregate SDUs from a
PORT.
#pragma page “PROCEDURE: Receive_”
/* ----------------------------------------------------------------
PROCEDURE: Receive_
---------------------------------------------------------------- */
void Receive_ ( buffer_lst_ndx )
long int buffer_lst_ndx;
{
int file_error;
int cc;
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;
cc = READX ( L2SAP_file_num,
(char *)(&buffer_lst[ buffer_lst_ndx ].buffer),
Max_Req_Size,
,
(int *)(&buffer_lst_ndx) );
if (cc != condition_ok)
{
FILEINFO ( L2SAP_file_num, (int *)(&file_error ) );
fprintf(stdout,”Read error: %d\n”, file_error);
exit(Abend_exit);
};
}
/* -------------------- End of Receive_ procedure -------------- */
Opening a PORT
The application must also provide a procedure for opening PORTs.
#pragma page “PROCEDURE: Open_”
/* ----------------------------------------------------------------
PROCEDURE: Open_
---------------------------------------------------------------- */
void Open_()
{
int file_error;
int cc;
cc = OPEN ( (int *)L2SAP_file_name,
&L2SAP_file_num, NoWait_Depth );
if (cc != condition_ok)
{
FILEINFO ( L2SAP_file_num, (int *)&file_error );
fprintf(stdout, “Open failed - Error: %d\n”, file_error);
exit(Abend_exit);
};
cc = SETMODE ( L2SAP_file_num, 30, 1, 0 );
if (cc != condition_ok)
{