class TShPoolCreateInfo |
Specifies characteristics of the pool to be created.
Public Member Functions | |
---|---|
TShPoolCreateInfo(TShPoolPageAlignedBuffers, TUint, TUint) | |
TShPoolCreateInfo(TShPoolNonPageAlignedBuffers, TUint, TUint, TUint) | |
IMPORT_C TInt | SetExclusive() |
IMPORT_C TInt | SetGuardPages() |
IMPORT_C TInt | SetSizingAttributes(TUint, TUint, TUint, TUint) |
Private Member Functions | |
---|---|
TShPoolCreateInfo() |
Public Member Enumerations | |
---|---|
enum | TShPoolNonPageAlignedBuffers { ENonPageAlignedBuffer = EShPoolNonPageAlignedBuffer } |
enum | TShPoolPageAlignedBuffers { EPageAlignedBuffer = EShPoolPageAlignedBuffer } |
Private Attributes | |
---|---|
TShPoolInfo | iInfo |
IMPORT_C | TShPoolCreateInfo | ( | TShPoolPageAlignedBuffers | aFlag, |
TUint | aBufSize, | |||
TUint | aInitialBufs | |||
) |
Specifies the buffer size and initial number of committed buffers for a pool with page-aligned buffers.
TShPoolPageAlignedBuffers aFlag | Page-aligned buffers |
TUint aBufSize | Size in bytes of each buffer within the pool |
TUint aInitialBufs | Initial number of buffers allocated to the pool |
IMPORT_C | TShPoolCreateInfo | ( | TShPoolNonPageAlignedBuffers | aFlag, |
TUint | aBufSize, | |||
TUint | aInitialBufs, | |||
TUint | aAlignment | |||
) |
Specifies the buffer size, initial number of committed buffers, and buffer alignment for a pool with non-page-aligned buffers.
TShPoolNonPageAlignedBuffers aFlag | Non-page aligned buffers |
TUint aBufSize | Size in bytes of each buffer within the pool |
TUint aInitialBufs | Initial number of buffers allocated to the pool |
TUint aAlignment | Alignment of the start of each buffer in the pool (shift/log2 value) |
IMPORT_C TInt | SetExclusive | ( | ) |
Ensures that each buffer is mapped into at most one process address space at a time.
If this is set for a non-page-aligned pool, the pool creation will fail.
IMPORT_C TInt | SetGuardPages | ( | ) |
Specifies that unmapped guard pages are inserted between each buffer in a process's address space.
If this is set for a non-page-aligned pool, the pool creation will fail.
IMPORT_C TInt | SetSizingAttributes | ( | TUint | aMaxBufs, |
TUint | aGrowTriggerRatio, | |||
TUint | aGrowByRatio, | |||
TUint | aShrinkHysteresisRatio | |||
) |
Sets the sizing attributes for the pool, allowing it to grow and shrink automatically.
If either aGrowTriggerRatio or aGrowByRatio is 0, no automatic growing or shrinking will be performed.
TUint aMaxBufs | The maximum number of buffers that the pool can grow to. This value must not be less than aInitialBufs. |
TUint aGrowTriggerRatio | This specifies when to grow the pool. When the proportion of free buffers in the pool drops below this value, the pool will be grown. This value is expressed as a 32-bit fixed-point number, where the binary point is defined to be between bits 7 and 8 (where the least-significant bit is defined as bit 0). (This format is also known as a Q8, or fx24.8 number, or alternatively as the value * 256.) It must represent a value < 1 (i.e. must be < 256). |
TUint aGrowByRatio | The proportion to grow the pool by each time, expressed as a 32-bit fx24.8 fixed-point number, in the same way as aGrowTriggerRatio. |
TUint aShrinkHysteresisRatio | The hysteresis value to ensure that a pool is not automatically shrunk immediately after it is grown. Automatic shrinking will only happen when there are (aGrowTriggerRatio + aGrowByRatio) * aShrinkHysteresisRatio * (total buffers in the pool) free buffers left in the pool. This is a 32-bit fx24.8 fixed-point number in the same way as aGrowTriggerRatio and aGrowByRatio. It must represent a value > 1 (i.e. must be > 256). |
Enumeration type to create a pool with non-page-aligned buffers.
The buffers in the pool do not have any size or alignment restrictions beyond the iAlignment specified in TShPoolInfo.
The whole pool will always mapped into a process's address space.
ENonPageAlignedBuffer = EShPoolNonPageAlignedBuffer |
Enumeration type to create a pool with page-aligned buffers.
The buffers in the pool will be at least the size of an MMU page, aligned to an MMU page, and may be mapped in and out of a process's address space independently.
EPageAlignedBuffer = EShPoolPageAlignedBuffer |
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.