Alphabetical List of Kernel Services

This list provides the names of all available kernel services. It is divided by the execution environment from which each kernel service can be called:

"System Calls Available to Kernel Extensions" in AIX Version 4.3 Kernel Extensions and Device Support Programming Concepts lists the systems calls that can be called by kernel extensions.

Kernel Services Available in Process and Interrupt Environments

add_domain_af Adds an address family to the Address Family domain switch table.
add_input_type Adds a new input type to the Network Input table.
add_netisr Adds a network software interrupt service to the Network Interrupt table.
add_netopt Adds a network option structure to the list of network options.
bdwrite Releases the specified buffer after marking it for delayed write.
brelse Frees the specified buffer.
clrbuf Sets the memory for the specified buffer structure's buffer to all zeros.
clrjmpx Removes a saved context by popping the most recently saved jump buffer from the list of saved contexts.
curtime Reads the current time into a time structure.
d_align Assists in allocation of DMA buffers.
d_cflush Flushes the processor and I/O controller (IOCC) data caches when using the long term DMA_WRITE_ONLY mapping of Direct Memory Access (DMA) buffers approach to bus device DMA.
d_clear Frees a DMA channel.
d_complete Cleans up after a DMA transfer.
d_init Initializes a DMA channel.
d_mask Disables a DMA channel.
d_master Initializes a block-mode DMA transfer for a DMA master.
d_move Provides consistent access to system memory that is accessed asynchronously by a device and by the processor.
d_roundup Assists in allocation of DMA buffers.
d_slave Initializes a block-mode DMA transfer for a DMA slave.
d_unmask Enables a DMA channel.
del_domain_af Deletes an address family from the Address Family domain switch table.
del_input_type Deletes an input type from the Network Input table.
del_netisr Deletes a network software interrupt service routine from the Network Interrupt table.
del_netopt Deletes a network option structure from the list of network options.
devdump Calls a device driver dump-to-device routine.
devstrat Calls a block device driver's strategy routine.
devswqry Checks the status of a device switch entry in the device switch table.
DTOM macro Converts an address anywhere within an mbuf structure to the head of that mbuf structure.
et_post Notifies a kernel thread of the occurrence of one or more events.
e_wakeup Notifies processes waiting on a shared event of the event's occurrence.
errsave and errlast Allows the kernel and kernel extensions to write to the error log.
find_input_type Finds the given packet type in the Network Input Interface switch table and distributes the input packet according to the table entry for that type.
getc Retrieves a character from a character list.
getcb Removes the first buffer from a character list and returns the address of the removed buffer.
getcbp Retrieves multiple characters from a character buffer and places them at a designated address.
getcf Retrieves a free character buffer.
getcx Returns the character at the end of a designated list.
geterror Determines the completion status of the buffer.
getexcept Allows kernel exception handlers to retrieve additional exception information.
getpid Gets the process ID of the current process.
i_disable Disables all of the interrupt levels at a particular interrupt priority and all interrupt levels at a less-favored interrupt priority.
i_enable Enables all of the interrupt levels at a particular interrupt priority and all interrupt levels at a more-favored interrupt priority.
i_mask Disables an interrupt level.
i_reset Resets the system's hardware interrupt latches.
i_sched Schedules off-level processing.
i_unmask Enables an interrupt level.
if_attach Adds a network interface to the network interface list.
if_detach Deletes a network interface from the network interface list.
if_down Marks an interface as down.
if_nostat Zeroes statistical elements of the interface array in preparation for an attach operation.
ifa_ifwithaddr Locates an interface based on a complete address.
ifa_ifwithdstaddr Locates the point-to-point interface with a given destination address.
ifa_ifwithnet Locates an interface on a specific network.
ifunit Returns a pointer to the ifnet structure of the requested interface.
io_att Selects, allocates, and maps a region in the current address space for I/O access.
io_det Unmaps and deallocates the region in the current address space at the given address.
iodone Performs block I/O completion processing.
IS64U Determines if the current user-address space is 64-bit or not.
kgethostname Retrieves the name of the current host.
kgettickd Retrieves the current status of the systemwide time-of-day timer-adjustment values.
ksettickd Sets the current status of the systemwide timer-adjustment values.
loifp Returns the address of the software loopback interface structure.
longjmpx Allows exception handling by causing execution to resume at the most recently saved context.
looutput Sends data through a software loopback interface.
m_adj Adjusts the size of an mbuf chain.
m_cat Appends one mbuf chain to the end of another.
m_clattach Allocates an mbuf structure and attaches an external cluster.
m_clget macro Allocates a page-sized mbuf structure cluster.
m_clgetm Allocates and attaches an external buffer.
m_collapse Guarantees that an mbuf chain contains no more than a given number of mbuf structures.
m_copy macro Creates a copy of all or part of a list of mbuf structures.
m_copydata Copies data from an mbuf chain to a specified buffer.
m_copym Creates a copy of all or part of a list of mbuf structures.
m_free Frees an mbuf structure and any associated external storage area.
m_freem Frees an entire mbuf chain.
m_get Allocates a memory buffer from the mbuf pool.
m_getclr Allocates and zeros a memory buffer from the mbuf pool.
m_getclust macro Allocates an mbuf structure from the mbuf buffer pool and attaches a page-sized cluster.
m_getclustm Allocates an mbuf structure from the mbuf buffer pool and attaches a cluster of the specified size.
m_gethdr Allocates a header memory buffer from the mbuf pool.
M_HASCL macro Determines if an mbuf structure has an attached cluster.
m_pullup Adjusts an mbuf chain so that a given number of bytes is in contiguous memory in the data area of the head mbuf structure.
MTOCL macro Converts a pointer to an mbuf structure to a pointer to the head of an attached cluster.
MTOD macro Converts a pointer to an mbuf structure to a pointer to the data stored in that mbuf structure.
M_XMEMD macro Returns the address of an mbuf cross-memory descriptor.
net_error Handles errors for AIX communication network interface drivers.
net_start_done Starts the done notification handler for AIX communications I/O device handlers.
net_wakeup Wakes up all sleepers waiting on the specified wait channel.
net_xmit Transmits data using an AIX communications I/O device handler.
net_xmit_trace Traces transmit packets. This kernel service was added for those network interfaces that choose not to use the net_xmit kernel service to trace transmit packets.
panic Crashes the system.
pfctlinput Invokes the ctlinput function for each configured protocol.
pffindproto Returns the address of a protocol switch table entry.
pidsig Sends a signal to a process.
pgsignal Sends a signal to a process group.
pio_assist Provides a standardized programmed I/O exception handling mechanism for all routines performing programmed I/O.
putc Places a character at the end of a character list.
putcb Places a character buffer at the end of a character list.
putcbp Places several characters at the end of a character list.
putcf Frees a specified buffer.
putcfl Frees the specified list of buffers.
putcx Places a character on a character list.
raw_input Builds a raw_header structure for a packet and sends both to the raw protocol handler.
raw_usrreq Implements user requests for raw protocols.
rtalloc Allocates a route.
rtfree Frees the routing table entry.
rtinit Sets up a routing table entry, typically for a network interface.
rtredirect Forces a routing table entry with the specified destination to go through the given gateway.
rtrequest Carries out a request to change the routing table.
schednetisr Schedules or invokes a network software interrupt service routine.
selnotify Wakes up processes waiting in a poll or select subroutine or the fp_poll kernel service.
setjmpx Allows saving the current execution state or context.
setpinit Sets the parent of the current kernel process to the init process.
tfree Deallocates a timer request block.
timeout Schedules a function to be called after a specified interval.
trcgenk Records a trace event for a generic trace channel.
trcgenkt Records a trace event, including a time stamp, for a generic trace channel.
tstart Submits a timer request.
tstop Cancels a pending timer request.
uexblock Makes a process non-runnable when called from a user-mode exception handler.
uexclear Makes a process blocked by the uexblock service runnable again.
unpin Unpins the address range in system (kernel) address space.
unpinu Unpins the specified address range in user or system memory.
untimeout Cancels a pending timer request.
vm_att Maps a specified virtual memory object to a region in the current address space.
vm_det Unmaps and deallocates the region in the current address space that contains a given address.
xmdetach Detaches from a user buffer used for cross-memory operations.
xmemdma Prepares a page for DMA I/O or processes a page after DMA I/O is complete.
xmemin Performs a cross-memory move by copying data from the specified address space to kernel global memory.
xmemout Performs a cross-memory move by copying data from kernel global memory to a specified address space.

Kernel Services Available in the Process Environment Only

as_att Selects, allocates, and maps a region in the specified address space for the specified virtual memory object.
as_att64 Allocates and maps a specified region in the current user address space.
as_det Unmaps and deallocates a region in the specified address space that was mapped with the as_att kernel service.
as_det64 Unmaps and deallocates a region in the current user address space that was mapped with the as_att64 kernel service.
as_geth64 Obtains a handle to the virtual memory object for the specified address.
as_getsrval64 Obtains a handle to the virtual memory object for the specified address.
as_puth64 Indicates that no more references will be made to a virtual memory object obtained using the as_geth64 kernel service.
as_remap64 Remaps an additional 64-bit address to a 32-bit address that can be used by the kernel.
as_seth64 Maps a specified region for the specified virtual memory object.
as_unremap64 Returns the 64-bit original or unremapped address associated with a 32-bit remapped address.
audit_svcbcopy Appends event information to the current audit event buffer.
audit_svcfinis Writes an audit record for a kernel service.
audit_svcstart Initiates an audit record for a system call.
bawrite Writes the specified buffer's data without waiting for I/O to complete.
bflush Flushes all write-behind blocks on the specified device from the buffer cache.
binval Invalidates all of a specified device's data in the buffer cache.
blkflush Flushes the specified block if it is in the buffer cache.
bread Reads the specified block's data into a buffer.
breada Reads in the specified block and then starts I/O on the read-ahead block.
bwrite Writes the specified buffer's data.
cfgnadd Registers a notification routine to be called when system-configurable variables are changed.
cfgndel Removes a notification routine for receiving broadcasts of changes to system configurable variables.
copyin Copies data between user and kernel memory.
copyin64 Copies data between user and kernel memory.
copyinstr Copies a character string (including the terminating NULL character) from user to kernel space.
copyinstr64 Copies data between user and kernel memory.
copyout Copies data between user and kernel memory.
copyout64 Copies data between user and kernel memory.
creatp Creates a new kernel process.
delay Suspends the calling process for the specified number of timer ticks.
devswadd Adds a device entry to the device switch table.
devswdel Deletes a device driver entry from the device switch table.
dmp_add Specifies data to be included in a system dump by adding an entry to the master dump table.
dmp_del Deletes an entry from the master dump table.
dmp_prinit Initializes the remote dump protocol.
e_sleep Forces a process to wait for the occurrence of a shared event.
e_sleepl Forces a process to wait for the occurrence of a shared event.
et_wait Forces a process to wait for the occurrence of an event.
enque Sends a request queue element to a device queue.
fp_access Checks for access permission to an open file.
fp_close Closes a file.
fp_fstat Gets the attributes of an open file.
fp_getdevno Gets the device number and/or channel number for a device.
fp_getf Retrieves a pointer to a file structure.
fp_hold Increments the open count for a specified file pointer.
fp_ioctl Issues a control command to an open device or file.
fp_lseek Changes the current offset in an open file.
fp_open Opens a regular file or directory.
fp_opendev Opens a device special file.
fp_poll Checks the I/O status of multiple file pointers/descriptors and message queues.
fp_read Performs a read on an open file with arguments passed.
fp_readv Performs a read operation on an open file with arguments passed in iovec elements.
fp_rwuio Performs read and write on an open file with arguments passed in a uio structure.
fp_select Provides for cascaded, or redirected, support of the select or poll request.
fp_write Performs a write operation on an open file with arguments passed.
fp_writev Performs a write operation on an open file with arguments passed in iovec elements.
fubyte Fetches, or retrieves, a byte of data from user memory.
fubyte64 Retrieves a byte of data from user memory.
fuword Fetches, or retrieves, a word of data from user memory.
fuword64 Retrieves a word of data from user memory.
getadsp Obtains a pointer to the current process's address space structure for use with the as_att and as_det kernel services.
getblk Assigns a buffer to the specified block.
geteblk Allocates a free buffer.
getppidx Gets the parent process ID of the specified process.
getuerror Allows kernel extensions to retrieve the current value of the u_error field.
gfsadd Adds a file system type to the gfs table.
gfsdel Removes a file system type from the gfs table.
i_clear Removes an interrupt handler from the system.
i_init Defines an interrupt handler to the system, connects it to an interrupt level, and assigns an interrupt priority to the level.
init_heap Initializes a new heap to be used with kernel memory management services.
initp Changes the state of a kernel process from idle to ready.
iostadd Registers an I/O statistics structure used for updating I/O statistics reported by the iostat subroutine.
iostdel Removes the registration of an I/O statistics structure used for maintaining I/O statistics on a particular device.
iowait Waits for block I/O completion.
kmod_entrypt Returns a function pointer to a kernel module's entry point.
kmod_load Loads an object file into the kernel or queries for an object file already loaded.
kmod_unload Unloads a kernel object file.
kmsgctl Provides message queue control operations.
kmsgget Obtains a message queue identifier.
kmsgrcv Reads a message from a message queue.
kmsgsnd Sends a message using a previously defined message queue.
ksettimer Sets the systemwide time-of-day timer.
lockl Locks a conventional process lock.
lookupvp Retrieves the vnode that corresponds to the named path.
m_dereg Deregisters expected mbuf structure usage.
m_reg Registers expected mbuf usage.
net_attach Opens an AIX communications I/O device handler.
net_detach Closes an AIX communications I/O device handler.
net_sleep Sleeps on the specified wait channel.
net_start Starts network IDs on an AIX communications I/O device handler.
NLuprintf Submits a request to print an internationalized message to the controlling terminal of a process.
pin Pins the address range in the system (kernel) space.
pincf Manages the list of free character buffers.
pincode Pins the code and data associated with an object file.
pinu Pins the specified address range in user or system memory.
prochadd Adds a systemwide process state-change notification routine.
prochdel Deletes a process state change notification routine.
purblk Invalidates a specified block's data in the buffer cache.
remap_64 Registers the input remapping of one or more addresses for the duration of a system call for a 64-bit process.
rmmap_create64 Defines an Effective Address [EA] to Real Address [RA] translation region for either 64-bit or 32-bit Effective Addresses.
rmmap_remove64 Destroys an effective address to real address translation region.
setuerror Allows kernel extensions to set the u_error field in the u area.
sig_chk Provides a kernel process the ability to poll for receipt of signals.
sleep Forces the calling process to wait on a specified channel.
subyte Stores a byte of data in user memory.
subyte64 Stores a byte of data in user memory.
suser Determines the privilege state of a process.
suword Stores a word of data in user memory.
suword64 Stores a word of data in user memory.
talloc Allocates a timer request block before starting a timer request.
timeoutcf Allocates or deallocates callout table entries for use with the timeout kernel service.
uexadd Adds a systemwide exception handler for catching user-mode process exceptions.
uexdel Deletes a previously added systemwide user-mode exception handler.
ufdcreate Provides a file interface to kernel services.
uiomove Moves a block of data between kernel space and a space defined by a uio structure.
unlockl Unlocks a conventional process lock.
unpincode Unpins the code and data associated with an object file.
uprintf Submits a request to print a message to the controlling terminal of a process.
uphysio Performs character I/O for a block device using a uio structure.
ureadc Writes a character to a buffer described by a uio structure.
uwritec Retrieves a character from a buffer described by a uio structure.
vec_clear Removes a virtual interrupt handler.
vec_init Defines a virtual interrupt handler.
vfsrele Points to a virtual file system structure.
vm_cflush Flushes the processor's cache for a specified address range.
vm_handle Constructs a virtual memory handle for mapping a virtual memory object with specified access level.
vm_makep Makes a page in client storage.
vm_mount Adds a file system to the paging device table.
vm_move Moves data between a virtual memory object and a buffer specified in the uio structure.
vm_protectp Sets the page protection key for a page range.
vm_qmodify Determines whether a mapped file has been changed.
vm_release Releases virtual memory resources for the specified address range.
vm_releasep Releases virtual memory resources for the specified page range.
vm_umount Removes a file system from the paging device table.
vm_write Initiates page-out for a page range in the address space.
vm_writep Initiates page-out for a page range in a virtual memory object.
vms_create Creates a virtual memory object of the type and size and limits specified.
vms_delete Deletes a virtual memory object.
vms_iowait Waits for the completion of all page-out operations for pages in the virtual memory object.
vn_free Frees a vnode previously allocated by the vn_get kernel service.
vn_get Allocates a virtual node and inserts it into the list of vnodes for the designated virtual file system.
waitcfree Checks the availability of a free character buffer.
waitq Waits for a queue element to be placed on a device queue.
w_clear Removes a watchdog timer from the list of watchdog timers known to the kernel.
w_init Registers a watchdog timer with the kernel.
w_start Starts a watchdog timer.
w_stop Stops a watchdog timer.
xmalloc Allocates memory.
xmattach Attaches to a user buffer for cross-memory operations.
xmattach64 Attaches to a user buffer for cross-memory operations.
xmfree Frees allocated memory.