Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, プログラミング・ガイド

保存されたオプション・ストリング

コンパイラーも、ロード・モジュールに 32 バイトの「ストリング」を保管し、ロード・モジュールのビルドに使用されるコンパイラー・オプションを記録します。

保存されたオプション・ストリングの PL/I 宣言は、図 101 にあります。構造体の中のほとんどのフィールドにおいて、そのフィールドの意味は名前によって明白ですが、いくつかのフィールドについてはいくらかの説明が必要です。

図 101. 保存されたオプション・ストリングの宣言
   dcl
    1 sos  based
      ,2 sos_words               fixed bin(8) unsigned
      ,2 sos_version             fixed bin(8) unsigned
      ,2 sos_arch                fixed bin(8) unsigned
      ,2 sos_tune                fixed bin(8) unsigned
      ,2 sos_currency            char(1)
      ,2 sos_optlevel            bit(4)  /* set with version >= 2 */
      ,2 sos_scheduler           bit(1)  /* set with version >= 5 */
      ,2 sos_nowritable_prv      bit(1)  /* set with version >= 4 */
      ,2 sos_noblockedio         bit(1)  /* set with version >= 3 */
      ,2 sos_optimize            bit(1)
      ,2 sos_window              fixed bin(15)
      ,2 sos_codepage            fixed bin(31)
      ,2 sos_limits_intname      fixed bin(8) unsigned
      ,2 sos_limits_extname      fixed bin(8) unsigned
      ,2 sos_limits_fixbinp1     fixed bin(8) unsigned
      ,2 sos_limits_fixbinp2     fixed bin(8) unsigned
      ,2 sos_limits_fixdecp1     fixed bin(8) unsigned
      ,2 sos_limits_fixdecp2             /* set with version >= 4 */
                                 fixed bin(8) unsigned
      ,2 sos_flags1
        ,3 sos_check_stg      bit(1)
        ,3 sos_compact        bit(1)
        ,3 sos_csect          bit(1)
        ,3 sos_dbcs           bit(1)
        ,3 sos_display_wto    bit(1)
        ,3 sos_extrn_full     bit(1)
        ,3 sos_graphic        bit(1)
        ,3 sos_check_conform  bit(1)  /* set with version >= 6 */
      ,2 sos_flags2
        ,3 sos_interrupt      bit(1)
        ,3 sos_reduce         bit(1)
        ,3 sos_norent         bit(1)
        ,3 sos_respect_date   bit(1)
        ,3 sos_rules_ans      bit(1)
        ,3 sos_stdsys         bit(1)
        ,3 sos_nowritable     bit(1)
        ,3 sos_wchar_big      bit(1)
      ,2 sos_flags3
        ,3 sos_cmpat          bit(4)
        ,3 sos_system         bit(4)
      ,2 sos_flags4
        ,3 sos_dllinit        bit(1)
        ,3 sos_xinfo_def      bit(1)
        ,3 sos_xinfo_xml      bit(1)
        ,3 sos_static_full    bit(1)
        ,3 sos_backreg_5      bit(1)
        ,3 sos_noresexp       bit(1)  /* set with version >= 2 */
        ,3 sos_bifprec        bit(2)  /* set with version >= 2 */
                                      /* 01 => bifprec(15)     */
                                      /* 10 => bifprec(31)     */
      ,2 sos_test
        ,3 sos_test_hooks     bit(4)
        ,3 sos_test_sym       bit(1)
        ,3 sos_test_nohook    bit(1)  /* set with version >= 5 */
        ,3 sos_test_separate  bit(1)  /* set with version >= 7 */
        ,3 sos_Static_Length  bit(1)  /* set with version >= 2 */
      ,2 sos_float
        ,3 sos_afp            bit(1)
        ,3 sos_dft_nobin1arg  bit(1)  /* set with version >>= 7 */
        ,3 sos_dec_forcedsign bit(1)  /* set with version >= 6 */
        ,3 sos_dec_nofoflonasgn bit(1)  /* set with version >= 6 */
        ,3 sos_prectype       bit(2)  /* set with version >= 5 */
        ,3 sos_floatinmath    bit(2)  /* set with version >= 2 */
      ,2 sos_usage
        ,3 sos_ans_round      bit(1)
        ,3 sos_ans_unspec     bit(1)
        ,3 sos_common         bit(1)  /* set with version >= 6 */
        ,3 sos_initauto       bit(1)  /* set with version >= 5 */
        ,3 sos_initbased      bit(1)  /* set with version >= 5 */
        ,3 sos_initctl        bit(1)  /* set with version >= 5 */
        ,3 sos_initstatic     bit(1)  /* set with version >= 5 */
        ,3 sos_stringofg_is_c bit(1)  /* set with version >= 5 */
      ,2 sos_default
        ,3 sos_ans            bit(1)
        ,3 sos_asgn           bit(1)
        ,3 sos_byaddr         bit(1)
        ,3 sos_conn           bit(1)
        ,3 sos_descriptor     bit(1)
        ,3 sos_ebcdic         bit(1)
        ,3 sos_nonnative      bit(1)
        ,3 sos_nonnativeaddr  bit(1)
        ,3 sos_inline         bit(1)
        ,3 sos_reorder        bit(1)
        ,3 sos_evendec        bit(1)
        ,3 sos_null370        bit(1)
        ,3 sos_recursive      bit(1)
        ,3 sos_desclctr       bit(1)
        ,3 sos_ret_byaddr     bit(1)
        ,3 sos_initfill       bit(1)
        ,3 sos_initfill_char  char(1)
        ,3 sos_short_ieee     bit(1)
        ,3 sos_dummy_unal     bit(1)
        ,3 sos_retcode        bit(1)
        ,3 sos_unaligned      bit(1)
        ,3 sos_ordinal_max    bit(1)
        ,3 sos_overlap        bit(1)
        ,3 sos_hex            bit(1)
        ,3 sos_e_hex          bit(1)
        ,3 sos_linkage        fixed bin(8) unsigned
      ,2 sos_prefix
        ,3 sos_size           bit(1)
        ,3 sos_stringrange    bit(1)
        ,3 sos_stringsize     bit(1)
        ,3 sos_subrg          bit(1)
        ,3 sos_fofl           bit(1)
        ,3 sos_ofl            bit(1)
        ,3 sos_invalidop      bit(1)
        ,3 sos_ufl            bit(1)
        ,3 sos_zdiv           bit(1)
        ,3 sos_conv           bit(1)
        ,3 *                  bit(1)
        ,3 sos_dfp            bit(1)  /* set with version >=  9 */
        ,3 sos_nosepname      bit(1)  /* set with version >=  8 */
        ,3 sos_csectcut       bit(3)  /* set with version >=  5 */
      ,2 sos_extension01
        ,3 sos_hgpr           bit(1)  /* set with version >= 10 */
        ,3 sos_hgpr_preserve  bit(1)  /* set with version >= 10 */
        ,3 sos_goff           bit(1)  /* set with version >= 10 */
        ,3 sos_dec_foflonmult bit(1)  /* set with version >= 10 */
        ,3 sos_usage_hex_cstg bit(1)  /* set with version >= 10 */
        ,3 sos_usage_substr_loose     /* set with version >= 10 */
                              bit(1)
        ,3 *                  bit(10)
        ,3 sos_cuname_offset  fixed bin(16) unsigned

sos_cmpat フィールドにおいて考えられる値が、これらの宣言によって与えられます。

   dcl sos_cmpat_le            bit(4) value('0000'b);
   dcl sos_cmpat_v1            bit(4) value('0001'b);
   dcl sos_cmpat_v2            bit(4) value('0010'b);
   dcl sos_cmpat_v3            bit(4) value('0011'b);

sos_system フィールドにおいて考えられる値が、これらの宣言によって与えられます。

 dcl sos_system_mvs          bit(4) value('0001'b);
   dcl sos_system_tso          bit(4) value('0010'b);
   dcl sos_system_cics         bit(4) value('0011'b);
   dcl sos_system_ims          bit(4) value('0100'b);
   dcl sos_system_os           bit(4) value('0101'b);

sos_test_hooks フィールドにおいて考えられる値が、これらの宣言によって与えられます。

 dcl sos_test_hooks_none     bit(4) value('0000'b);
   dcl sos_test_hooks_block    bit(4) value('0001'b);
   dcl sos_test_hooks_stmt     bit(4) value('0011'b);
   dcl sos_test_hooks_path     bit(4) value('0101'b);
   dcl sos_test_hooks_all      bit(4) value('0111'b);

sos_linkage フィールドにおいて考えられる値が、これらの宣言によって与えられます。

   dcl sos_linkage_optlink     fixed bin(8) unsigned value(1);
   dcl sos_linkage_system      fixed bin(8) unsigned value(2);

sos_bifprec フィールドにおいて考えられる値が、これらの宣言によって与えられます。

 dcl sos_bifprec_15          bit(2) value('01'b);
   dcl sos_bifprec_31          bit(2) value('10'b);

sos_floatinmath フィールドにおいて考えられる値が、これらの宣言によって与えられます。

dcl sos_floatinmath_asis    bit(2) value('00'b);
   dcl sos_floatinmath_long    bit(2) value('10'b);
   dcl sos_floatinmath_extndd  bit(2) value('11'b);

保存されたオプション・ストリングは、次の 2 つのどちらかの方法でタイム・スタンプの後に位置指定されます。

  1. サービス・オプションが指定されている場合、サービス・オプションの中に指定されたストリングは、文字がストリングを変更すると即時にタイム・スタンプに続きます。次に、保存されたオプション・ストリングが、2 番目の文字がストリングを変更するとサービス・ストリングに続きます。
  2. サービス・オプションが指定されていない場合、保存されたオプション・ストリングは、文字がストリングを変更すると即時にタイム・スタンプに続きます。

保存されたオプション・ストリングを保持する可変ストリング の長さは、保存されたオプション・ストリングそれ自体のサイズより長くなります。

サービス・ストリングの存在 (または不在) は、PPA2 内に、PPA2 の 10 進数のオフセット 20 にフラグ・バイトで示されます。このバイトとボックス 20 の AND 演算結果がゼロでなければ、サービス・ストリングが存在します。

以前にリリースされた PL/I コンパイラーには、保存されたオプション・ストリングを、コンパイラーがロード・モジュールに置かないものがありました。保存されたオプション・ストリングの存在 (または不在) は、PPA2 内に、10 進数のオフセット 20 にフラグ・バイトで示されます。このバイトとボックス 02 の AND 演算結果がゼロでなければ、保存されたオプション・ストリングが存在します。


Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)