PAM Programming Manual
Link-Level Programming Examples
PAM Programming Manual—142482
B-18
Sending the Aggregate SDU
Rsp_Flag,
(char *)Foreign_Addr,
(int * )&data_offset_b,
Current_User_Data_Size_B );
if ( frmt_error != zl2s_err_frmt_ok )
{
fprintf(stdout, “SDU Hdr Error:%d\n “, frmt_error);
exit(Abend_exit);
};
for (count = 1;
count <= Current_User_Data_Size_B; count++)
Aggr_SDU_buf [ data_offset_b + count ] = test_char;
};
return ( data_offset_b + Current_User_Data_Size_B );
}
Sending the Aggregate SDU
The application must provide a procedure for sending an aggregate SDU to a PORT.
#pragma page “PROCEDURE: Send_”
/* ----------------------------------------------------------------
PROCEDURE: Send
---------------------------------------------------------------- */
void Send_ ( buffer_lst_ndx )
long buffer_lst_ndx;
{
int file_error;
int out_len;
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;
out_len = Build_Aggr_SDU ( (char *)
& buffer_lst[ buffer_lst_ndx ].buffer );
cc = WRITEX ( L2SAP_file_num,
(char *)&buffer_lst [ buffer_lst_ndx ].buffer,
out_len,
,
(int *)&buffer_lst_ndx );
if (cc != condition_ok)
{
FILEINFO ( L2SAP_file_num, (int *)&file_error );
fprintf(stdout, “WRITE error: %d\n”, file_error);
exit(Abend_exit);
};
}
/* ------------------ End of Send_ procedure ------------------- */