|
Programming Interface Information:
This page documents intended Programming
Interfaces that allow the customer to write programs to obtain the services of z/VM. |
CPED
Control Block Contents
CPED DSECT
CPEFMH5 DSECT
CPEFASI DSECT
CPEFLUW1 DSECT
CPEFLUW2 DSECT
CPEFCOR DSECT
CPEFASIS DSECT
CPESGIDV DSECT
CPEPIP DSECT
CPEPIPMP DSECT
CPECSRV DSECT
Cross Reference (Contains links to field and bit definitions)
CPED Prolog
NAME : CPED
DESCRIPTION: CONNECTION PENDING EXTENDED DATA (CPED)
DSECT : CPED (primary)
FUNCTION : PROVIDES A MAPPING OF THE CPED CONTAINING THE
ALLOCATE DATA (VM AREA AND FMH5) WITHIN THE
INTERRUPT BUFFER EXTENSION.
THE MAPPING OF THE VM COMMUNICATION SERVER AREA
AND PROGRAM INTIALIZATION PARAMETER(PIP) ARE
ALSO PROVIDED.
HISTORY : NEW FOR VM/ESA RELEASE 1
NOTES :
1. ANY CHANGES TO CPED COPY SHOULD ALSO BE MADE IN THE *
INTERNAL CMS VERSION, DMSCPEDP, TO KEEP THE MAPPING IN *
SYNCH BETWEEN CP AND CMS. THE CMS BILINGUAL MACRO, *
DMSCPED, USES THE ASSEMBLER COPY FUNCTION TO INCLUDE *
CPED COPY WHEN INVOKED FROM AN ASSEMBLER MODULE. *
*
ALSO NOTE THAT THE INTERNAL CP VERSION (HCPCONBK COPY) *
AS WELL AS THE INTERNAL AVS AND TSAF VERSIONS FOR THE *
ALLOCATE DATA MAPPING MUST BE KEPT IN SYNCH. *
*
2. THE VALUE IN 'CPEFLEN' INCLUDES THE LENGTH OF *
'CPEFLEN' ITSELF. IT IS CALCULATED AS LENGTH(CPEFBASE) *
+ CPEFTPNL + CPEFASIL + LENGTH(CPEFASIL) + CPEFLUWL + *
LENGTH(CPEFLUWL) + CPEFCORL + LENGTH(CPEFCORL). *
*
3. THE VALUES IN 'CPEFTPNL', 'CPEFASIL', 'CPEFLUWL', *
'CPEFCORL', CPEFSUBL', AND 'CPEFFQNL' DO NOT INCLUDE *
THE LENGTHS OF THE LENGTH FIELDS THEMSELVES. *
*
4. 'CPEFPRML' SPECIFIES THE LENGTH OF THE FIXED PARAMETERS *
THAT APPEAR IN THE FMH5 BETWEEN 'CPEFPRML' ITSELF AND *
THE FIRST VARYING-LENGTH FIELD. THE VALUE IN 'CPEFPRML' *
ADDED TO THE DISPLACEMENT OF THE FIRST FIXED-LENGTH *
FIELD FOLLOWING 'CPEFPRML' WITHIN THE FMH5 GIVES THE *
DISPLACEMENT OF THE FIRST VARYING-LENGTH FIELD IN THE *
FMH5. *
*
5. PROGRAM INITIALIZATION PARAMETER (PIP) DATA IS SENT AS *
A GDS VARIABLE IF THE FIELD 'CPEFPIP' INDICATES THAT *
PIP DATA IS PRESENT. *
*
6. THE LL FIELDS FOR THE PIP DATA, 'CPEPIPLN' AND *
'CPEPIPSL', INCLUDE THE LENGTH OF THE LENGTH FIELDS *
THEMSELVES. *
*
7. WARNING: IF IPRESID IN THE PARAMETER LIST IS *USERID *
AND THE CPED IS BEING PRESENTED TO A TSAF VIRTUAL *
MACHINE THEN THE CPED WILL BE PRECEDED BY AN 8 BYTE *
NODE ID.
CPED Control Block Content
CPED DSECT
Hex Dec Type/Val Lng Label (dup) Comments
---- ---- --------- ---- -------------- --------
0000 0 Structure CPED CONNECTION PENDING EXTENDED DATA
(CPED)
VM AREA mapping
0000 0 Signed 2 CPEVTOTL TOTAL LENGTH OF VM AREA
0002 2 Signed 2 CPEVFIXL LENGTH OF THE FIXED LENGTH FIELD
(FROM CPEVSESL TO THE CURRENT END
OF THE VM AREA)
0004 4 Signed 2 * RESERVED
0006 6 Signed 2 CPEVSRVL LENGTH OF COMMUNICATION SERVER
AREA (USED FOR OUTBOUND REQUESTS
ONLY - OTHERWISE ZERO)
0008 8 Bitstring 1 CPEVSESL LENGTH SESSION INSTANCE ID
0009 9 Bitstring 1 CPEVLLUL LENGTH LOCAL LU NAME
000A 10 Bitstring 1 CPEVRLUL LENGTH REMOTE LU NAME
000B 11 Character 5 * RESERVED
0010 16 Character 8 CPEVMODE MODE NAME SPECIFIED
0018 24 Character 8 CPEVSESS SESSION INSTANCE IDENTIFIER
0020 32 Character 16 CPEVLKL (0) LOCALLY KNOWN LUNAME
0020 32 Character 8 CPEVLUQ LUNAME QUALIFIER
0028 40 Character 8 CPEVTLU TARGET LUNAME
0030 48 Character 16 CPEVPLKL (0) PARTNER LOCAL KNOWN LUNAME
0030 48 Character 8 CPEVPLUQ PARTNER LUNAME QUALIFIER
0038 56 Character 8 CPEVPTLU PARTNER TARGET LUNAME
0040 64 Character 17 CPEVLLUN LOCAL FULLY QUALIFIED LUNAME
0051 81 Character 17 CPEVRLUN REMOTE FULLY QUAL. LUNAME
0062 98 Character 6 * RESERVED
0068 104 Character 8 CPEVALT ALTERNATE USERID TO BE SET
0070 112 Character 8 CPEVCIT VIRTUAL CONFIGURATION ID TOKEN
The next set of information, along with the variable-length
supplementary group ID (SGID) information, is passed on each connect so
that the server at the other end can have access to POSIX access
control information.
0078 120 Bitstring 1 CPEVIDFL Access control flags
1... .... CPEVIDVL X'80' The UID/GID information has
been filled in.
0079 121 Bitstring 3 * Reserved for IBM use
007C 124 Signed 4 CPEVEUID Effective UID of the process
issuing the CONNECT.
0080 128 Signed 4 CPEVEGID Effective GID of the process
issuing the CONNECT.
0084 132 Signed 4 CPEVRUID Real UID of the process issuing
the CONNECT.
0088 136 Signed 4 CPEVRGID Real GID of the process issuing
the CONNECT.
008C 140 Signed 4 CPEVIDLN Length of the supplementary GID
information (may be in the range
zero to NGMAXMAX*4).
0090 144 Signed 4 CPEVVARL Total length of the VM-defined
variable length section of this
block. This section begins after
the FMH5 and is followed by the
communication server area.
00000094 CPEVVRSL *-CPED VMA area length including
the variable-length section
length field. This field must be
distinct from CPEVMLEN to allow
future expansion.
0094 148 Character 16 CPEVCBPL (0) Partner LUNAME to use in
connecting back to the partner.
0094 148 Character 8 CPEVCBLQ LUNAME qualifier to use in
connecting back to the partner.
Contains one of the following:
*USERID if the connection
originated on the same system as
the target. (The value is equal
to that in CPEVPLUQ.)
<gatelu> if the connection
is through AVS or an unknown
comserv. (The value is equal to
that in CPEVPLUQ.) <system
gateway name of originating
system> if the connection is
through ISFC or TSAF. <system
gateway name of the gateway
system> if the connection is
passing from a CS collection to a
TSAF collection or vice versa.
009C 156 Character 8 CPEVCBTL Target luname to use in
connecting back to the partner.
This should always be equal to
CPEVPTLU; it's added here for
ease of use.
000000A4 CPEVMLEN *-CPED VM AREA LENGTH
Function Management Header 5 FMH5 Fixed area
CPEFMH5 DSECT
Hex Dec Type/Val Lng Label (dup) Comments
---- ---- --------- ---- -------------- --------
0000 0 Structure CPEFMH5 CONNECTION PENDING EXTENDED DATA
(CPED)
0000 0 Character 10 CPEFBASE (0) FIXED LENGTH BASE
0000 0 Bitstring 1 CPEFLEN FMH5 TOTAL LENGTH
1111 1111 CPEFMXLN 255 Maximum length of the FMH5
0001 1 Bitstring 1 CPEFTYPE FMH TYPE FIELD
.... .1.1 CPEFTYP5 X'05' FMH TYPE = X'05'
0002 2 Bitstring 2 CPEFCODE FMH5 COMMAND CODE
CPEFCODE CPEFATT X'02FF' ATTACH COMMAND CODE
0004 4 Bitstring 1 CPEFFLG1 FLAG FIELD
1... .... CPEFSECI X'80' SECURITY INDICATOR
.... 1... CPEFPIP X'08' PIP DATA PRESENT
0005 5 Bitstring 1 CPEFPRML LENGTH OF FIXED LENGTH PARMS
0006 6 Bitstring 3 CPEFPARM (0) FIXED LENGTH PARAMETERS
0006 6 Bitstring 1 CPEFCONT CONVERSATION TYPE
11.1 .... CPEFBASC X'D0' BASIC CONVERSATION
11.1 ...1 CPEFMAPC X'D1' MAPPED CONVERSATION
0007 7 Character 1 * RESERVED
0008 8 Bitstring 1 CPEFFLG2 FLAG FIELD
11.. .... CPEFSYNM X'C0' SYNCHRONIZATION LEVEL MASK
.... .... CPEFSYNO X'00' NONE
.1.. .... CPEFSYCF X'40' CONFIRM
1... .... CPEFSYSP X'80' CONFIRM,SYNC POINT,BACKOUT
..1. .... CPEFSYRC X'20' RECONNECTION SUPPORT
0009 9 Bitstring 1 CPEFTPNL TRANSACTION PROGRAM NAME LENGTH
(NOT INC. THIS BYTE)
FMH5 Variable area
000A 10 Bitstring 1 CPEFTPN (0) TRANS. PROGRAM NAME (TPN)
CPEFASI DSECT
Hex Dec Type/Val Lng Label (dup) Comments
---- ---- --------- ---- -------------- --------
0000 0 Structure CPEFASI CONNECTION PENDING EXTENDED DATA
(CPED)
SUBFIELDS
0000 0 Bitstring 1 CPEFASIL TOTAL LENGTH OF ALL ASI
SUBFIELDS-NOT INC. THIS FLD
0001 1 Bitstring 1 CPEFSEC (0) CONTAINS ALL ASI SUBFIELDS MAPPED
VIA THE CPEFASIS DSECT. EACH ASI
SUBFIELDS MUST BE MAPPED
SEPARATELY BY THE CPEFASIS DSECT.
CPEFLUW1 DSECT
Hex Dec Type/Val Lng Label (dup) Comments
---- ---- --------- ---- -------------- --------
0000 0 Structure CPEFLUW1 CONNECTION PENDING EXTENDED DATA
(CPED)
FIELD
0000 0 Bitstring 1 CPEFLUWL LENGTH OF LUW FIELD (NOT
INCLUDING THIS BYTE)
0001 1 Bitstring 1 CPEFFQNL LENGTH OF FULLY QUALIFIED LUNAME
(NOT INC. THIS BYTE)
0002 2 Bitstring 1 CPEFFQN (0) NETWORK FULLY QUALIFIED LUNAME
CPEFLUW2 DSECT
Hex Dec Type/Val Lng Label (dup) Comments
---- ---- --------- ---- -------------- --------
0000 0 Structure CPEFLUW2 CONNECTION PENDING EXTENDED DATA
(CPED)
0000 0 Bitstring 6 CPEFLUIN LUW INSTANCE NUMBER
0006 6 Bitstring 2 CPEFLUSN LUW SEQUENCE NUMBER
CPEFCOR DSECT
Hex Dec Type/Val Lng Label (dup) Comments
---- ---- --------- ---- -------------- --------
0000 0 Structure CPEFCOR CONNECTION PENDING EXTENDED DATA
(CPED)
0000 0 Bitstring 1 CPEFCORL LENGTH OF CONVERSATION CORRELATOR
OF SENDER (NOT INCLUDING THIS
BYTE)
0001 1 Bitstring 1 CPEFCORT (0) CONVERSATION CORRELATOR OF
SENDING TRANSACTION
Access Security Information(ASI) subfield
This DSECT is used to map each ASI SUBFIELD. THESE subfields are all
contained in the field 'CPEFSEC'. You must determine how many subfields
are specified and determine the length of each subfield.
CPEFASIS DSECT
Hex Dec Type/Val Lng Label (dup) Comments
---- ---- --------- ---- -------------- --------
0000 0 Structure CPEFASIS CONNECTION PENDING EXTENDED DATA
(CPED)
0000 0 Bitstring 1 CPEFSUBL SUBFIELD LENGTH (NOT INCLUDING
THIS BYTE)
0001 1 Bitstring 1 CPEFSUBT SUBFIELD TYPE
.... .... CPEFPROF X'00' PROFILE TYPE
.... ...1 CPEFPASS X'01' PASSWORD TYPE
.... ..1. CPEFUSER X'02' USER ID TYPE
0002 2 Bitstring 1 CPEFDATA (0) SUBFIELD DATA
Beginning of the VM-defined variable-length section.
This section directly follows the FMH5 and precedes the communication
server area. It consists of zero or more variable-length areas. The sum
of the lengths of all of the information in this section is defined in
CPEVVARL.
Supplementary GID information area
This section comes immediately after the FMH5 and contains the
supplementary group IDs (part of the set of POSIX access control
values). The length of this section is in CPEVIDLN in the VMA area; if
the length is zero, there are no supplementary group IDs. The valid
range for the length is zero to NGMAXMAX*4; APPC/VM connect processing
checks to ensure that this area does not grow too big for APPC/VM
connect processing to handle.
Each SGID is four bytes long. The first starts at displacement zero in
this area, the second at displacement four, and so on.
Notes : in the CONBK, CONSGIDS is defined with a length of NGMAXMAX*4.
Since the levels of CP and CMS could be different and thus the
NGROUPS_MAX value as represented by NGMAXMAX could be different, the
reference to NGROUPS_MAX (NGMAXMAX) is omitted here to avoid the risk
of misunderstanding and misuse.
CPESGIDV DSECT
Hex Dec Type/Val Lng Label (dup) Comments
---- ---- --------- ---- -------------- --------
0000 0 Structure CPESGIDV CONNECTION PENDING EXTENDED DATA
(CPED)
0000 0 Bitstring 1 CPESGIDS (0) Supplementary GIDs
End of the VM-defined variable-length section.
**********************************************************************
PROGRAM INITIALIZATION PARAMETER (PIP).
+-----------------------+-----------------------+
| CPEPIPLN | CPEPIPID |
+-----------------------+-----------------------+
| CPEPIPSU |
+ +
| +-----+
| | /// |
+-----------------------------------------+-----+
CPEPIP DSECT
Hex Dec Type/Val Lng Label (dup) Comments
---- ---- --------- ---- -------------- --------
0000 0 Structure CPEPIP CONNECTION PENDING EXTENDED DATA
(CPED)
0000 0 Bitstring 2 CPEPIPLN PIP LENGTH (INC. THIS FIELD)
0002 2 Bitstring 2 CPEPIPID GDS INDICATOR
CPEPIPID CPEPIPVA X'12F5' PIP VARIABLE
0004 4 Bitstring 1 CPEPIPSU (0) ZERO OR MORE PIP SUBFIELDS, EACH
OF WHICH HAS THE FOLLOWING FORMAT
CPEPIPMP DSECT
Hex Dec Type/Val Lng Label (dup) Comments
---- ---- --------- ---- -------------- --------
0000 0 Structure CPEPIPMP CONNECTION PENDING EXTENDED DATA
(CPED)
0000 0 Bitstring 2 CPEPIPSL SUBFIELD LENGTH (INCLUDING THIS
BYTE)
0002 2 Bitstring 2 CPEPIPSI GDS INDICATOR
CPEPIPSI CPEPIPSF X'12E2' PIP SUBFIELD
0004 4 Bitstring 1 CPEPIPSD (0) SUBFIELD DATA
*********************************************************************
VM Communication Server Area
+-----------+-----------------------+-----------+
| CPECOMFL | CPECOMPL | RESERVED |
+-----------+-----------------------+-----------+
| CPECOMPA |
+-----------------------------------------------+
CPECSRV DSECT
Hex Dec Type/Val Lng Label (dup) Comments
---- ---- --------- ---- -------------- --------
0000 0 Structure CPECSRV CONNECTION PENDING EXTENDED DATA
(CPED)
0000 0 Bitstring 8 CPECOMSV (0)
0000 0 Bitstring 1 CPECOMFL FLAG BYTE
.1.. .... CPECOMBL X'40' PIP ADDRESS IS BUFFER LIST
0001 1 Bitstring 2 CPECOMPL LENGTH OF PIP DATA
0003 3 Bitstring 1 * RESERVED
0004 4 Bitstring 4 CPECOMPA ADDRESS OF PIP DATA
00000001 CPECOMSZ (*-CPECOMSV+7)/8 CPECOMSV SIZE IN
DOUBLEWORD
CPED Storage Layout
*** CPED - CONNECTION PENDING EXTENDED DATA (CPED)
*
* +-------------+-------------+-------------+-------------+
* 0 | CPEVTOTL | CPEVFIXL |/////////////| CPEVSRVL |
* +------+------+------+------+-------------+-------------+
* 8 |:VSESL|:VLLUL|:VRLUL|//////////////////////////////////|
* +------+------+------+----------------------------------+
* 10 | CPEVMODE |
* +-------------------------------------------------------+
* 18 | CPEVSESS |
* +-------------------------------------------------------+
* 20 | CPEVLUQ |
* +-------------------------------------------------------+
* 28 | CPEVTLU |
* +-------------------------------------------------------+
* 30 | CPEVPLUQ |
* +-------------------------------------------------------+
* 38 | CPEVPTLU |
* +-------------------------------------------------------+
* 40 | |
* = CPEVLLUN =
* | +------------------------------------------------+
* 50 | | |
* +------+ |
* | CPEVRLUN |
* | +-----------------------------------------+
* 60 | |/////////////////////////////////////////|
* +-------------+-----------------------------------------+
* 68 | CPEVALT |
* +-------------------------------------------------------+
* 70 | CPEVCIT |
* +------+--------------------+---------------------------+
* 78 |:VIDFL|////////////////////| CPEVEUID |
* +------+--------------------+---------------------------+
* 80 | CPEVEGID | CPEVRUID |
* +---------------------------+---------------------------+
* 88 | CPEVRGID | CPEVIDLN |
* +---------------------------+---------------------------+
* 90 | CPEVVARL | CPEVCBLQ- |
* +---------------------------+---------------------------+
* 98 | -(094) | CPEVCBTL- |
* +---------------------------+---------------------------+
* A0 | -(09C) | A4
* +---------------------------+
*
*** CPED - CONNECTION PENDING EXTENDED DATA (CPED)
*** CPEFMH5 - CONNECTION PENDING EXTENDED DATA (CPED)
*
* +------+------+-------------+------+------+------+------+
* 0 |:FLEN |:FTYPE| CPEFCODE |:FFLG1|:FPRML|:FCONT|//////|
* +------+------+-------------+------+------+------+------+
* 8 |:FFLG2|:FTPNL|
* +------+------+
*
*** CPEFMH5 - CONNECTION PENDING EXTENDED DATA (CPED)
*** CPEFASI - CONNECTION PENDING EXTENDED DATA (CPED)
*
* +------+
* 0 |:FASIL|
* +------+
*
*** CPEFASI - CONNECTION PENDING EXTENDED DATA (CPED)
*** CPEFLUW1 - CONNECTION PENDING EXTENDED DATA (CPED)
*
* +------+------+
* 0 |:FLUWL|:FFQNL|
* +------+------+
*
*** CPEFLUW1 - CONNECTION PENDING EXTENDED DATA (CPED)
*** CPEFLUW2 - CONNECTION PENDING EXTENDED DATA (CPED)
*
* +-----------------------------------------+-------------+
* 0 | CPEFLUIN | CPEFLUSN |
* +-----------------------------------------+-------------+
* 8
*
*** CPEFLUW2 - CONNECTION PENDING EXTENDED DATA (CPED)
*** CPEFCOR - CONNECTION PENDING EXTENDED DATA (CPED)
*
* +------+
* 0 |:FCORL|
* +------+
*
*** CPEFCOR - CONNECTION PENDING EXTENDED DATA (CPED)
*** CPEFASIS - CONNECTION PENDING EXTENDED DATA (CPED)
*
* +------+------+
* 0 |:FSUBL|:FSUBT|
* +------+------+
*
*** CPEFASIS - CONNECTION PENDING EXTENDED DATA (CPED)
*** CPESGIDV - CONNECTION PENDING EXTENDED DATA (CPED)
*
*
*** CPESGIDV - CONNECTION PENDING EXTENDED DATA (CPED)
*** CPEPIP - CONNECTION PENDING EXTENDED DATA (CPED)
*
* +-------------+-------------+
* 0 | CPEPIPLN | CPEPIPID |
* +-------------+-------------+
*
*** CPEPIP - CONNECTION PENDING EXTENDED DATA (CPED)
*** CPEPIPMP - CONNECTION PENDING EXTENDED DATA (CPED)
*
* +-------------+-------------+
* 0 | CPEPIPSL | CPEPIPSI |
* +-------------+-------------+
*
*** CPEPIPMP - CONNECTION PENDING EXTENDED DATA (CPED)
*** CPECSRV - CONNECTION PENDING EXTENDED DATA (CPED)
*
* +------+-------------+------+---------------------------+
* 0 |:COMFL| CPECOMPL |//////| CPECOMPA |
* +------+-------------+------+---------------------------+
* 8
*
*** CPECSRV - CONNECTION PENDING EXTENDED DATA (CPED)
CPED Cross Reference
Symbol Dspl Value
-------------- ---- -----
CPECOMBL 0000 40
CPECOMFL 0000
CPECOMPA 0004
CPECOMPL 0001
CPECOMSV 0000
CPECOMSZ 0004 00000001
CPEFASIL 0000
CPEFATT 0002 CPEFCODE
CPEFBASC 0006 D0
CPEFBASE 0000
CPEFCODE 0002
CPEFCONT 0006
CPEFCORL 0000
CPEFCORT 0001
CPEFDATA 0002
CPEFFLG1 0004
CPEFFLG2 0008
CPEFFQN 0002
CPEFFQNL 0001
CPEFLEN 0000
CPEFLUIN 0000
CPEFLUSN 0006
CPEFLUWL 0000
CPEFMAPC 0006 D1
CPEFMXLN 0000 FF
CPEFPARM 0006
CPEFPASS 0001 01
CPEFPIP 0004 08
CPEFPRML 0005
CPEFPROF 0001 00
CPEFSEC 0001
CPEFSECI 0004 80
CPEFSUBL 0000
CPEFSUBT 0001
CPEFSYCF 0008 40
CPEFSYNM 0008 C0
CPEFSYNO 0008 00
CPEFSYRC 0008 20
CPEFSYSP 0008 80
CPEFTPN 000A
CPEFTPNL 0009
CPEFTYPE 0001
CPEFTYP5 0001 05
CPEFUSER 0001 02
CPEPIPID 0002
CPEPIPLN 0000
CPEPIPSD 0004
CPEPIPSF 0002 CPEPIPSI
CPEPIPSI 0002
CPEPIPSL 0000
CPEPIPSU 0004
CPEPIPVA 0002 CPEPIPID
CPESGIDS 0000
CPEVALT 0068
CPEVCBLQ 0094
CPEVCBPL 0094
CPEVCBTL 009C
CPEVCIT 0070
CPEVEGID 0080
CPEVEUID 007C
CPEVFIXL 0002
CPEVIDFL 0078
CPEVIDLN 008C
CPEVIDVL 0078 80
CPEVLKL 0020
CPEVLLUL 0009
CPEVLLUN 0040
CPEVLUQ 0020
CPEVMLEN 009C 000000A4
CPEVMODE 0010
CPEVPLKL 0030
CPEVPLUQ 0030
CPEVPTLU 0038
CPEVRGID 0088
CPEVRLUL 000A
CPEVRLUN 0051
CPEVRUID 0084
CPEVSESL 0008
CPEVSESS 0018
CPEVSRVL 0006
CPEVTLU 0028
CPEVTOTL 0000
CPEVVARL 0090
CPEVVRSL 0090 00000094
This information is
based on z/VM V4R1.0.
Last updated on 5 Jun 2001 at 12:44:35 EDT.
Copyright IBM Corporation, 1990, 2001