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 ------------------- */










