|
Hex Dec Type/Val Lng Label (dup) Comments
---- ---- --------- ---- -------------- --------
0000 0 Structure RCCBK RCPU DATA AREA MAPPING
SAVBK management zappable constants and queues
0000 0 Dbl-Word 8 RCCURCQ SAVBK reclaim queue (unsorted)
0008 8 Address 4 RCCSRCQ SAVBK reclaim queue (sorted)
000C 12 Address 4 RCCSFQ SAVE frame queue
0010 16 Signed 4 RCCRCNUM Number of SAVBKs being reclaimed
0014 20 Signed 4 RCCSVNUM Number of SAVBKs allocated
0018 24 Dbl-Word 8 RCCSFQL (6) SAVE frame queue lock
0048 72 Signed 8 RCCICFAB Incomplete frame reclaim time
limit in seconds
0050 80 Signed 8 RCCLNINT HCPSAMFS sampling period, 10 sec.
0058 88 Signed 4 RCCNOINT Number of intervals to average
.... 1... RCCMXAVS 8 RCCMXAVS Scaling factor for
below &VX1NASG
005C 92 Signed 4 RCCMAXAV Maximum percentage of buffers
available
0060 96 Signed 4 RCCMINSV Minimum number of saveareas per
processor
0064 100 Address 1 RCCSTFLG Free storage availability flags
1... .... RCCSAVL X'80' RCCSAVL Free storage
available for SAVBKs
0065 101 Bitstring 1 * (3) Reserved for future IBM use
MP Defer Data Area
Checkpoint determination intervals
0068 104 Signed 8 RCCMPDLY 1/10 second, until adjusted by
HCPISR to be a function of the
minor timeslice.
0070 112 Dbl-Word 8 * Reserved for IBM use
0078 120 Address 1 RCCMPDAC MP Defer Active Test & Set flag
0079 121 Bitstring 3 * Reserved
"CP Loss of Control" deferred work queues
007C 124 Address 4 RCCMPCQ0 Work for which 0 or more MP
checkpoints have occurred
0080 128 Address 4 RCCMPCQ1 Work for which 1 or more MP
checkpoints have occurred
"Loss of Control" deferred work queues
0084 132 Address 4 RCCMPSQ0 Work for which 0 or more MP
checkpoints have occurred
0088 136 Address 4 RCCMPSQ1 Work for which 1 or more MP
checkpoints have occurred
RCCCPUAA: Array of CPU addresses for online processors
Function : Used to get the CPU address of a CPU with a
given PFXINDEX. The PFXINDEX divided by 2 is
the displacement of a CPU's entry in this
array. VMDHDSV can also be used to find a
CPU's entry in this array due to the direct
relationship (VMDHDVSH) between VMDHDSV and
PFXINDEX for a given CPU. Finally, since
VMDHDSV is just the displacement of the
DSVBK in the array of DSVBKs (HCPDSVST), the
address of a DSVBK can be used to index into
this array as well. The following are useful
relationships:
1) VMDHDSV = addr(DSVBK) - addr(HCPDSVST)
2) PFXINDEX = VMDHDSV / 2**VMDHDVSH
3) RCCCPUAA index = PFXINDEX / 2
Serialized :
This array should be changed only when the
VARY lock is held or for the IPL processor
at initialization time.
No serialization needed to examine an entry.
When an entry in the array is being examined,
a value of x'FFFF' means the processor is no
longer available. Any value other than
x'FFFF' means either that the processor is
available or that the processor has been
varied off but the 2 minute wait interval
before its storage is released has not
expired. Do not assume that the processor
is available just because its entry in this
array is other than x'FFFF'.
008C 140 Signed 2 RCCCPUAA (64) CPU address array
STSI response data areas.
Function : A managed, in memory copy of STSI output.
The following STSI responses are maintained:
1.1.1 and 1.2.2.
For STSI 1.1.1 and 1.2.2, an additional pair
of data areas is maintained that contains
the most recent responses with non-transient
states indicated. See SSI1TRNS and HCPSSICC.
These are needed for Diagnose x'2E0'.
References to these data areas during CP
initialization must test the pointers to
ensure they are initialized (nonzero pointer)
before using the response areas.
HCPSSIBK maps the STSI responses.
Serialized :
These data areas are updated only during
system initialization while running on a
single processor, or later while running on
the SYSTEM VMDBK.
Each time the STSI responses are updated, a
new data area is allocated and the pointers
below are updated. The prior response area
is released by an MPDFR call to HCPSSIRL to
allow existing references to continue to use
the old response areas until their next loss
of control.
No serialization is provided to consumers of
these data areas that allows access over a
loss of control. The STSI response area may
have been released during the loss of control.
No form of serialization can provide a
self-consistency guarantee for the pair of
responses for STSI 1.1.1 and 1.2.2 since
changes may occur between the STSI instruction
invocations that affect values reported in
both STSI responses. For example, changes to
capability values reported by STSI 1.2.2 may
be explained by corresponding changes to CCR
and CAI values reported by STSI 1.1.1.
010C 268 Address 4 RCC111 Most recent STSI 1.1.1 response.
0110 272 Address 4 RCC122 Most recent STSI 1.2.2 response.
0114 276 Address 4 RCC111NT Non-transient STSI 1.1.1 resp.
0118 280 Address 4 RCC122NT Non-transient STSI 1.2.2 resp.
RCCEMSxx: EMSBK Cleanup Counts and Type flags
Function : Track statistics for cleanup of EMSBKs found
on the PFXPG of a processor during VARY
processing. The individual counts are for
different points in the processing of VARY
OFF PROC and VARY ON PROC. If the EMSBKs are
cleaned up after the HCPMPCFL processing,
then the EMSBKs may have been waiting to be
processed for 2 minutes or more. This should
be avoided because the result will be that
the tasks waiting for completion of HCPSGP's
processing will appear to hang while the
EMSBK is on the PFXEMSAN queue. Currently,
this is only the case for HCPSGPNC's callers
indicated by RCCEMSNF.RCCEMSNC being on.
There should be a count field and flag byte
for each caller of HCPSGPDR.
Serialized :
All RCCEMSxx fields are serialized by
HCPRCCVA - VARY Processor Lock.
011C 284 Signed 4 RCCEMSFL EMSBK cleanups done by hcpmpcFL.
0120 288 Signed 4 RCCEMSOF EMSBK cleanups done by hcpmpsOF.
0124 292 Signed 4 RCCEMSON EMSBK cleanups done by hcpmpsON.
0128 296 Signed 4 RCCEMSFS (0) EMSBK cleanup flags.
0128 296 Bitstring 1 RCCEMSLF EMSBK type flags for RCCEMSFL.
1... .... RCCEMSAR X'80' RCCEMSAR Alt Proc Recovery
type EMSBKs.
.1.. .... RCCEMSSM X'40' RCCEMSSM Switch Master type
EMSBKs.
..1. .... RCCEMSLC X'20' RCCEMSLC Load Control type
EMSBKs.
...1 .... RCCEMSNC X'10' RCCEMSNC New CPU type
EMSBKs.
0129 297 Bitstring 1 RCCEMSFF EMSBK type flags for RCCEMSOF.
1... .... RCCEMSAR X'80' RCCEMSAR Alt Proc Recovery
type EMSBKs.
.1.. .... RCCEMSSM X'40' RCCEMSSM Switch Master type
EMSBKs.
..1. .... RCCEMSLC X'20' RCCEMSLC Load Control type
EMSBKs.
...1 .... RCCEMSNC X'10' RCCEMSNC New CPU type
EMSBKs.
012A 298 Bitstring 1 RCCEMSNF EMSBK type flags for RCCEMSON.
1... .... RCCEMSAR X'80' RCCEMSAR Alt Proc Recovery
type EMSBKs.
.1.. .... RCCEMSSM X'40' RCCEMSSM Switch Master type
EMSBKs.
..1. .... RCCEMSLC X'20' RCCEMSLC Load Control type
EMSBKs.
...1 .... RCCEMSNC X'10' RCCEMSNC New CPU type
EMSBKs.
012B 299 Bitstring 1 * Reserved for IBM use.
RCCLFTIM: Array of CPU-Measurement Facility "counter
lifetime" values.
Function : Used to identify separate "lifetimes" for
CPU-Measurement Facility counters. This
array is indexed by CPU address shifted 2
bits left (multiplied by 4). These are
monotonically incrementing values that
indicate when a new "lifetime" begins.
Cumulative counter values from two different
"lifetimes" should not be used to compute
delta values. New "lifetimes" logically begin
any time the counters are reset to zero.
For our purposes, we will define a new
"lifetime" to begin when we activate CPU-
Measurement Facility counters for a given
CPU. The consequence of this is that we will
start a new "lifetime" when monitor
collection of the counters is stopped and
restarted, even if the counters were not
reset to zeroes.
Serialized :
This array is serialized by processor local
serialization. Each CPU will only ever
update its own entry.
012C 300 Signed 4 RCCLFTIM (64) Counter lifetime array
CPU-Measurement Facility buffers
Function : Per CPU pointers to buffers containing the
most recent output to Query Counter
Information (QCTRI) and Query Sampling
Information (QSI). These pointers are
indexed by CPU address. A value of zero
indicates that this CPU has never issued a
QCTRI or QSI instruction. The first time
a CPU issues the instruction, it will
allocate the buffer and store it into this
array. All subsequent executions of the
instruction will reuse the buffer. These
buffers persist as debug information and are
never released, once allocated.
Serialized :
This array is serialized by processor local
serialization. Each CPU will only ever
update its own entry. Initially, when a
CPU's entry is zero, it will allocate a
buffer and store the address in its entry. On
subsequent uses, it will find a non-zero
value and reuse its buffer.
022C 556 Address 4 RCCQCTRI (64) QCTRI buffer array
032C 812 Address 4 RCCQSI (64) QSI buffer array
042C 1068 Signed 4 * Reserved for future IBM use.
STSI 15.1.x response data area & system topology fields
Function : To save System Topology (STSI 15.1.x) data
and counters related to how often the data
has been updated. A lock is defined as these
fields can only be updated when the lock is
held exclusive and can only be read/copied
when the lock is held shared.
System Topology data is saved in storage for
1st level CP systems. Periodically, CP polls
(via PTF FC 2) to determine if the system
topology has changed. If it has, STSI 15.1.x
is issued to update the System Topology data
in storage.
When monitor needs to cut a system topology
configuration record (D1R26) or an event
record (D5R14), the fields are copied while
the lock is held shared to ensure the values
are not being updated at the time. The lock
is released before the copied data is passed
to the monitor routine because monitor might
lose control while processing the data.
HCPSSIBK maps the STSI responses including
the first part of the STSI 15.1.x response.
Serialized :
The following data areas are serialized by
the Topology lock (HCPDSVTL). This lock must
be held as follows to ensure these fields are
kept in sync and apply to the same instance
of system topology (STSI 15.1.x) response:
EXCLUSIVE:
* Whenever any of the fields are changed.
* For STSI data updates, the lock must be
held from BEFORE the PTF FC 2 until after
the STSI 15.1.x is issued to ensure the
saved STSI data is the most current.
SHARED:
* Whenever 2 or more fields are read/copied
and need to be in sync with each other.
This lock is *NOT* to be held over a loss of
control.
0430 1072 Dbl-Word 8 * (3) Reserved for IBM use
0448 1096 Bitstring 1 RCCTOPFG Flags for STSI 15.1.x information
1... .... RCCTOPSP X'80' RCCTOPSP Indicates whether
system topology facility is
supported. The rest of the system
topology fields are only valid
when this bit is ON.
0449 1097 Bitstring 1 RCCSTSIP STSI Parameters: Bits 0-4 =
Reserved, stored 0
.... .111 RCCMNEST X'07' Bits 5-7 = RCCMNEST (like
PCCMNEST) Value of selector-2 (x)
used in most recent STSI 15.1.x
ins that CP issued. If
PCCMNEST=0, RCCMNEST=2 and use
STSI 15.1.2
044A 1098 Bitstring 2 * Reserved for IBM use
044C 1100 Address 4 RCC151x Most recent STSI 15.1.x response.
This 31-bit address points to the
4K page holding the STSI 15.1.x
response.
0450 1104 Signed 4 RCCTOPPL Count of times system topology
was polled by CP via PTF FC 2.
0454 1108 Signed 4 RCCTOPCH Count of times system topology
was found changed and was updated
in storage (aka number of times
that PTF FC 2 returned CC=1)
HiperDispatch related fields
Function : Fields used to manage the HiperDispatch
environment.
Serialized :
These fields are serialized by the Vary
Processor Lock (HCPRCCVA) and the Topology
Lock (HCPDSVTL), unless otherwise noted.
0458 1112 Signed 4 RCCDEDCT Count of Dedicated vCPUs.
Serialized by vary proc lock
045C 1116 Signed 4 RCCDSVCH Count of times DSVBK association
has been changed. In addition to
when Topology changes are
detected, CPU dedication changes
can also cause us to change DSVBK
association.
0460 1120 Dbl-Word 8 * (0)
0460 1120 Signed 8 RCCDSVTM TOD value at last DSVBK assoc
change.
0468 1128 Bitstring 8 RCCVALID Mask of CPUs that have valid
association to DSVBKs
0470 1136 Bitstring 8 RCCTOPDA (64) Topology description array.
Describes the system topology of
each processor. Indexed by CPU
address.
0470 1136 Signed 2 RCCTOPDI Dispatch vector id to which a CPU
is associated
0472 1138 Bitstring 4 RCCTOPDS Topo descriptor of DSV assigned.
This topology descriptor or
identifier consists of the
container IDs (TOPCNTID) for the
TOPBKs in the topology tree above
the DSVBK specified in RCCTOPDI.
These container IDs are
positioned left to right with the
highest (greatest TOPNL value)
TOPBKs listed first.
0476 1142 Bitstring 2 RCCTOPRS Reserved for IBM use
End of RCCTOPDA entry mapping
0670 1648 Address 4 RCCTOPBF Address of pre-allocated buffer
from which to "allocate" TOPBKs
0674 1652 Signed 4 RCCTOPBS Length in bytes of the RCCTOPBF
buffer
0678 1656 Address 4 RCCTOPCU Cursor/pointer into the RCCTOPBF
buffer from where the next TOPBK
should be allocated.
067C 1660 Signed 4 * Reserved for IBM use
Miscellaneous data fields
0680 1664 Dbl-Word 8 * (0)
0680 1664 Signed 8 RCCSTPST TOD value at last system timer
pop interval
0688 1672 Signed 8 RCCSTPT Smoothed total processor time
(microsec) in last time interval
The RCCTOPDX contains the index into the VMUTOPDA
array that was used during the last rebalance operation.
This field is used to maintain the VMUTOPDA array such
that the Nth entry of each array for every VMUBK is
for the same rebalance operation.
RCCTOPDX is also used as an index into the SRXNICPF,
SRXLIUSG, SRXVMDCT, SRXACGUS and SRXNIPAD, all fields
related to rebalance and park/unpark operations.
0690 1680 Bitstring 1 RCCTOPDX Zero based index into the most
recent element in the SRXNICPF,
SRXLIUSG, SRXVMDCT, SRXACGUS,
SRXNIPAD, and VMUTOPDA arrays.
This field is serialized by the
same mechanism as the rebalance
operation. It is updated by
HCPHIPTM and used by park/unpark
calculations (HCPHIC) and
rebalance (HCPDSBRB).
0691 1681 Bitstring 3 * Reserved for IBM use.
0694 1684 Signed 4 RCCREBAL Count of the number of times a
rebalance was done on this
system.
The following fields are used to build two arrays of
origin VMUBKs for use by the DSVBK rebalance routine.
Storage for the array is obtained at system IPL time.
The arrays are rebuilt each time the guest CPU usage
prediction routine is called. The prediction routine
is called by the Periodic HiperDispatch routine before
it calls the rebalance routine.
There are two arrays built because rebalance wants to
assign new home DSVBKs first to the guests with the
largest predicted future CPU usage. So the first array
is built unordered at the beginning of this buffer and
then a quick sort is done to order them by predicted
usage. The second array is maintained at the end of
the buffer working backward through the buffer. This
This array contains all origin VMUBKs whose predicted
CPU usage is below a certain threshold as defined in
HCPVMU. This second array is built to make the quick
sort as efficient as possible by keeping the potentially
large number of inactive guests out of the array that
needs to be sorted. There is very little difference in
the predicted CPU usage of all of these guests and so
no real need to sort them.
Serialization of these arrays is accomplished with the
RCCVMULK defer lock. This lock is obtained at the
time the arrays are populated with VMUBK addresses.
This is done early in the Periodic HiperDispatch routine
which is driven once every two seconds. The lock is
held from the time population of the arrays begins
until near the end of the Periodic HiperDispatch routine
processing when the rebalance function completes.
This lock is held to ensure no VMUBKs in either array
can be released by logoff before all of the rebalance
function completes. Note that because this lock is
obtained early and held continuously across most of the
Periodic HiperDispatch routine, other locks are obtained
after RCCVMULK was obtained. Therefore RCCVMULK must
always be obtained prior to obtaining any of the
following: vary lock, scheduler lock, topology lock.
An entry (element) in the arrays consists of two fields
which are mapped by the VMUARYEN DSECT in HCPVMUBK:
1) a fullword pointer to an origin VMUBK
2) a fullword CPU usage value which is a scaled
percentage of the guest's total predicted CPU usage
for the next interval.
0698 1688 Dbl-Word 8 RCCVMULK (3) Defer lock used to serialize the
ordered and unordered arrays of
VMUBKs (see lock heirarchy info
in the block comment above)
00000100 RCCVMUPC 256 Count of pages of contiguous
storage to reserve at IPL time
for these arrays. This number is
enough to have origin VMUBKs for
100,000 guests plus 20,000+ extra
for things like AT command
VMDBKs. A CKMAINT macro
invocation in the module that
obtains this storage verifies it
is enough.
06B0 1712 Address 4 RCCVMUOA HLA start address of the ordered
array of origin VMUBKs
06B4 1716 Signed 4 RCCVMUOC Count of the number of elements
in use in the RCCVMUOA array
06B8 1720 Signed 4 RCCVMUUC Count of the number of elements
in use in the RCCVMUUA array
06BC 1724 Address 4 RCCVMUUA HLA addr of 1st entry in array of
origin VMUBKs with small
predicted CPU usage. This is at
the end of the storage buffer
that starts at the address in
RCCVMUOA. This array will be
filled in by backing up into the
buffer
06C0 1728 Address 4 RCCVMUPP HLA pointer to a one-page buffer
to be used as a work area by the
VMUBK array sort routine and also
by the dispatch vector rebalance
routine
Park/unpark mask fields
Function : Fields used to decide parked CPUs, master,
and unparked CPUs when there are topology
or white space changes.
Serialized :
These fields are serialized by the Vary
Processor Lock (HCPRCCVA).
Notes : It is the desired end state, not what needs to
change. The request is created by HCPHICCU
while holding the Vary Processor Lock, and the
entire request is processed by HCPMPCTP with
a continuous hold of the Vary Processor Lock.
06C4 1732 Bitstring 1 RCCPKFLG Flag indicating new request
.... ...1 RCCPKNEW X'01' RCCPKNEW New request to be
processed
06C5 1733 Bitstring 3 * Reserved for IBM use
06C8 1736 Dbl-Word 8 * (0)
06C8 1736 Dbl-Word 8 RCCPKMST Mask of master CPU
06D0 1744 Dbl-Word 8 RCCUPMKS (6) Desired unpark masks
06D0 1744 Dbl-Word 8 RCCCPMK Unpark mask for CP CPUs
06D8 1752 Dbl-Word 8 * Reserved for IBM use
06E0 1760 Dbl-Word 8 RCCZAPMK Unpark mask for ZAAP CPUs
06E8 1768 Dbl-Word 8 RCCIFLMK Unpark mask for IFL CPUs
06F0 1776 Dbl-Word 8 RCCICFMK Unpark mask for ICF CPUs
06F8 1784 Dbl-Word 8 RCCZIPMK Unpark mask for ZIIP CPUs
0700 1792 Bitstring 112 RCCPKWRK Work area for HCPMPCTP
0700 1792 Dbl-Word 8 RCCWUPKS (6) Array of calculated unpark masks
0730 1840 Dbl-Word 8 RCCWPRKS (6) Array of calculated park masks
0760 1888 Dbl-Word 8 RCCWVOUP Vary-off mask of unparked procs
0768 1896 Dbl-Word 8 RCCWVOPK Vary-off mask of parked procs
Other fields used for HiperDispatch.
The WHIBK pointer and the WHIBK control block are
serialized by restricting their use within a loop of
sequential routines which execute after a timer pop.
These fields are modified by HCPWHI and viewed by HCPHIC.
These routines cannot be re-entered until the next timer
pop because a single TRQBK is repeatedly used for this
purpose and it is not re-stacked by the calling routine
until all of the routines complete.
0770 1904 Signed 4 RCCWHIBK HLA pointer to the WHIBK,
obtained and used by HCPWHI for
white-space predictions.
0774 1908 Signed 2 RCCCPUCT (24) Array of counts of CPUs which are
associated with DSVBKs, indexed
first by CPU type, then by
polarization. Serialized by the
topology lock. Counts include
dedicated CPUs.
00000030 RCCCPUCT_len *-RCCCPUCT Length of array
Similar to RCCWHIBK above, RCCNUPK is serialized by being
set and used in sequential routines executed after a timer
pop. RCCNUPK is set in HCPHIC when the decision about
which CPUs should be in the unparked state is made.
RCCNUPK is later used when creating the park/unpark
decision monitor event record. The timer is not restacked
until after the monitor record has been generated, thus
preventing HCPHIC from running again and modifying this
field until it has been consumed.
07A4 1956 Signed 2 RCCNUPK (6) Array of counts of CPUs that are
requested to be in the unparked
state for the next interval,
indexed by CPU type.
RCPU side car trace table token. No serialization is needed,
as the RCCTRACE field is modified only at initialization.
07B0 1968 Signed 4 RCCTRACE Token for RCPU function trace
table.
Similar to RCCWHIBK and RCCNUPK, RCCOSCCT is serialized by
being set and used in sequential routines executed after a
timer pop. RCCOSCCT is used in HCPHICCC to decide whether
to leave one extra CPU unparked to avoid park/unpark
oscillation.
07B4 1972 Signed 2 RCCOSCCT (6) Array of times in a row that
HCPHICCC has predicted it will
need exactly one less CPU than it
currently has unparked. Indexed
by CPU type.
These arrays are allocated for two purposes:
1. When CP is running in a dedicated partition, they
(RCCTUTIL and RCCTTIME) are used in calculating
utilization which must be done differently when the
logical processors are dedicated to physical
processors.
2. Calculating a (per-CPU-type-pool) T/V ratio. That
is, within a given CPU type, a ratio of non-wait
execution time to guest emulation (run under SIE)
time. This is used when making park/unpark decisions
to gauge the potential MP overhead savings by parking
a CPU.
The arrays have MAXRPROC doubleword entries and are
indexed by cpu address. At each interval the value of
non-wait execution time in microseconds since the CPU was
brought online is calculated using PFXTMSYS and PFXUTIME.
HCPWHI calculates utilization for the interval as the
difference from the non-wait execution time of the prior
interval. The same calculation is performed for guest
emulation time.
07C0 1984 Address 4 RCCTUTIL HLA pointer to the array of
interval utilization in micro-
seconds calculated from PFXTMSYS
and PFXUTIME since the last
interval.
07C4 1988 Address 4 RCCTTIME HLA pointer to the array of
non-wait execution time in
microseconds calculated from
PFXTMSYS and PFXUTIME.
07C8 1992 Address 4 RCCVUTIL HLA pointer to the array of
interval utilization in micro-
seconds calculated from PFXPRBTM
since the last interval.
07CC 1996 Address 4 RCCVTIME HLA pointer to the array of guest
emulation time in microseconds
calculated from PFXPRBTM.
These fields are used to record the duration of HCPSGRSP
SIGP Restarts. Monitor record MRPRCPUP (D5R16) records
the duration and count in the D5R16 record.
Note, however, that RCCSIGTD and RCCSIGCT include SIGP
Restarts for operations unrelated to processor parking.
07D0 2000 Dbl-Word 8 RCCSIGTM Work area for timestamp used to
calculate the duration of SIGP
restart operations. Serialized by
vary proc lock.
07D8 2008 Dbl-Word 8 RCCSIGTE Work area for timestamp used to
calculate the duration of SIGP
restart operations. Serialized by
vary proc lock.
07E0 2016 Dbl-Word 8 RCCSIGTD Cumulative duration of time spent
in SIGP restarts expressed as the
sum of the TOD clock increments
between the time the SIGP restart
started and returned. Serialized
by vary proc lock.
07E8 2024 Signed 4 RCCSIGCT Cumulative count of successful
SIGP restarts. Serialized by vary
proc lock.
07EC 2028 Signed 4 * Reserved for IBM use Space 1
07F0 2032 Signed 4 RCCBKEND (0) End of the RCCBK
| |