
IBM3206K0424
Preliminary
IBM Processor for Network Resources
pnr25.chapt04.01
August 14, 2000
Buffer Pool Management (POOLS)
Page 253 of 676
9.2: POOLS Free Pointer Primitive
The POOLS Free Pointer Primitive returns the pointer to the proper free list. If it is a Virtual Memory address, 
the Virtual Memory Buffer Map is traversed to free the indexes associated with the Virtual Memory address. 
In the case where it is a real memory buffer, the single index is freed.
This primitive uses address mapping to select the size of the object to be freed. The size is contained in 
address bits 4-2. During normal operation, only frees to buffer size four are relevant. During initialization 
mode, buffer sizes 0 to 3 can be used to load indexes. The indexes are loaded into bits 31-16.
In normal operations it is not necessary to read this "register".
9.3: POOLS Common Pools Count Registers
The POOLS Common Pools Count Registers indicates the number of pointers in the particular common pool.
The bits are a 16-bit count. The Get Pointers that exceed the guaranteed allocation decrement this count by 
one assuming that the count is non-zero. When the count is zero, the Get Buffer operation will fail. The Free 
Pointers that operate beyond the guaranteed threshold for a particular client and free the pointer(s) increment 
this count by one. The microcode should initialize these registers to the value of the respective common pool 
that it desires to have.
Length
32 bits
Type
Write Only
Address
Buffer Size 0
XXXX 3350
Buffer Size 1
XXXX 3354
Buffer Size 2
XXXX 3358
Buffer Size 3
XXXX 335C
Virtual Packets/ 
Buffer Size 4
XXXX 3360
Power on Value
X
’
00000000
’
Restrictions
During normal operations this register is to be used as a Write only register. Reads 
from this address will return 
’
0
’
.
Length
16 bits
Type
Read/Write
Address
Buffer Size 0
XXXX 3000
Buffer Size 1
XXXX 3004
Buffer Size 2
XXXX 3008
Buffer Size 3
XXXX 300C
Virtual Packets / 
Buffer Size 4
XXXX 3010
Power on Value
X
’
0000
’
Restrictions
During normal operations these registers are to be used as a read only. Writing to these 
registers during operation could create a data loss situation. This register should be set 
up by the microcode at initialization time.