typedef struct tagCUN4BIPR {
unsigned int Version; /* Structure version number */
unsigned int Length; /* Length of structure */
/* CCSID1 Info --------------- */
unsigned int CCSID1; /* CCSID1 */
struct {
char Res1[2]; /* Reserved */
short int CCSID1_ES_ID; /* Encoding Scheme ID */
char CCSID1_ES_Name[28]; /* Encoding Scheme Name */
} CCSID1_ES; /* CCSID1 Encoding Scheme info */
struct {
unsigned char CCSID1_ES_Size_Min; /* ES Size Min */
unsigned char CCSID1_ES_Size_Max; /* ES Size Max */
} CCSID1_ES_Size; /* Encoding scheme size */
char Res2[2]; /* Reserved */
char CCSID1_Description[64]; /* CCSID1 Description */
struct {
unsigned char CCSID1_Num_Subs_SBCS; /* Num of Subs for SBCS */
unsigned char CCSID1_Num_Subs_DBCS; /* Num of Subs for DBCS */
unsigned char CCSID1_Num_Subs_TBCS; /* Num of Subs for TBCS */
unsigned char CCSID1_Num_Subs_QBCS; /* Num of Subs for QBCS */
char Res3[4]; /* Reserved */
} CCSID1_Num_Subs; /* Num of Subs per Code Set */
struct {
struct {
char CCSID1_Sub_Char_SBCS_1[1];
char CCSID1_Sub_Char_SBCS_2[1];
} CCSID1_Sub_Char_SBCS; /* SBCS subs chars - right aligned */
struct {
char CCSID1_Sub_Char_DBCS_1[2];
char CCSID1_Sub_Char_DBCS_2[2];
} CCSID1_Sub_Char_DBCS; /* DBCS subs chars - right aligned */
struct {
char CCSID1_Sub_Char_TBCS_1[3];
char CCSID1_Sub_Char_TBCS_2[3];
} CCSID1_Sub_Char_TBCS; /* TBCS subs chars - right aligned */
struct {
char CCSID1_Sub_Char_QBCS_1[4];
char CCSID1_Sub_Char_QBCS_2[4];
} CCSID1_Sub_Char_QBCS; /* QBCS subs chars - right aligned */
char Res4[4]; /* Reserved */
} CCSID1_Sub_Char; /* Substitution characters per CS */
void * CCSID1_subCCSIDs_Info_Ptr ; /* Pointer to */
/* CUN4BIPR_subCCSIDs_Info (Optional) */
unsigned int CCSID1_subCCSIDs_Info_ALET; /* ALET for */
/* CCSID1_subCCSIDs_Info_Ptr */
unsigned char CCSID1_subCCSIDs_Info_Num ; /* Num of subCCSIDs */
char Res5[3]; /* Reserved */
/* CCSID2 Info --------------- */
unsigned int CCSID2; /* CCSID2 */
struct {
char Res1a[2]; /* Reserved */
short int CCSID2_ES_ID; /* Encoding Scheme ID */
char CCSID2_ES_Name[28]; /* Encoding Scheme Name */
} CCSID2_ES; /* CCSID2 Encoding Scheme info */
struct {
unsigned char CCSID2_ES_Size_Min; /* ES Size Min */
unsigned char CCSID2_ES_Size_Max; /* ES Size Max */
} CCSID2_ES_Size; /* Encoding scheme size */
char Res2a[2]; /* Reserved */
char CCSID2_Description[64]; /* CCSID2 Description */
struct {
unsigned char CCSID2_Num_Subs_SBCS; /* Num of Subs for SBCS */
unsigned char CCSID2_Num_Subs_DBCS; /* Num of Subs for DBCS */
unsigned char CCSID2_Num_Subs_TBCS; /* Num of Subs for TBCS */
unsigned char CCSID2_Num_Subs_QBCS; /* Num of Subs for QBCS */
char Res3a[4]; /* Reserved */
} CCSID2_Num_Subs; /* Num of Subs per Code Set */
struct {
struct {
char CCSID2_Sub_Char_SBCS_1[1];
char CCSID2_Sub_Char_SBCS_2[1];
} CCSID2_Sub_Char_SBCS; /* SBCS subs chars - right aligned */
struct {
char CCSID2_Sub_Char_DBCS_1[2];
char CCSID2_Sub_Char_DBCS_2[2];
} CCSID2_Sub_Char_DBCS; /* DBCS subs chars - right aligned */
struct {
char CCSID2_Sub_Char_TBCS_1[3];
char CCSID2_Sub_Char_TBCS_2[3];
} CCSID2_Sub_Char_TBCS; /* TBCS subs chars - right aligned */
struct {
char CCSID2_Sub_Char_QBCS_1[4];
char CCSID2_Sub_Char_QBCS_2[4];
} CCSID2_Sub_Char_QBCS; /* QBCS subs chars - right aligned */
char Res4a[4]; /* Reserved */
} CCSID2_Sub_Char; /* Substitution characters per CS */
void * CCSID2_subCCSIDs_Info_Ptr ; /* Pointer to */
/* CUN4BIPR_subCCSIDs_Info (Optional) */
unsigned int CCSID2_subCCSIDs_Info_ALET;/* ALET for */
/* CCSID2_subCCSIDs_Info_Ptr */
unsigned char CCSID2_subCCSIDs_Info_Num;/* Num of subCCSIDs */
char Res5a[3]; /* Reserved */
/* Conversion Info ----------- */
struct {
int CCSID1_Supported : 1, /* CCSID1 Supported: */
/* 0 - CCSID1 not supported */
/* 1 - CCSID1 supported */
/* Note. Meaningful if CCSID1 */
/* was provided only */
CCSID2_Supported : 1, /* CCSID2 Supported: */
/* 0 - CCSID2 not supported */
/* 1 - CCSID2 supported */
/* Note. Meaningful if CCSID2 */
/* was provided only */
Conversion_Supported : 1, /* Conversion From CCSID TO */
/* CCSID2 supported: */
/* 0 = No */
/* 1 = Yes */
/* Note. Meaningful in case that */
/* CCSID1 and CCSId2 are */
/* provided */
: 5; /* Reserved */
} Gen_Flags_Out; /* Out Flags-Set by the Service */
struct {
int Get_Tech_Supp_fCCSID2_tCCSID1 /* Get techniques supported from */
: 1, /* CCSID2 to CCSID1 */
/* 0 - Do not obtain techniques */
/* from CCSID2 to CCSID1 */
/* (default) */
/* 1 - Obtaint techniques */
/* from CCSID2 to CCSID1 */
: 7; /* Reserved */
} Gen_Flags_In; /* In Flags-Set by the Caller */
char Res6[6]; /* Reserved */
char Conv_Tech_fCCSID1_tCCSID2[8]; /* Conversion techniques sup- */
/* ported From CCSID1 To */
/* CCSID2 */
/* Note. Meaningful in case that */
/* Conversion_Supported is */
/* Turned ON */
char Conv_Tech_fCCSID2_tCCSID1[8]; /* Conversion techniques sup- */
/* ported From CCSID2 To */
/* CCSID1 */
/* Note. Meaningful in case that */
/* Conversion_Supported is */
/* Turned ON */
/* DDA Info ------------------ */
void * DDA_Buf_Ptr; /* Dynamic data area pointer */
unsigned int DDA_Buf_ALET; /* Dynamic data area ALET */
unsigned int DDA_Buf_Len; /* Dynamic data area length */
/* RC / RS */
struct {
int Return_Code; /* Return_Code */
int Reason_Code; /* Reason_Code */
} RC_RS; /* Return/Reason code */
/**********************************************************************************/
/* Additional information for Version 2 Parameter Area */
/**********************************************************************************/
char CCSID1_SUFFIX[2]; /* Suffix for CCSID1. The suffix */
/* for subCCSIDs are returned in */
/* subCCSIDs_info */
char CCSID2_SUFFIX[2]; /* Suffix for CCSID1. The suffix */
/* for subCCSIDs are returned in */
/* subCCSIDs_info */
unsigned char Conversion_Type; /* type of conversion for */
/* CCSID1 to CCSID2 */
/* 1 = direct conversion */
/* 2 = indirect conversion */
char Resi1[3]; /* Reserved */
void * CCSID1_CTLDEF_Ptr ; /* Pointer to CTLF (optional) */
unsigned int CCSID1_CTLDEF_ALET; /* ALET for CTLF_Ptr */
unsigned char CCSID1_CTLDEF_Num ; /* Num of entries in CTLF */
char Resi2[3]; /* Reserved */
void * CCSID2_CTLDEF_Ptr ; /* Pointer to CTLF */
unsigned int CCSID2_CTLDEF_ALET; /* ALET for CTLF_Ptr */
unsigned char CCSID2_CTLDEF_Num ; /* Num of entries in CTLF */
char Resi3[11]; /* Reserved */
} CUN4BIPR;
typedef struct tagCUN4BIPR_CTLF {
/* Control Function Definitions */
unsigned int CF_CCSID; /* CCSID or subCCSID */
char resCF1[4]; /* reserved */
struct { /* CF_DEFS */
unsigned char CF_SP_State; /* space character state */
unsigned char CF_SP_Num; /* number of space character */
short int CF_SP_Width; /* space character width */
struct { /* space character code point */
char CF_SP_2[2]; /* UCS-2: single wide space char */
struct { /* UCS-2: double wide space char */
char CF_SP_S2[1]; /* second single wide space char */
char CF_SP_S1[1]; /* first single wide space char */
} CF_SP_1; /* first double wide space char */
} CF_SP_Code;
unsigned char CF_SUB_State; /* sub character state */
unsigned char CF_SUB_Num; /* number of sub character */
short int CF_SUB_Width; /* sub character width */
struct { /* sub character code point */
char CF_SUB_2[2]; /* UCS-2: single wide sub char */
struct { /* UCS-2: double wide sub char */
char CF_SUB_S2[1]; /* second single wide sub char */
char CF_SUB_S1[1]; /* first single wide sub char */
} CF_SUB_1; /* first double wide sub char */
} CF_SUB_Code;
unsigned char CF_NL_State; /* New Line character state */
char resNL[1]; /* reserved */
short int CF_NL_Width; /* New Line character width */
char CF_NL_Code[4]; /* New Line character Code point */
unsigned char CF_LF_State; /* Line Feed character state */
char resLF[1]; /* reserved */
short int CF_LF_Width; /* Line Feed character width */
char CF_LF_Code[4]; /* Line Feed character Code point */
unsigned char CF_CR_State; /* Carriage Return state */
char resCR[1]; /* reserved */
short int CF_CR_Width; /* Carriage Return width */
char CF_CR_Code[4]; /* Carriage Return code point */
unsigned char CF_EOF_State; /* End-Of-File character state */
char resEOF[1]; /* reserved */
short int CF_EOF_Width; /* EOF character width */
char CF_EOF_Code[4]; /* EOF character Code point */
} CF_DEFS;
char resCF2[8]; /* reserved */
} CUN4BIPR_CTLF;