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.
| 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. |
| 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_uiomove | Moves data between a virtual memory object and a buffer specified in the uio structure. |
| 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. |