z/OS Unicode Services User's Guide and Reference
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


31-bit mapping

z/OS Unicode Services User's Guide and Reference
SA38-0680-00

typedef struct  tagCUNBIPRM {                                           
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     */
char Res5[4];                              /* Reserved                           */
void * CCSID1_subCCSIDs_Info_Ptr ;         /* Pointer to                         */
                                           /* CUNBIPRM_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     Res6[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      */
char Res5a[4];                            /* Reserved                            */
void * CCSID2_subCCSIDs_Info_Ptr ;        /* Pointer to                          */
                                          /* CUNBIPRM_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          Res6a[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 Res7[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 ------------------         */
                                                                        
char Res8[4];                             /* Reserved                            */
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                            */
} CUNBIPRM;                                                            

typedef struct tagCUNBIPRM_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                            */
 } CUNBIPRM_CTLF;                                                                        
Note: C constants for the parameter area are defined in the header file cunhc.h.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014