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

elf_getident

, elf_getshnum

, elf_getshstrndx

- retrieve ELF header data

Synopsis

cc [ flag ... ] file ... -lelf [ library ... ]
#include <libelf.h>

char * elf_getident(Elf *elf, size_t *dst);
int elf_getshnum(Elf *elf, size_t *dst);
int elf_getshstrndx(Elf *elf, size_t *dst);

Description

As elf(3ELF) explains, ELF provides a framework for various classes of files, where basic objects may have 32 bits, 64 bits, etc. To accommodate these differences, without forcing the larger sizes on smaller machines, the initial bytes in an ELF file hold identification information common to all file classes. Every ELF header's e_ident has EI_NIDENT bytes with the following interpretation:

e_ident Index
Value
Purpose
EI_MAG0
ELFMAG0
File identification
EI_MAG1
ELFMAG1
EI_MAG2
ELFMAG2
EI_MAG3
ELFMAG3
EI_CLASS
ELFCLASSNONE
File class
ELFCLASS32
ELFCLASS64
EI_DATA
ELFDATANONE
Data encoding
ELFDATA2LSB
ELFDATA2MSB
EI_VERSION
EV_CURRENT
File version
7-15
0
Unused, set to zero

Other kinds of files (see elf_kind(3ELF)) also may have identification data, though they would not conform to e_ident.

elf_getident() returns a pointer to the file's ``initial bytes.'' If the library recognizes the file, a conversion from the file image to the memory image may occur. In any case, the identification bytes are guaranteed not to have been modified, though the size of the unmodified area depends on the file type. If dst is non-null, the library stores the number of identification bytes in the location to which dst points. If no data are present, elf is null, or an error occurs, the return value is a null pointer, with 0 stored through dst, if dst is non-null.

The elf_getshnum() function obtains the number of sections recorded in the ELF file. The number of sections in a file is typically recorded in the e_shnum field of the ELF header, though a file that requires ELF Extended Sections records the value 0 in the e_shnum field and records the number of sections in the sh_size field of section header 0. See USAGE. dst points to the location where the number of sections will be stored. If a call to elf_newscn(3ELF) using the same elf descriptor has been performed, then the value obtained by elf_getshnum() is only valid after a successful call to elf_update(3ELF). If elf is NULL or an error occurs, elf_getshnum() returns -1.

The elf_getshstrndx() function obtains the section index of the string table associated with the section headers in the ELF file. The section header string table index is typically recorded in the e_shstrndx field of the ELF header, though a file that requires ELF Extended Sections records the value SHN_XINDEX in the e_shstrndx field and records the string table index in the sh_link field of section header 0. See USAGE. The dst argument points to the location where the section header string table index is stored. If elf is NULL or an error occurs, elf_getshstrndx() returns -1.

Usage

ELF Extended Sections are employed to allow an ELF file to contain more than 0xff00 (SHN_LORESERVE) section. See the Linker and Libraries Guide for more information.

Attributes

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

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

See Also

elf(3ELF), elf32_getehdr(3ELF), elf_begin(3ELF), elf_kind(3ELF), elf_newscn(3ELF), elf_rawfile(3ELF), elf_update(3ELF), libelf(3LIB), attributes(5)

Linker and Libraries Guide