JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
man pages section 3: Extended Library Functions     Oracle Solaris 10 8/11 Information Library
search filter icon
search icon

Document Information

Preface

Extended Library Functions - Part 1

Extended Library Functions - Part 2

dat_lmr_sync_rdma_read(3DAT)

dat_lmr_sync_rdma_write(3DAT)

dat_provider_fini(3DAT)

dat_provider_init(3DAT)

dat_psp_create(3DAT)

dat_psp_create_any(3DAT)

dat_psp_free(3DAT)

dat_psp_query(3DAT)

dat_pz_create(3DAT)

dat_pz_free(3DAT)

dat_pz_query(3DAT)

dat_registry_add_provider(3DAT)

dat_registry_list_providers(3DAT)

dat_registry_remove_provider(3DAT)

dat_rmr_bind(3DAT)

dat_rmr_create(3DAT)

dat_rmr_free(3DAT)

dat_rmr_query(3DAT)

dat_rsp_create(3DAT)

dat_rsp_free(3DAT)

dat_rsp_query(3DAT)

dat_set_consumer_context(3DAT)

dat_srq_create(3DAT)

dat_srq_free(3DAT)

dat_srq_post_recv(3DAT)

dat_srq_query(3DAT)

dat_srq_resize(3DAT)

dat_srq_set_lw(3DAT)

dat_strerror(3DAT)

del_CplFileConf(3TECLA)

del_ExpandFile(3TECLA)

del_GetLine(3TECLA)

del_PathCache(3TECLA)

del_PcaPathConf(3TECLA)

del_WordCompletion(3TECLA)

demangle(3EXT)

devid_compare(3DEVID)

devid_deviceid_to_nmlist(3DEVID)

devid_free(3DEVID)

devid_free_nmlist(3DEVID)

devid_get(3DEVID)

devid_get_minor_name(3DEVID)

devid_sizeof(3DEVID)

devid_str_decode(3DEVID)

devid_str_encode(3DEVID)

devid_str_free(3DEVID)

devid_valid(3DEVID)

di_binding_name(3DEVINFO)

di_bus_addr(3DEVINFO)

di_child_node(3DEVINFO)

di_compatible_names(3DEVINFO)

di_devfs_minor_path(3DEVINFO)

di_devfs_path(3DEVINFO)

di_devfs_path_free(3DEVINFO)

di_devid(3DEVINFO)

di_driver_major(3DEVINFO)

di_driver_name(3DEVINFO)

di_driver_ops(3DEVINFO)

di_drv_first_node(3DEVINFO)

di_drv_next_node(3DEVINFO)

di_fini(3DEVINFO)

di_init(3DEVINFO)

di_instance(3DEVINFO)

di_link_next_by_lnode(3DEVINFO)

di_link_next_by_node(3DEVINFO)

di_link_private_get(3DEVINFO)

di_link_private_set(3DEVINFO)

di_link_spectype(3DEVINFO)

di_link_to_lnode(3DEVINFO)

di_lnode_devinfo(3DEVINFO)

di_lnode_devt(3DEVINFO)

di_lnode_name(3DEVINFO)

di_lnode_next(3DEVINFO)

di_lnode_private_get(3DEVINFO)

di_lnode_private_set(3DEVINFO)

di_minor_devt(3DEVINFO)

di_minor_name(3DEVINFO)

di_minor_next(3DEVINFO)

di_minor_nodetype(3DEVINFO)

di_minor_private_get(3DEVINFO)

di_minor_private_set(3DEVINFO)

di_minor_spectype(3DEVINFO)

di_nodeid(3DEVINFO)

di_node_name(3DEVINFO)

di_node_private_get(3DEVINFO)

di_node_private_set(3DEVINFO)

di_parent_node(3DEVINFO)

di_prom_fini(3DEVINFO)

di_prom_init(3DEVINFO)

di_prom_prop_data(3DEVINFO)

di_prom_prop_lookup_bytes(3DEVINFO)

di_prom_prop_lookup_ints(3DEVINFO)

di_prom_prop_lookup_strings(3DEVINFO)

di_prom_prop_name(3DEVINFO)

di_prom_prop_next(3DEVINFO)

di_prop_bytes(3DEVINFO)

di_prop_devt(3DEVINFO)

di_prop_int64(3DEVINFO)

di_prop_ints(3DEVINFO)

di_prop_lookup_bytes(3DEVINFO)

di_prop_lookup_int64(3DEVINFO)

di_prop_lookup_ints(3DEVINFO)

di_prop_lookup_strings(3DEVINFO)

di_prop_name(3DEVINFO)

di_prop_next(3DEVINFO)

di_prop_strings(3DEVINFO)

di_prop_type(3DEVINFO)

DisconnectToServer(3DMI)

di_sibling_node(3DEVINFO)

di_walk_link(3DEVINFO)

di_walk_lnode(3DEVINFO)

di_walk_minor(3DEVINFO)

di_walk_node(3DEVINFO)

DmiAddComponent(3DMI)

DmiAddGroup(3DMI)

DmiAddLanguage(3DMI)

DmiAddRow(3DMI)

DmiDeleteComponent(3DMI)

DmiDeleteGroup(3DMI)

DmiDeleteLanguage(3DMI)

DmiDeleteRow(3DMI)

dmi_error(3DMI)

DmiGetAttribute(3DMI)

DmiGetConfig(3DMI)

DmiGetMultiple(3DMI)

DmiGetVersion(3DMI)

DmiListAttributes(3DMI)

DmiListClassNames(3DMI)

DmiListComponents(3DMI)

DmiListComponentsByClass(3DMI)

DmiListGroups(3DMI)

DmiListLanguages(3DMI)

DmiOriginateEvent(3DMI)

DmiRegister(3DMI)

DmiRegisterCi(3DMI)

DmiSetAttribute(3DMI)

DmiSetConfig(3DMI)

DmiSetMultiple(3DMI)

DmiUnregister(3DMI)

DmiUnregisterCi(3DMI)

ea_alloc(3EXACCT)

ea_attach_to_group(3EXACCT)

ea_attach_to_object(3EXACCT)

ea_close(3EXACCT)

ea_copy_object(3EXACCT)

ea_copy_object_tree(3EXACCT)

ea_error(3EXACCT)

ea_free(3EXACCT)

ea_free_item(3EXACCT)

ea_free_object(3EXACCT)

ea_get_creator(3EXACCT)

ea_get_hostname(3EXACCT)

ea_get_object(3EXACCT)

ea_get_object_tree(3EXACCT)

ea_match_object_catalog(3EXACCT)

ea_next_object(3EXACCT)

ea_open(3EXACCT)

ea_pack_object(3EXACCT)

ea_previous_object(3EXACCT)

ea_set_group(3EXACCT)

ea_set_item(3EXACCT)

ea_strdup(3EXACCT)

ea_strfree(3EXACCT)

ea_unpack_object(3EXACCT)

ea_write_object(3EXACCT)

ef_expand_file(3TECLA)

efi_alloc_and_init(3EXT)

efi_alloc_and_read(3EXT)

efi_free(3EXT)

efi_write(3EXT)

ef_last_error(3TECLA)

ef_list_expansions(3TECLA)

elf32_checksum(3ELF)

elf32_fsize(3ELF)

elf32_getehdr(3ELF)

elf32_getphdr(3ELF)

elf32_getshdr(3ELF)

elf32_newehdr(3ELF)

elf32_newphdr(3ELF)

elf32_xlatetof(3ELF)

elf32_xlatetom(3ELF)

elf(3ELF)

elf64_checksum(3ELF)

elf64_fsize(3ELF)

elf64_getehdr(3ELF)

elf64_getphdr(3ELF)

elf64_getshdr(3ELF)

elf64_newehdr(3ELF)

elf64_newphdr(3ELF)

elf64_xlatetof(3ELF)

elf64_xlatetom(3ELF)

elf_begin(3ELF)

elf_cntl(3ELF)

elf_end(3ELF)

elf_errmsg(3ELF)

elf_errno(3ELF)

elf_fill(3ELF)

elf_flagdata(3ELF)

elf_flagehdr(3ELF)

elf_flagelf(3ELF)

elf_flagphdr(3ELF)

elf_flagscn(3ELF)

elf_flagshdr(3ELF)

elf_getarhdr(3ELF)

elf_getarsym(3ELF)

elf_getbase(3ELF)

elf_getdata(3ELF)

elf_getident(3ELF)

elf_getscn(3ELF)

elf_getshnum(3ELF)

elf_getshstrndx(3ELF)

elf_hash(3ELF)

elf_kind(3ELF)

elf_memory(3ELF)

elf_ndxscn(3ELF)

elf_newdata(3ELF)

elf_newscn(3ELF)

elf_next(3ELF)

elf_nextscn(3ELF)

elf_rand(3ELF)

elf_rawdata(3ELF)

elf_rawfile(3ELF)

elf_strptr(3ELF)

elf_update(3ELF)

elf_version(3ELF)

endac(3BSM)

endauclass(3BSM)

endauevent(3BSM)

endauthattr(3SECDB)

endauuser(3BSM)

endexecattr(3SECDB)

endprofattr(3SECDB)

endprojent(3PROJECT)

enduserattr(3SECDB)

erf(3M)

erfc(3M)

erfcf(3M)

erfcl(3M)

erff(3M)

erfl(3M)

Exacct(3PERL)

Exacct::Catalog(3PERL)

Exacct::File(3PERL)

Exacct::Object(3PERL)

Exacct::Object::Group(3PERL)

Exacct::Object::Item(3PERL)

exp2(3M)

exp2f(3M)

exp2l(3M)

exp(3M)

expf(3M)

expl(3M)

expm1(3M)

expm1f(3M)

expm1l(3M)

fabs(3M)

fabsf(3M)

fabsl(3M)

facl_get(3SEC)

facl_set(3SEC)

fdim(3M)

fdimf(3M)

fdiml(3M)

feclearexcept(3M)

fegetenv(3M)

fegetexceptflag(3M)

fegetprec(3M)

fegetround(3M)

feholdexcept(3M)

feraiseexcept(3M)

fesetenv(3M)

fesetexceptflag(3M)

fesetprec(3M)

fesetround(3M)

fetestexcept(3M)

feupdateenv(3M)

fex_getexcepthandler(3M)

fex_get_handling(3M)

fex_get_log(3M)

fex_get_log_depth(3M)

fex_log_entry(3M)

fex_merge_flags(3M)

fex_setexcepthandler(3M)

fex_set_handling(3M)

fex_set_log(3M)

fex_set_log_depth(3M)

fgetprojent(3PROJECT)

fgetuserattr(3SECDB)

floor(3M)

floorf(3M)

floorl(3M)

fma(3M)

fmaf(3M)

fmal(3M)

fmax(3M)

fmaxf(3M)

fmaxl(3M)

fmev_attr_list(3FM)

fmev_class(3FM)

fmev_dup(3FM)

fmev_errno(3FM)

fmev_hold(3FM)

fmev_localtime(3FM)

fmev_rele(3FM)

fmev_shdl_alloc(3FM)

fmev_shdlctl_serialize(3FM)

fmev_shdlctl_sigmask(3FM)

fmev_shdlctl_thrattr(3FM)

fmev_shdlctl_thrcreate(3FM)

fmev_shdlctl_thrsetup(3FM)

fmev_shdl_fini(3FM)

fmev_shdl_free(3FM)

fmev_shdl_init(3FM)

fmev_shdl_subscribe(3FM)

fmev_shdl_unsubscribe(3FM)

fmev_shdl_zalloc(3FM)

fmev_strerror(3FM)

fmev_time_nsec(3FM)

fmev_time_sec(3FM)

fmev_timespec(3FM)

fmin(3M)

fminf(3M)

fminl(3M)

fmod(3M)

fmodf(3M)

fmodl(3M)

fpclassify(3M)

free_authattr(3SECDB)

freeDmiString(3DMI)

free_execattr(3SECDB)

free_profattr(3SECDB)

free_proflist(3SECDB)

free_userattr(3SECDB)

frexp(3M)

frexpf(3M)

frexpl(3M)

gamma(3M)

gammaf(3M)

gammaf_r(3M)

gammal(3M)

gammal_r(3M)

gamma_r(3M)

gelf(3ELF)

gelf_checksum(3ELF)

gelf_fsize(3ELF)

gelf_getcap(3ELF)

gelf_getclass(3ELF)

gelf_getdyn(3ELF)

gelf_getehdr(3ELF)

gelf_getmove(3ELF)

gelf_getphdr(3ELF)

gelf_getrel(3ELF)

gelf_getrela(3ELF)

gelf_getshdr(3ELF)

gelf_getsym(3ELF)

gelf_getsyminfo(3ELF)

gelf_getsymshndx(3ELF)

gelf_newehdr(3ELF)

gelf_newphdr(3ELF)

gelf_update_cap(3ELF)

gelf_update_dyn(3ELF)

gelf_update_ehdr(3ELF)

Extended Library Functions - Part 3

Extended Library Functions - Part 4

Extended Library Functions - Part 5

Extended Library Functions - Part 6

ea_set_item

, ea_alloc

, ea_strdup

, ea_set_group

, ea_match_object_catalog

, ea_attach_to_object

, ea_attach_to_group

, ea_free

, ea_strfree

, ea_free_item

, ea_free_object

- create, destroy and manipulate exacct objects

Synopsis

cc [ flag… ] file-lexacct [ library… ] 
#include <exacct.h>

int ea_set_item(ea_object_t *obj, ea_catalog_t tag, void *value,
     size_t valsize);
void *ea_alloc(size_t size);
char *ea_strdup(char *ptr);
int ea_set_group(ea_object_t *obj, ea_catalog_t tag);
int ea_match_object_catalog(ea_object_t *obj, ea_catalog_t catmask);
void ea_attach_to_object(ea_object_t *head_obj, ea_object_t *obj);
void ea_attach_to_group(ea_object_t *group_obj, ea_object_t *obj);
void ea_free(void *ptr, size_t size);
void ea_strfree(char *ptr);
int ea_free_item(ea_object_t *obj, int flag);
void ea_free_object(ea_object_t *obj, int flag);

Description

The ea_alloc() function allocates a block of memory of the requested size. This block can be safely passed to libexacct functions, and can be safely freed by any of the ea_free() functions.

The ea_strdup() function can be used to duplicate a string that is to be stored inside an ea_object_t structure.

The ea_set_item() function assigns the given exacct object to be a data item with value set according to the remaining arguments. For buffer-based data values (EXT_STRING, EXT_EXACCT_OBJECT, and EXT_RAW), a copy of the passed buffer is taken. In the case of EXT_EXACCT_OBJECT, the passed buffer should be a packed exacct object as returned by ea_pack_object(3EXACCT). Any item assigned with ea_set_item() should be freed with ea_free_item() specifying a flag value of EUP_ALLOC when the item is no longer needed.

The ea_match_object_catalog() function returns TRUE if the exacct object specified by obj has a catalog tag that matches the mask specified by catmask.

The ea_attach_to_object() function attaches an object to the given object. The ea_attach_to_group() function attaches a chain of objects as member items of the given group. Objects are inserted at the end of the list of any previously attached objects.

The ea_free() function frees a block of memory previously allocated by ea_alloc().

The ea_strfree() function frees a string previously copied by ea_strdup().

The ea_free_item() function frees the value fields in the ea_object_t indicated by obj, if EUP_ALLOC is specified. The object itself is not freed. The ea_free_object() function frees the specified object and any attached hierarchy of objects. If the flag argument is set to EUP_ALLOC, ea_free_object() will also free any variable-length data in the object hierarchy; if set to EUP_NOALLOC, ea_free_object() will not free variable-length data. In particular, these flags should correspond to those specified in calls to ea_unpack_object(3EXACCT).

Return Values

The ea_match_object_catalog() function returns 0 if the object's catalog tag does not match the given mask, and 1 if there is a match.

Other integer-valued functions return 0 if successful. Otherwise these functions return -1 and set the extended accounting error code appropriately. Pointer-valued functions return a valid pointer if successful and NULL otherwise, setting the extended accounting error code appropriately. The extended accounting error code can be examined with ea_error(3EXACCT).

Errors

The ea_set_item(), ea_set_group(), and ea_match_object_catalog() functions may fail if:

EXR_SYSCALL_FAIL

A system call invoked by the function failed. The errno variable contains the error value set by the underlying call.

EXR_INVALID_OBJECT

The passed object is of an incorrect type, for example passing a group object to ea_set_item().

Usage

The exacct file format can be used to represent data other than that in the extended accounting format. By using a unique creator type in the file header, application writers can develop their own format suited to the needs of their application.

Examples

Example 1 Open and close exacct file.

Construct an exacct file consisting of a single object containing the current process ID.

#include <sys/types.h>
#include <unistd.h>
#include <exacct.h>

...

ea_file_t ef;
ea_object_t obj;
pid_t my_pid;

my_pid = getpid();
ea_set_item(&obj, EXT_UINT32 | EXC_DEFAULT | EXT_PROC_PID,
       &my_pid, sizeof(my_pid));

...

Attributes

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Interface Stability
Evolving
MT-Level
MT-Safe

See Also

read(2), ea_error(3EXACCT), ea_open(3EXACCT), ea_pack_object(3EXACCT), libexacct(3LIB), attributes(5)