Home > Veritas Storage Foundation™ File System Manual Pages
VXFS_AP_DEFINE2 (3) |
Library Functions |
cc -I /opt/VRTS/include -L /opt/VRTS/lib
-l vxfsutil -ldl
#include <sys/types.h>
#include <vxfsutil.h>
int vxfs_ap_define2(int fd, struct fsap_info2 \(**info, uint32_t flags);
To use this function, specify -l vxfsutil while linking.
A chunk is in units of bytes.struct fsap_info2 { char ap_name[FSAP_NAMESZ]; uint32_t ap_flags; uint32_t ap_order; uint64_t ap_chunk; uint32_t ap_ncomp; uint32_t ap_pad; union { char apc_vols[1][FSVOL_NAMEZ]; char apc_subp[1][FSAP_NAMEZ]; } ap_comp; }; #define ap_vols ap_comp.apc_vols #define ap_subp ap_comp.apc_subp
Possible values for ap_flags are:
- FSAP_ANYUSER
- The policy can be assigned by non-privileged users. By default, only privileged users can assign policies.
- FSAP_SUBPOLICIES
- The policy definition will contain the names of other allocation policies in its component list. Without this flag, the component list will contain volume names. A policy can refer to either subpolicies or volumes, but not to both.
Possible values for ap_order are:
- FSAP_ORDER_ASGIVEN
- Allocations are done from the components in the order in which they are given in the allocation policy.
- FSAP_ORDER_LEASTFULL
- Allocations are done from the volume specified in the allocation policy that has the most free blocks. This order cannot be used in FSAP_SUBPOLICIES definitions.
- FSAP_ORDER_ROUNDROBIN
- Allocations are done from a component that is selected in a round-robin fashion from those specified in the allocation policy.
- FSAP_ORDER_BALANCE
- Allocations are done from a volume that is selected at random from those specified in the allocation policy. When a volume is selected, the allocation is limited to a maximum chunk size. This order cannot be used in FSAP_SUBPOLICIES definitions.
This API supports file system versions 6.0 and above.
- The specified number of components exceeds the maximum value
- The specified list of components contains a duplicate entry
- An FSAP_ORDER_BALANCE policy does not have a chunk size
- A policy with an ordering other than FSAP_ORDER_BALANCE has a chunk size
- An FSAP_SUBPOLICIES definition is attempting to use the FS_AP_LEASTFULL or FS_AP_BALANCE order
- An FSAP_SUBPOLICIES definition refers to subpolicies that are themselves FSAP_SUBPOLICIES; only policy trees with a depth of 2 are supported; FSAP_SUBPOLICIES policies must refer to policies that contain volumes
#include <vxfsutil.h> /* * Define a simple policy. */ int define_simple_policy() { struct fsap_info2 \(**ap = NULL; uint32_t ncomp = 2; uint32_t comp; int err; int fd; if ((fd = open("My_mountpoint", O_RDONLY)) < 0) { return errno; } if ((ap = vxfs_ap_alloc2(ncomp, 0)) == NULL) { close(fd); return ENOMEM; } strncpy((char \(**)ap->ap_name, "My_policy_name", FSAP_NAMESZ); ap->ap_flags = 0; ap->ap_order = FSAP_ORDER_ASGIVEN; ap->ap_chunk = 0; ap->ap_ncomp = ncomp; for (comp = 0; comp < ap->ap_ncomp; comp++) { sprintf(ap->ap_vols[comp], "Volume_%d", comp); } if (err = vxfs_ap_define2(fd, ap, 0)) { goto out; } out: close(fd); if (ap) { vxfs_ap_free2(ap); } return err; }
Last updated: 7 May 2007
Copyright ©2009 Symantec Corporation
All rights reserved.