VMS Help RTL Routines, LIB$, LIB$CREATE_VM_ZONE_64, Arguments *Conan The Librarian (sorry for the slow response - running on an old VAX) |
zone-id OpenVMS usage:identifier type: quadword (unsigned) access: write only mechanism: by reference Zone identifier. The zone-id argument is the address of a quadword that is set to the zone identifier of the newly created zone. algorithm OpenVMS usage:quadword_signed type: quadword integer (signed) access: read only mechanism: by reference Algorithm. The algorithm argument is the address of a quadword integer that represents the code for one of the LIB$VM algorithms. Use one of the following predefined symbols to specify this value: Symbol Value Algorithm LIB$K_VM_FIRST_FIT 1 First fit LIB$K_VM_QUICK_FIT 2 Quick fit, lookaside list LIB$K_VM_FREQ_SIZES 3 Frequent sizes, lookaside list LIB$K_VM_FIXED 4 Fixed-size blocks If algorithm is not specified, a default of 1 (first fit) is used. algorithm-argument OpenVMS usage:quadword_signed type: quadword integer (signed) access: read only mechanism: by reference Algorithm argument. The algorithm-argument argument is the address of a quadword integer that contains a value specific to the particular allocation algorithm. Algorithm Value First fit Not used, may be omitted. Quick fit The number of lookaside lists used. The number of lists must be between 1 and 128. Frequent The number of lookaside lists used. The number of sizes lists must be between 1 and 16. Fixed size The fixed request size (in bytes) for each get blocks or free request. The request size must be greater than 0. The algorithm-argument argument must be specified if you are using the quick-fit, frequent-sizes or fixed-size-blocks algorithms. However, this argument is optional, but ignored, if you are using the first-fit algorithm. flags OpenVMS usage:mask_quadword type: quadword (unsigned) access: read only mechanism: by reference Flags. The flags argument is the address of a quadword integer that contains flag bits that control various options, as follows: Bit Value Description 0 LIB$M_VM_BOUNDARY_ Boundary tags for faster freeing. TAGS Adds a minimum of 16 bytes to each block. 1 LIB$M_VM_GET_FILL0 LIB$GET_VM_64; fill with bytes of 0. 2 LIB$M_VM_GET_FILL1 LIB$GET_VM_64; fill with bytes of FF (hexadecimal). 3 LIB$M_VM_FREE_FILL0 LIB$FREE_VM_64; fill with bytes of 0. 4 LIB$M_VM_FREE_FILL1 LIB$FREE_VM_64; fill with bytes of FF (hexadecimal). 5 LIB$M_VM_EXTEND_ Adds extents to existing areas if AREA possible. 6 LIB$M_VM_NO_EXTEND Prevents zone from being extended beyond its initial size. If you specify this flag, you must also specify an initial-size. Extend-size is not used. 7 LIB$M_VM_TAIL_LARGE Adds areas larger than extend-size areas to the end of the area list. Allocations that are larger than extend-size can result in new areas. These areas are added to the end of the area list. (This provides better memory re-use when allocating small and very large blocks from the same zone.) Bits 8 through 63 are reserved and must be 0. This is an optional argument. If flags is omitted, the default of 0 (no fill and no boundary tags) is used. extend-size OpenVMS usage:quadword_signed type: quadword integer (signed) access: read only mechanism: by reference Zone extend size. The extend-size argument is the address of a quadword integer that contains the number of Alpha pagelets to be added to the zone each time it is extended. The value of extend-size must be greater than or equal to 1. This is an optional argument. If extend-size is not specified, a default of 16 Alpha pagelets is used. NOTE The extend-size argument does not limit the number of blocks that can be allocated from the zone. The actual extension size is the greater of extend-size and the number of Alpha pagelets needed to satisfy the LIB$GET_VM_64 call that caused the extension. initial-size OpenVMS usage:quadword_signed type: quadword integer (signed) access: read only mechanism: by reference Initial size for the zone. The initial-size argument is the address of a quadword integer that contains the number of Alpha pagelets to be allocated for the zone as the zone is created. This is an optional argument. If you specify a value for initial- size, the value must be greater than or equal to 0; otherwise, LIB$_INVARG is returned. If initial-size is not specified or is specified as 0, no Alpha pagelets are allocated when the zone is created. The first call to LIB$GET_VM_64 for the zone allocates extend-size pagelets on Alpha systems. block-size OpenVMS usage:quadword_signed type: quadword integer (signed) access: read only mechanism: by reference Block size of the zone. The block-size argument is the address of a quadword integer specifying the allocation quantum (in bytes) for the zone. All blocks allocated are rounded up to a multiple of block-size. The value of block-size must be a power of 2 between 16 and 512. This is an optional argument. If block-size is not specified, a default of 16 is used. alignment OpenVMS usage:quadword_signed type: quadword integer (signed) access: read only mechanism: by reference Block alignment. The alignment argument is the address of a quadword integer that specifies the required address alignment (in bytes) for each block allocated. The value of alignment must be a power of 2 between 8 and 512. This is an optional argument. If alignment is not specified, a default of 16 (octaword alignment) is used. page-limit OpenVMS usage:quadword_signed type: quadword integer (signed) access: read only mechanism: by reference Maximum page limit. The page-limit argument is the address of a quadword integer that specifies the maximum number of Alpha pagelets that can be allocated for the zone. The value of page- limit must be greater than or equal to 0. Note that part of the zone is used for header information. This is an optional argument. If page-limit is not specified or is specified as 0, the only limit is the total process virtual address space limit imposed by OpenVMS. If page-limit is specified, then initial-size must also be specified. smallest-block-size OpenVMS usage:quadword_signed type: quadword integer (signed) access: read only mechanism: by reference Smallest block size. The smallest-block-size argument is the address of a quadword integer that specifies the smallest block size (in bytes) that has a lookaside list for the quick fit algorithm. If smallest-block-size is not specified, the default of block- size is used. That is, lookaside lists are provided for the first n multiples of block-size. zone-name OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Name to be associated with the zone being created. The optional zone-name argument is the address of a descriptor pointing to the zone name. If zone-name is not specified, the zone will not have an associated name. get-page OpenVMS usage:procedure type: procedure value access: read only mechanism: by value Routine that allocates memory. The number and type of the arguments to this routine must match those of the LIB$GET_VM_ PAGE_64 routine. If get-page is not specified or is specified as 0, the LIB$GET_VM_PAGE_64 routine is used to allocate memory. free-page OpenVMS usage:procedure type: procedure value access: read only mechanism: by value Routine that deallocates memory. The number and type of the arguments to this routine must match those of the LIB$FREE_VM_ PAGE_64 routine. If free-page is not specified or if free-page is specified as 0, the LIB$FREE_VM_PAGE_64 routine is used to deallocate memory.
|