Figure 1. Definition
of saved options information layout#define USHRT unsigned short
#define UINT unsigned int
typedef struct SOS_s {
UINT sos_words : 8, /* 0xFF000000 sizeof(SOS)/4 */
sos_version : 8, /* 0x00FF0000 version number */
/* 1 - as of XL C/C++ 1.10 */
/* 2 - as of XL C/C++ 1.11 */
/* 3 - as of XL C/C++ 1.13 */
/* 4 - as of XL C/C++ 2.1 */
/* 5 - as of XL C/C++ 2.1 PTF */
/* 6 - as of XL C/C++ 2.1.1 */
sos_arch : 8, /* 0x0000FF00 ARCHITECTURE */
sos_tune : 8; /* 0x000000FF TUNE */
/* offset: 4 */
UINT sos_csect : 1, /* 0x80000000 0 - NOCSECT */
/* 1 - CSECT */
sos_version_info :15, /* 0x7FFF0000 version list (PHASEIDs location - */
/* offset/4 from SOS start) */
sos_locale_ccsid :16; /* 0x0000FFFF CCSID from the LOCALE */
/* offset: 8 */
USHRT sos_lit_ccsid; /* 0xFFFF0000 CONVLIT(xx) */
USHRT sos_wlit_ccsid; /* 0x0000FFFF CONVLIT(,WCHAR|UNICODE) */
/* offset: 12 */
UINT sos_target_rel; /* 0xFFFFFFFF TARGET(release value in HEX) */
/* As given by __TARGET_LIB__ */
/* offset: 16 */
UINT sos_initauto_val; /* 0xFFFFFFFF INITAUTO value */
|
/* offset: 20 */
UINT sos_enumsize : 3, /* 0xE0000000 0 - ENUMSIZE(SMALL) */
/* 1 - ENUMSIZE(INT) */
/* 2 - ENUMSIZE(INTLONG) */
/* 3 - ENUMSIZE(1) */
/* 4 - ENUMSIZE(2) */
/* 5 - ENUMSIZE(4) */
/* 6 - ENUMSIZE(8) */
sos_round : 3, /* 0x1C000000 0 - ROUND(N) */
/* 1 - ROUND(Z) */
/* 2 - ROUND(P) */
/* 3 - ROUND(M) */
sos_round_dfp : 4, /* 0x03C00000 0 - NODFP */
/* 1 - ROUND(DN) */
/* 2 - ROUND(DM) */
/* 3 - ROUND(DP) */
/* 4 - ROUND(DZ) */
/* 5 - ROUND(DNA) */
/* 6 - ROUND(DI) */
/* 7 - ROUND(DNZ) */
sos_flt_hex : 1, /* 0x00200000 0 - FLOAT(HEX) */
/* 1 - FLOAT(IEEE) */
sos_flt_afp : 2, /* 0x00180000 0 - FLOAT(NOAFP) */
/* 1 - FLOAT(AFP(NOVOLATILE)) */
/* 2 - FLOAT(AFP(VOLATILE)) */
sos_flt_fold : 1, /* 0x00040000 FLOAT(FOLD) */
sos_flt_maf : 1, /* 0x00020000 FLOAT(MAF) */
sos_flt_rrm : 1, /* 0x00010000 FLOAT(RRM) */
sos_aggrcopy : 1, /* 0x00008000 0 - AGGRCOPY(NOOVERLAP) */
/* 1 - AGGRCOPY(OVERLAP) */
sos_bitfield : 1, /* 0x00004000 0 - BITFIELD(UNSIGNED) */
/* 1 - BITFIELD(SIGNED) */
sos_chars : 1, /* 0x00002000 0 - CHARS(UNSIGNED) */
/* 1 - CHARS(SIGNED) */
sos_hgpr : 2, /* 0x00001800 0 - NOHGPR */
/* 1 - HGPR(PRESERVE) */
/* 2 - HGPR(NOPRESERVE) */
sos_initauto : 2, /* 0x00000600 0 - NOINITAUTO */
/* 1 - INITAUTO (xx) */
/* 2 - INITAUTO (xx, WORD) */
sos_inline : 2, /* 0x00000180 0 - NOINLINE */
/* 1 - INLINE(AUTO) */
/* 2 - INLINE(NOAUTO) */
sos_ipa : 2, /* 0x00000060 0 - NOIPA */
/* 1 - IPA(OBJECT) */
/* 2 - IPA(NOOBJECT) */
/* 3 - IPA(OBJONLY) */
sos_unroll : 2, /* 0x00000018 0 - UNROLL(AUTO) */
/* 1 - UNROLL(NO) */
/* 2 - UNROLL(YES) */
sos_dll : 2, /* 0x00000006 0 - NODLL */
/* 1 - DLL(NOCALLBACKANY) */
/* 2 - DLL(CALLBACKANY) */
sos_exportall : 1; /* 0x00000001 EXPORTALL */
|
/* offset: 24 */
UINT sos_ansialias : 1, /* 0x80000000 ANSIALIAS */
sos_argparse : 1, /* 0x40000000 ARGPARSE */
sos_compress : 1, /* 0x20000000 COMPRESS */
sos_compact : 1, /* 0x10000000 COMPACT */
sos_execops : 1, /* 0x08000000 EXECOPS */
sos_goff : 1, /* 0x04000000 GOFF */
sos_hot : 1, /* 0x02000000 HOT */
sos_ignerrno : 1, /* 0x01000000 IGNERRNO */
sos_libansi : 1, /* 0x00800000 LIBANSI */
sos_upconv : 1, /* 0x00400000 UPCONV */
sos_longname : 1, /* 0x00200000 LONGNAME */
sos_lp64 : 1, /* 0x00100000 LP64 */
sos_rent : 1, /* 0x00080000 0 - NORENT */
/* 1 - RENT */
sos_wsizeof : 1, /* 0x00040000 WSIZEOF */
sos_roconst : 1, /* 0x00020000 ROCONST */
sos_rostring : 1, /* 0x00010000 ROSTRING */
sos_start : 1, /* 0x00008000 START */
sos_strict : 1, /* 0x00004000 STRICT */
sos_strictind : 1, /* 0x00002000 STRICT_INDUCTION */
sos_xpl_bkchn : 1, /* 0x00001000 XPLINK(BACKCHAIN) */
sos_xpl_callbk : 1, /* 0x00000800 XPLINK(CALLBACK) */
sos_xpl_grd : 1, /* 0x00000400 XPLINK(GUARD) */
sos_xpl_oscall : 2, /* 0x00000300 0 - XPLINK(OSCALL(NOSTACK)) */
/* 1 - XPLINK(OSCALL(DOWNSTACK)) */
/* 2 - XPLINK(OSCALL(UPSTACK)) */
sos_hook_line : 1, /* 0x00000080 DEBUG(HOOK(LINE)) */
sos_hook_block : 1, /* 0x00000040 DEBUG(HOOK(BLOCK)) */
sos_hook_path : 1, /* 0x00000020 DEBUG(HOOK(PATH)) */
sos_hook_func : 1, /* 0x00000010 DEBUG(HOOK(FUNC)) */
sos_hook_call : 1, /* 0x00000008 DEBUG(HOOK(CALL)) */
sos_debug_sym : 1, /* 0x00000004 DEBUG(SYMBOL) */
sos_debug_fmt : 2; /* 0x00000003 0 - NODEBUG */
/* 1 - DEBUG(FORMAT(ISD)) */
/* 2 - DEBUG(FORMAT(DWARF)) */
|
/* offset: 28 */
UINT sos_gonumber : 1, /* 0x80000000 GONUMBER */
sos_target : 2, /* 0x60000000 0 - TARGET(LE) */
/* 1 - TARGET(IMS) */
sos_plist : 1, /* 0x10000000 0 - PLIST(HOST) */
/* 1 - PLIST(OS) */
sos_optlevel : 4, /* 0x0F000000 OPTIMIZE */
sos_redir : 1, /* 0x00800000 REDIR */
sos_cvft : 1, /* 0x00400000 CVFT */
sos_objmodel : 2, /* 0x00300000 0 - OBJECTMODEL(CLASSIC) */
/* 1 - OBJECTMODEL(IBM) */
sos_exh : 1, /* 0x00080000 EXH */
sos_rtti : 1, /* 0x00040000 RTTI */
sos_namemangling : 6, /* 0x0003F000 0 - NAMEMANGLING(zOSV1R2) and */
/* NAMEMANGLING(ZOSV1R5_DEFAULT) */
/* 1 - NAMEMANGLING(ANSI) */
/* 2 - NAMEMANGLING(COMPAT) and */
/* NAMEMANGLING(OSV2R10) */
/* 3 - NAMEMANGLING(ZOSV1R5_ANSI) */
/* 4 - NAMEMANGLING(ZOSV1R7_ANSI) */
/* 5 - NAMEMANGLING(ZOSV1R8_ANSI) */
/* 6 - NAMEMANGLING(ZOSV1R9_ANSI) */
/* 7 - NAMEMANGLING(ZOSV1R10_ANSI) */
/* 8 - NAMEMANGLING(ZOSV1R11_ANSI) */
/* 9 - NAMEMANGLING(ZOSV1R12_ANSI) */
/* 10 - NAMEMANGLING(ZOSV2R1_ANSI) */
/* 11 - NAMEMANGLING(ZOSV2R1M1_ANSI) */
sos_ansisinit : 1, /* 0x00000800 LANGLVL(ANSISINIT) */
sos_newexcp : 1, /* 0x00000400 LANGLVL(NEWEXCP) */
sos_oldmath : 1, /* 0x00000200 LANGLVL(OLDMATH) */
sos_oldstr : 1, /* 0x00000100 LANGLVL(OLDSTR) */
sos_oldtmplalign : 1, /* 0x00000080 LANGLVL(OLDTMPLALIGN) */
sos_restrict : 1, /* 0x00000040 ASSERT(RESTRICT) */
sos_prefetch : 1, /* 0x00000020 PREFETCH */
/* Applicable to zOSV1R11 and later */
sos_rtc : 1, /* 0x00000010 RTCHECK */
/* Applicable to zOSV1R11 and later */
sos_rtc_bounds : 1, /* 0x00000008 RTCHECK(BOUNDS) */
/* Applicable to zOSV1R11 and later */
sos_rtc_divzero : 1, /* 0x00000004 RTCHECK(DIVZERO) */
/* Applicable to zOSV1R11 and later */
sos_rtc_nullptr : 1, /* 0x00000002 RTCHECK(NULLPTR) */
/* Applicable to zOSV1R11 and later */
sos_restrict_param : 1; /* 0x00000001 RESTRICT */
/* Applicable to zOSV1R12 and later */
|
/* offset: 32 */
UNIT sos_rvaluerefs : 1, /* 0x80000000 LANGLVL(RVALUEREFERENCES) */
/* Applicable to zOSV2R1 and later */
sos_refcollapsing : 1, /* 0x40000000 LANGLVL(REFERENCECOLLAPSING) */
/* Applicable to zOSV2R1 and later */
sos_rightanglebkt : 1, /* 0x20000000 LANGLVL(RIGHTANGLEBRACKET) */
/* Applicable to zOSV2R1 and later */
sos_scopedenum : 1, /* 0x10000000 LANGLVL(SCOPEDENUM) */
/* Applicable to zOSV2R1 and later */
sos_debug_level : 4, /* 0x0F000000 DEBUG(LEVEL(0-9)) */
/* Applicable to zOSV2R1 and later */
sos_subscript_wrap : 1, /* 0x00800000 STRICT(SUBSTRICTWRAP) */
/* Applicable to zOSV2R1 and later */
sos_tempsaslocals : 1, /* 0x00400000 LANGLVL(TEMPSASLOCALS) */
/* Applicable to zOSV1R13 and later */
sos_smp : 1, /* 0x00200000 SMP */
/* Applicable to zOSV2R1 and later */
sos_smp_opt : 1, /* 0x00100000 SMP(OPT) */
/* Applicable to zOSV2R1 and later */
sos_smp_explicit : 1, /* 0x00080000 SMP(EXPLICIT) */
/* Applicable to zOSV2R1 and later */
sos_threaded : 1, /* 0X00040000 THREADED */
/* Applicable to zOSV2R1 and later */
sos_funcevent : 1, /* 0x00020000 FUNCEVENT */
/* Applicable to zOSV2R1M1 and later */
sos_vector : 1, /* 0x00010000 VECTOR */
/* Applicable to zOSV2R1M1 and later */
sos_asm : 1, /* 0x00008000 ASM */
/* Applicable to zOSV2R1M1 and later */
sos_unrolln : 8, /* 0x00007F80 UNROLL(N) where 0 <= N <= 255 */
/* Applicable to zOSV2R1M1 and later */
sos_padding : 7;
} SOS_t;
|