SZQBK | Back to Index page

| Prolog Control Block Contents SZQBK DSECT SZQSTATS DSECT SZQSTATE DSECT SZQDEVIN DSECT SZQPTHIN DSECT Storage Layout Cross Reference (Contains links to field and bit definitions) |
Programming Interface Information: This information is NOT intended to be used as Programming Interfaces of z/VM.

SZQBK Prolog | Top of page

     NAME       : HCPSZQBK
     DESCRIPTION: IOSC_queryDevice Information Block
     DSECT      : SZQBK
     FUNCTION   : The data returned by IOSC_queryDevice is placed in
                  HCPSZQBK so CP can access the data.
     LOCATED BY :
     CREATED BY : HCPMNO when device statistics are gathered.
                  HCPSZP when path state is queried.
     DELETED BY : HCPMNO when device statistics are gathered.
                  HCPSZP when path state is queried.
     COMPATIBILITY AND MIGRATION CONCERNS :
     RELOCATION CONSIDERATIONS : None

SZQBK Control Block Content | Top of page

     SZQBK DSECT
    Top of page

    Hex   Dec Type/Val   Lng Label (dup)    Comments
    ---- ---- --------- ---- -------------- --------
    0000    0 Structure      SZQBK          IOSC_queryDevice Information Block
    0000    0 Signed       2 SZQQUERY       Query type
              .... ...1      SZQDDEVS       1 SZQDDEVS Query device state
              .... ..1.      SZQDDEVP       2 SZQDDEVP Qry device and path
                                            state
              .... ..11      SZQDDSKS       3 SZQDDSKS Qry device statistics
              .... .1..      SZQDDKPT       4 SZQDDKPT Qry device and path
                                            statistics
              .... .111      SZQDINFO       7 SZQDINFO Get additional device
                                            info Disk statistics
    0002    2 Bitstring    1 SZQDSTAT       Disk status
    0003    3 Bitstring    1 *              Reserved for future IBM use
    0004    4 Signed       4 SZQDTIME       Amount of time disk is active
    0008    8 Signed       4 SZQDRATE       Kbytes/sec transfer rate
    000C   12 Signed       4 SZQDBLKS       Number of bytes in a block
                                            (blocksize)
    0010   16 Signed       4 SZQDXFER       Number of transfers to/from disk
    0014   20 Signed       4 SZQDBLKR       Number of blocks read from disk
    0018   24 Signed       4 SZQDBLKW       Number of blocks written to disk
    001C   28 Signed       4 SZQDSEEK       Number of seek operations for
                                            disk
    0020   32 Signed       4 SZQDQDPT       Queue depth
    0024   36 Bitstring   80 *              Space for new query info
          Path statistics
    0074  116 Bitstring   32 SZQPSTTI (8)   Up to 8 path statistics
              00000174       SZQSIZEB       (*-SZQBK) Length of SZQBK in
                                            bytes
              0000002F       SZQSIZE        (*-SZQBK+7)/8 Length of SZQBK in
                                            double words
    0002    2 Bitstring    1 SZQDEVST       Device State
              00000001       SZQDNLD        1 SZQDNLD Device not loaded
              00000002       SZQDLD         2 SZQDLD Device loaded
              00000003       SZQDACT        3 SZQDACT Device active
              00000004       SZQDSTP        4 SZQDSTP Device stopped
              00000005       SZQDERR        5 SZQDERR Device in error
    0003    3 Bitstring    1 SZQPTHCT
    0004    4 Bitstring   16 SZQPATHS       Path state information
           This dsect maps SZQPSTTI

     SZQSTATS DSECT
    Top of page

    Hex   Dec Type/Val   Lng Label (dup)    Comments
    ---- ---- --------- ---- -------------- --------
    0000    0 Structure      SZQSTATS       IOSC_queryDevice Information Block
    0000    0 Signed       2 SZQPIDNM       Pathid number
    0002    2 Bitstring    1 SZQPSTAT       Path status - see SZQDSTAT for
                                            bit definitions
    0003    3 Bitstring    1 *              Reserved for future IBM use
    0004    4 Signed       4 SZQPTIME       Amount of time path is active
    0008    8 Signed       4 SZQPRATE       Kbytes/sec transfer rate
    000C   12 Signed       4 SZQPXFER       Number of transfers to/from disk
    0010   16 Signed       4 SZQPBLKR       Number of blocks read from disk
    0014   20 Signed       4 SZQPBLKW       Number of blocks written to disk
    0018   24 Signed       4 SZQPSEEK       Number of seek operations for
                                            disk
    001C   28 Signed       4 SZQPQDPT       Queue depth
              00000020       SZQSTSSZ       *-SZQSTATS Size of path
                                            statistics info in bytes This
                                            dsect map SZQPATHS

     SZQSTATE DSECT
    Top of page

    Hex   Dec Type/Val   Lng Label (dup)    Comments
    ---- ---- --------- ---- -------------- --------
    0000    0 Structure      SZQSTATE       IOSC_queryDevice Information Block
    0000    0 Bitstring    1 SZQPTHID       Path id
    0001    1 Bitstring    1 SZQPTHST       Path state
              00000001       SZQDPACT       1 SZQDPACT Path is Active
              00000002       SZQDPSTP       2 SZQDPSTP Path is stopped
              00000003       SZQDPIER       3 SZQDPIER Path could not be
                                            initially established
              00000004       SZQDPERR       4 SZQDPERR Path established, but
                                            since broken *** Path error codes
              00000001       SZQPEC01       1 SZQPEC01 Get path id error
              00000002       SZQPEC02       2 SZQPEC02 Get parent error
              00000003       SZQPEC03       3 SZQPEC03 Open parent device
                                            error
              00000004       SZQPEC04       4 SZQPEC04 Get parent device set
                                            type error
              00000005       SZQPEC05       5 SZQPEC05 Bad parent device set
                                            type error
              00000006       SZQPEC06       6 SZQPEC06 Get path lun id error
              00000007       SZQPEC07       7 SZQPEC07 Get path ww name error
              00000008       SZQPEC08       8 SZQPEC08 Get parent device load
                                            error
              00000009       SZQPEC09       9 SZQPEC09 Get parent device
                                            number error
              0000000A       SZQPEC10       10 SZQPEC10 Get parent device
                                            open error
              0000000B       SZQPEC11       11 SZQPEC11 SCIOLQWWN error
              0000000C       SZQPEC12       12 SZQPEC12 SCIOLSTART error
              0000000D       SZQPEC13       13 SZQPEC13 SCIOLINQU error
              0000000E       SZQPEC14       14 SZQPEC14 Bad lun violation
                                            error
              0000000F       SZQPEC15       15 SZQPEC15 IEEE verification
                                            memory error
              00000010       SZQPEC16       16 SZQPEC16 Multiple devices
                                            violation error
              00000011       SZQPEC17       17 SZQPEC17 Get serial number
                                            memory error
              00000012       SZQPEC18       18 SZQPEC18 Report target memory
                                            error
              00000013       SZQPEC19       19 SZQPEC19 SCIOLCMD error
              00000014       SZQPEC20       20 SZQPEC20 Get parent driver
                                            error
              00000015       SZQPEC21       21 SZQPEC21 SCSI open internal
                                            state error
              00000016       SZQPEC22       22 SZQPEC22 SCSI open access
                                            error
              00000017       SZQPEC23       23 SZQPEC23 SCSI open memory
                                            error
              00000018       SZQPEC24       24 SZQPEC24 SCSI open timeout
                                            error
              00000019       SZQPEC25       25 SZQPEC25 SCSI open no device
                                            error
              0000001A       SZQPEC26       26 SZQPEC26 CP open internal
                                            state error
              0000001B       SZQPEC27       27 SZQPEC27 CP open access error
              0000001C       SZQPEC28       28 SZQPEC28 CP open memory error
              0000001D       SZQPEC29       29 SZQPEC29 CP open timeout error
              0000001E       SZQPEC30       30 SZQPEC30 CP open no device
                                            error
              0000001F       SZQPEC31       31 SZQPEC31 SCIOLQWWN system
                                            error
              00000020       SZQPEC32       32 SZQPEC32 SCIOLQWWN copy error
              00000021       SZQPEC33       33 SZQPEC33 SCIOLQWWN config
                                            error
              00000022       SZQPEC34       34 SZQPEC34 SCIOLQWWN memory
                                            error
              00000023       SZQPEC35       35 SZQPEC35 SCIOLQWWN timeout
                                            error
              00000024       SZQPEC36       36 SZQPEC36 SCIOLQWWN no device
                                            error
              00000026       SZQPEC38       38 SZQPEC38 SCIOLSTART system
                                            error
              00000027       SZQPEC39       39 SZQPEC39 SCIOLSTART config
                                            error
              00000029       SZQPEC41       41 SZQPEC41 SCIOLSTART memory
                                            error
              0000002A       SZQPEC42       42 SZQPEC42 SCIOLSTART timeout
                                            error
              0000002B       SZQPEC43       43 SZQPEC43 SCIOLSTART no device
                                            error
              0000002E       SZQPEC46       46 SZQPEC46 SCIOLINQU system
                                            error
              0000002F       SZQPEC47       47 SZQPEC47 SCIOLINQU copy error
              00000030       SZQPEC48       48 SZQPEC48 SCIOLINQU closed
                                            error
              00000032       SZQPEC50       50 SZQPEC50 SCIOLINQU memory
                                            error
              00000033       SZQPEC51       51 SZQPEC51 SCIOLINQU timeout
                                            error
              00000034       SZQPEC52       52 SZQPEC52 SCIOLINQU no device
                                            error
              00000036       SZQPEC54       54 SZQPEC54 SCIOLCMD system error
              00000037       SZQPEC55       55 SZQPEC55 SCIOLCMD config error
              00000038       SZQPEC56       56 SZQPEC56 SCIOLCMD copy error
              0000003A       SZQPEC58       58 SZQPEC58 SCIOLCMD memory error
              0000003B       SZQPEC59       59 SZQPEC59 SCIOLCMD timeout
                                            error
    0002    2 Bitstring    1 SZQPTHEC       Path error code
              00000003       SZQSTASZ       *-SZQSTATE Size of path state
                                            information in bytes
          This dsect is for IOSC_QT_DEVICE_INFO returned device data.
          (query device information IOSC_QOK_DISK_INFO)
          This dsect overlays the SZQBK from the top up to but not
          including SZQPSTTI.
          This dsect may need to change when deviceInfo_iocs H struct
          is updated. Make sure there is enough space in the SZQBK
          for these overlay fields

     SZQDEVIN DSECT
    Top of page

    Hex   Dec Type/Val   Lng Label (dup)    Comments
    ---- ---- --------- ---- -------------- --------
    0000    0 Structure      SZQDEVIN       IOSC_queryDevice Information Block
    0000    0 Signed       2 SZQQTYPE       Query type. Use SZQQUERY equates
    0002    2 Bitstring    1 SZQLUNST       LUN state. Use SZQDSTAT equates
    0003    3 Bitstring    1 SZQDEVTY       Peripheral device type from SCSI
                                            standard inquiry
    0004    4 Bitstring    1 SZQVNDR1       Vendor-specific storage byte
    0005    5 Bitstring    1 SZQDPTHS       Total paths for this device
    0006    6 Bitstring    8 SZQVENID       EBCDIC vendor ID for device
    000E   14 Bitstring   16 SZQPROID       EBCDIC product ID for device
    001E   30 Bitstring    4 SZQPRORL       EBCDIC product revision level
    0022   34 Signed       2 SZQQDPTH       Configured I/O Queue Depth
    0024   36 Signed       4 SZQBLKSZ       Blocksize of device
    0028   40 Dbl-Word     8 SZQNUMBK       Number of blocks for this device
    0030   48 Dbl-Word     8 SZQBLKSL       Num of blocks at load time
    0038   56 Signed       4 SZQFLAGS (0)   Device specific cache flags
    0038   56 Bitstring    1 SZQFLAG1       Device specific cache flags
              .... .1..      SZQFCWOB       X'04' SZQFCWOB FAStT-cache
                                            without batteries
              .... ..1.      SZQFFWT        X'02' SZQFFWT FAStT-force write
                                            thru on two minute warning from
                                            ups
              .... ...1      SZQFCME        X'01' SZQFCME FAStT-cache mirror
                                            enable
    0039   57 Bitstring    1 SZQFLAG2       Device specific cache flags
              1... ....      SZQFABPR       X'80' SZQFABPR FAStT-alt ctrl
                                            batteries present
              .1.. ....      SZQFBPR        X'40' SZQFBPR FAStT-batteries
                                            present
              ..1. ....      SZQFACMA       X'20' SZQFACMA FAStT-alt ctrl
                                            cache mirror activ
              ...1 ....      SZQFCMA        X'10' SZQFCMA FAStT-ctrl cache
                                            mirror active
              .... 1...      SZQFABOK       X'08' SZQFABOK FAStT-alt ctrl
                                            batteries ok
              .... .1..      SZQFBOK        X'04' SZQFBOK FAStT-ctrl
                                            batteries ok
              .... ..1.      SZQFRCA        X'02' SZQFRCA FAStT-read cache
                                            active
              .... ...1      SZQFWCA        X'01' SZQFWCA FAStT-write cache
                                            active
    003A   58 Bitstring    1 SZQFLAG3       Device specific cache flags
    003B   59 Bitstring    1 SZQFLAG4       Device specific cache flags
    003C   60 Bitstring    2 *              Reserved for future IBM use
    003E   62 Bitstring    1 SZQIEEET       IEEE id type
    003F   63 Bitstring    1 SZQIEEEL       IEEE id length
    0040   64 Address      4 SZQIEEE        Address OF EBCDIC IEEE id
    0044   68 Address      4 SZQSERAD       Address of Serial Number
    0048   72 Bitstring    1 SZQSERLN       Length of Serial Number
    0049   73 Bitstring   15 *              Reserved for future IBM use
              00000058       SZQDEVSZ       *-SZQDEVIN Size of device
                                            information
          This dsect is for IOSC_QT_DEVICE_INFO returned path data.
          (query device information IOSC_QOK_PATH_INFO)
          Overlays SZQPSTTI but is formatted to use only 8 24 byte
          areas
          This dsect must be updated when pathInfo_iosc H structure
          is updated (but they are not mirrored).

     SZQPTHIN DSECT
    Top of page

    Hex   Dec Type/Val   Lng Label (dup)    Comments
    ---- ---- --------- ---- -------------- --------
    0000    0 Structure      SZQPTHIN       IOSC_queryDevice Information Block
    0000    0 Bitstring    1 *              Reserved for future IBM use
    0001    1 Bitstring    1 SZQPINST       Path Status (codes defined in
                                            SZQPTHST)
    0002    2 Bitstring    1 SZQCONTY       Connection type
              .... ...1      SZQSWTCH       1 SZQSWTCH Switched connection
              .... ..1.      SZQPTPT        2 SZQPTPT Point to point
                                            connection
    0003    3 Bitstring    1 SZQPREFP       Preferred path if 1750
              .... ...1      SZQPREF        1 SZQPREF Preferred path for 1750
    0004    4 Signed       4 SZQPATHI       Path id for this path
    0008    8 Dbl-Word     8 SZQWWPN        World Wide Port Name
    0010   16 Dbl-Word     8 SZQSCID        SCSI id
              00000018       SZQPTHSZ       *-SZQPTHIN Size of path
                                            information

SZQBK Storage Layout | Top of page

    *** SZQBK - IOSC_queryDevice Information Block
    *
    *     +-------------+------+------+---------------------------+
    *   0 |  SZQQUERY   |:DSTAT|//////|         SZQDTIME          |
    *     +-------------+------+------+---------------------------+
    *   8 |         SZQDRATE          |         SZQDBLKS          |
    *     +---------------------------+---------------------------+
    *  10 |         SZQDXFER          |         SZQDBLKR          |
    *     +---------------------------+---------------------------+
    *  18 |         SZQDBLKW          |         SZQDSEEK          |
    *     +---------------------------+---------------------------+
    *  20 |         SZQDQDPT          |///////////////////////////|
    *     +---------------------------+///////////////////////////|
    *  28 |///////////////////////////////////////////////////////|
    *     =///////////////////////////////////////////////////////=
    *     |///////////////////////////+---------------------------+
    *     |///////////////////////////|                           |
    *     +---------------------------+                           |
    *  78 |                                                       |
    *     =                       SZQPSTTI                        =
    *     |                           +---------------------------+
    *     |                           | 174
    *     +---------------------------+
    *
    *** SZQBK - IOSC_queryDevice Information Block

    *** Overlay for SZQDSTAT in SZQBK
    *
    *                   +------+------+---------------------------+
    *   0 ...         2 |:DEVST|:PTHCT|                           |
    *     +-------------+------+------+                           |
    *     |                       SZQPATHS                        |
    *     |                           +---------------------------+
    *     |                           | 14
    *     +---------------------------+
    *
    *** Overlay for SZQDSTAT in SZQBK

    *** SZQSTATS - IOSC_queryDevice Information Block
    *
    *     +-------------+------+------+---------------------------+
    *   0 |  SZQPIDNM   |:PSTAT|//////|         SZQPTIME          |
    *     +-------------+------+------+---------------------------+
    *   8 |         SZQPRATE          |         SZQPXFER          |
    *     +---------------------------+---------------------------+
    *  10 |         SZQPBLKR          |         SZQPBLKW          |
    *     +---------------------------+---------------------------+
    *  18 |         SZQPSEEK          |         SZQPQDPT          |
    *     +---------------------------+---------------------------+
    *  20
    *
    *** SZQSTATS - IOSC_queryDevice Information Block

    *** SZQSTATE - IOSC_queryDevice Information Block
    *
    *     +------+------+------+
    *   0 |:PTHID|:PTHST|:PTHEC| 3
    *     +------+------+------+
    *
    *** SZQSTATE - IOSC_queryDevice Information Block

    *** SZQDEVIN - IOSC_queryDevice Information Block
    *
    *     +-------------+------+------+------+------+-------------+
    *   0 |  SZQQTYPE   |:LUNST|:DEVTY|:VNDR1|:DPTHS|   (006)-    |
    *     +-------------+------+------+------+------+-------------+
    *   8 |               -SZQVENID                 |             |
    *     +-----------------------------------------+             |
    *     |                       SZQPROID                        |
    *     |                                         +-------------+
    *     |                                         | SZQPRORL-   |
    *     +-------------+-------------+-------------+-------------+
    *  20 |   -(01E)    |  SZQQDPTH   |         SZQBLKSZ          |
    *     +-------------+-------------+---------------------------+
    *  28 |                       SZQNUMBK                        |
    *     +-------------------------------------------------------+
    *  30 |                       SZQBLKSL                        |
    *     +------+------+------+------+-------------+------+------+
    *  38 |:FLAG1|:FLAG2|:FLAG3|:FLAG4|/////////////|:IEEET|:IEEEL|
    *     +------+------+------+------+-------------+------+------+
    *  40 |         SZQIEEE           |         SZQSERAD          |
    *     +------+--------------------+---------------------------+
    *  48 |:SERLN|////////////////////////////////////////////////|
    *     +------+////////////////////////////////////////////////|
    *     |///////////////////////////////////////////////////////|
    *     +-------------------------------------------------------+
    *  58
    *
    *** SZQDEVIN - IOSC_queryDevice Information Block

    *** SZQPTHIN - IOSC_queryDevice Information Block
    *
    *     +------+------+------+------+---------------------------+
    *   0 |//////|:PINST|:CONTY|:PREFP|         SZQPATHI          |
    *     +------+------+------+------+---------------------------+
    *   8 |                       SZQWWPN                         |
    *     +-------------------------------------------------------+
    *  10 |                       SZQSCID                         |
    *     +-------------------------------------------------------+
    *  18
    *
    *** SZQPTHIN - IOSC_queryDevice Information Block

SZQBK Cross Reference | Top of page

    Symbol         Dspl Value
    -------------- ---- -----
    SZQBLKSL       0030
    SZQBLKSZ       0024
    SZQCONTY       0002
    SZQDACT        0002 00000003
    SZQDBLKR       0014
    SZQDBLKS       000C
    SZQDBLKW       0018
    SZQDDEVP       0000 02
    SZQDDEVS       0000 01
    SZQDDKPT       0000 04
    SZQDDSKS       0000 03
    SZQDERR        0002 00000005
    SZQDEVST       0002
    SZQDEVSZ       0049 00000058
    SZQDEVTY       0003
    SZQDINFO       0000 07
    SZQDLD         0002 00000002
    SZQDNLD        0002 00000001
    SZQDPACT       0001 00000001
    SZQDPERR       0001 00000004
    SZQDPIER       0001 00000003
    SZQDPSTP       0001 00000002
    SZQDPTHS       0005
    SZQDQDPT       0020
    SZQDRATE       0008
    SZQDSEEK       001C
    SZQDSTAT       0002
    SZQDSTP        0002 00000004
    SZQDTIME       0004
    SZQDXFER       0010
    SZQFABOK       0039 08
    SZQFABPR       0039 80
    SZQFACMA       0039 20
    SZQFBOK        0039 04
    SZQFBPR        0039 40
    SZQFCMA        0039 10
    SZQFCME        0038 01
    SZQFCWOB       0038 04
    SZQFFWT        0038 02
    SZQFLAGS       0038
    SZQFLAG1       0038
    SZQFLAG2       0039
    SZQFLAG3       003A
    SZQFLAG4       003B
    SZQFRCA        0039 02
    SZQFWCA        0039 01
    SZQIEEE        0040
    SZQIEEEL       003F
    SZQIEEET       003E
    SZQLUNST       0002
    SZQNUMBK       0028
    SZQPATHI       0004
    SZQPATHS       0004
    SZQPBLKR       0010
    SZQPBLKW       0014
    SZQPEC01       0001 00000001
    SZQPEC02       0001 00000002
    SZQPEC03       0001 00000003
    SZQPEC04       0001 00000004
    SZQPEC05       0001 00000005
    SZQPEC06       0001 00000006
    SZQPEC07       0001 00000007
    SZQPEC08       0001 00000008
    SZQPEC09       0001 00000009
    SZQPEC10       0001 0000000A
    SZQPEC11       0001 0000000B
    SZQPEC12       0001 0000000C
    SZQPEC13       0001 0000000D
    SZQPEC14       0001 0000000E
    SZQPEC15       0001 0000000F
    SZQPEC16       0001 00000010
    SZQPEC17       0001 00000011
    SZQPEC18       0001 00000012
    SZQPEC19       0001 00000013
    SZQPEC20       0001 00000014
    SZQPEC21       0001 00000015
    SZQPEC22       0001 00000016
    SZQPEC23       0001 00000017
    SZQPEC24       0001 00000018
    SZQPEC25       0001 00000019
    SZQPEC26       0001 0000001A
    SZQPEC27       0001 0000001B
    SZQPEC28       0001 0000001C
    SZQPEC29       0001 0000001D
    SZQPEC30       0001 0000001E
    SZQPEC31       0001 0000001F
    SZQPEC32       0001 00000020
    SZQPEC33       0001 00000021
    SZQPEC34       0001 00000022
    SZQPEC35       0001 00000023
    SZQPEC36       0001 00000024
    SZQPEC38       0001 00000026
    SZQPEC39       0001 00000027
    SZQPEC41       0001 00000029
    SZQPEC42       0001 0000002A
    SZQPEC43       0001 0000002B
    SZQPEC46       0001 0000002E
    SZQPEC47       0001 0000002F
    SZQPEC48       0001 00000030
    SZQPEC50       0001 00000032
    SZQPEC51       0001 00000033
    SZQPEC52       0001 00000034
    SZQPEC54       0001 00000036
    SZQPEC55       0001 00000037
    SZQPEC56       0001 00000038
    SZQPEC58       0001 0000003A
    SZQPEC59       0001 0000003B
    SZQPIDNM       0000
    SZQPINST       0001
    SZQPQDPT       001C
    SZQPRATE       0008
    SZQPREF        0003 01
    SZQPREFP       0003
    SZQPROID       000E
    SZQPRORL       001E
    SZQPSEEK       0018
    SZQPSTAT       0002
    SZQPSTTI       0074
    SZQPTHCT       0003
    SZQPTHEC       0002
    SZQPTHID       0000
    SZQPTHST       0001
    SZQPTHSZ       0010 00000018
    SZQPTIME       0004
    SZQPTPT        0002 02
    SZQPXFER       000C
    SZQQDPTH       0022
    SZQQTYPE       0000
    SZQQUERY       0000
    SZQSCID        0010
    SZQSERAD       0044
    SZQSERLN       0048
    SZQSIZE        0074 0000002F
    SZQSIZEB       0074 00000174
    SZQSTASZ       0002 00000003
    SZQSTSSZ       001C 00000020
    SZQSWTCH       0002 01
    SZQVENID       0006
    SZQVNDR1       0004
    SZQWWPN        0008

This information is based on z/VM 7.2.0 Last updated on 24 Jun 2020 at 09:20:09 EDT.
Copyright IBM Corporation, 1990, 2020