[ Previous | Contents | Home | Search ]
AIX Version 4.3 Kernel Extensions and Device Support Programming Concepts

Appendix A. Alphabetical List of Kernel Services

This list is divided into parts based on the execution environment from which each kernel service can be called:

"System Calls Available to Kernel Extensions" lists the systems calls that can be called by kernel extensions.

Kernel Services Available in Process and Interrupt Environments

Click here to go directly to a part of the list:

A through D

E through I

J through P

Q through U

V through Z

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.
as_getsrval Obtains a handle to the virtual memory object for the specified address given in the specified address space.
bdwrite Releases the specified buffer after marking it for delayed write.
brelse Frees the specified buffer.
_check_lock Conditionally updates a single word variable atomically, issuing an import fence for multiprocessor systems.
_clear_lock Atomically writes a single word variable, issuing an export fence for multiprocessor systems.
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.
compare_and_swap Conditionally updates or returns a single word variable atomically.
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 on the system.
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.
disable_lock Raises the interrupt priority, and locks a simple lock if necessary.
DTOM macro Converts an address anywhere within an mbuf structure to the head of that mbuf structure.
e_clear_wait Clears the wait condition for a kernel thread.
e_wakeup, e_wakeup_one, or e_wakeup_w_result
Notifies kernel threads waiting on a shared event of the event's occurrence.
e_wakeup_w_sig Posts a signal to sleeping kernel threads.
errsave and errlast Allows the kernel and kernel extensions to write to the error log.
et_post Notifies a kernel thread of the occurrence of one or more events.
fetch_and_add Increments a single word variable atomically.
fetch_and_and, fetch_and_or
Manipulates bits in a single word variable atomically.
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 Zeros 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.
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.
kthread_kill Posts a signal to a specified kernel thread.
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.
pci_cfgrw Reads and writes PCI bus slot configuration registers.
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.
pm_planar_control Controls power of a specified device on the planar.
pm_register_handle Registers and unregisters Power Management handle.
pm_register_planar_control_handle
Registers and unregisters a planar control subroutine.
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.
No services starting with q in this 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.
_safe_fetch Atomically reads a single word variable, issuing an import fence for multiprocessor systems.
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.
thread_self Returns the caller's kernel thread ID.
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 kernel thread non-runnable when called from a user-mode exception handler.
uexclear Makes a kernel thread blocked by the uexblock service runnable again.
unlock_enable Unlocks a simple lock if necessary, and restores the interrupt priority.
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.
xmemunpin Unpins the specified address range in user or system memory, given a valid cross-memory descriptor.

Kernel Services Available in the Process Environment Only

Click here to go directly to a part of the list:

A through D

E through I

J through P

Q through U

V through Z.

as_att Selects, allocates, and maps a region in the specified address space for the specified virtual memory object.
as_det Unmaps and deallocates a region in the specified address space that was mapped with the as_att kernel service.
as_geth Obtains a handle to the virtual memory object for the specified address given in the specified address space. The virtual memory object is protected.
as_puth Indicates that no more references will be made to a virtual memory object that was obtained using the as_geth kernel service.
as_seth Maps a specified region in the specified address space for the specified virtual memory object
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.
bindprocessor Binds a process or thread to a processor.
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.
copyinstr Copies a character string (including the terminating NULL character) from user to kernel space.
copyout 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_assert_wait Asserts that the calling thread is going to sleep.
e_block_thread Blocks the calling thread.
e_sleep, e_sleepl, or e_sleep_thread
Forces the calling thread to wait the occurrence of a shared event.
et_wait Forces the caller to wait for the occurrence of an event.
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_llseek Changes the current offset in an open file. Used to access offsets beyond 2GB.
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.
fuword Fetches, or 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 ut_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.
kthread_start Starts a previously created kernel-only thread.
limit_sigs Changes the signal mask for the calling thread.
lock_alloc Allocates memory for a simple or complex lock.
lock_clear_recursive Prevents a complex lock from being acquired recursively.
lock_done Releases a complex lock.
lock_free Frees the memory of a simple or complex lock.
lock_init Initializes a complex lock.
lock_islocked Tests whether a complex lock is locked.
lock_mine Checks whether a simple or complex lock is owned by the caller.
lock_read, lock_try_read Locks a complex lock in shared-read mode.
lock_read_to_write, lock_try_read_to_write
Upgrades a complex lock from shared-read mode to exclusive-write mode.
lock_set_recursive Prepares a complex lock for recursive use.
lock_write, lock_try_write Locks a complex lock in exclusive-write mode.
lock_write_to_read Downgrades a complex lock from exclusive-write mode to shared-read mode.
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 communications I/O device handler.
net_detach Closes an communications I/O device handler.
net_sleep Sleeps on the specified wait channel.
net_start Starts network IDs on an 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.
There is no service beginning with q
rusage_incr Increments a field of the rusage structure.
setuerror Allows kernel extensions to set the ut _error field in the u area.
sig_chk Provides the calling kernel thread the ability to poll for receipt of signals.
sigsetmask Changes the signal mask for the calling kernel thread.
simple_lock_init Initializes a simple lock.
simple_lock, simple_lock_try
Locks a simple lock.
simple_unlock Unlocks a simple lock.
sleep Forces the calling kernel thread to wait on a specified channel.
subyte 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.
talloc Allocates a timer request block before starting a timer request.
thread_create Creates a new process thread in the calling process.
thread_setsched Sets process kernel thread scheduling parameters.
thread_terminate Terminates the calling process kernel thread.
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.
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.
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.
xmempin Pins the specified address range in user or system memory, given a valid cross-memory descriptor.
xmfree Frees allocated memory.

[ Previous | Contents | Home | Search ]