<?xml version="1.0" encoding="ANSI_X3.4-1968" standalone="no"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968" /><title>The Linux Kernel API</title><meta name="generator" content="DocBook XSL Stylesheets V1.76.1" /><link rel="home" href="index.html" title="The Linux Kernel API" /><link rel="next" href="adt.html" title="Chapter 1. Data Types" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The Linux Kernel API</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="adt.html">Next</a></td></tr></table><hr /></div><div class="book" title="The Linux Kernel API"><div class="titlepage"><div><div><h1 class="title"><a id="LinuxKernelAPI"></a>The Linux Kernel API</h1></div><div><div class="legalnotice" title="Legal Notice"><a id="id2556760"></a><p> This documentation is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. </p><p> This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. </p><p> You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA </p><p> For more details see the file COPYING in the source distribution of Linux. </p></div></div></div><hr /></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="chapter"><a href="adt.html">1. Data Types</a></span></dt><dd><dl><dt><span class="sect1"><a href="adt.html#id2531354">Doubly Linked Lists</a></span></dt></dl></dd><dt><span class="chapter"><a href="libc.html">2. Basic C Library Functions</a></span></dt><dd><dl><dt><span class="sect1"><a href="libc.html#id2575204">String Conversions</a></span></dt><dt><span class="sect1"><a href="ch02s02.html">String Manipulation</a></span></dt><dt><span class="sect1"><a href="ch02s03.html">Bit Operations</a></span></dt></dl></dd><dt><span class="chapter"><a href="kernel-lib.html">3. Basic Kernel Library Functions</a></span></dt><dd><dl><dt><span class="sect1"><a href="kernel-lib.html#id2584202">Bitmap Operations</a></span></dt><dt><span class="sect1"><a href="ch03s02.html">Command-line Parsing</a></span></dt><dt><span class="sect1"><a href="crc.html">CRC Functions</a></span></dt><dt><span class="sect1"><a href="idr.html">idr/ida Functions</a></span></dt></dl></dd><dt><span class="chapter"><a href="mm.html">4. Memory Management in Linux</a></span></dt><dd><dl><dt><span class="sect1"><a href="mm.html#id2592663">The Slab Cache</a></span></dt><dt><span class="sect1"><a href="ch04s02.html">User Space Memory Access</a></span></dt><dt><span class="sect1"><a href="ch04s03.html">More Memory Management Functions</a></span></dt></dl></dd><dt><span class="chapter"><a href="ipc.html">5. Kernel IPC facilities</a></span></dt><dd><dl><dt><span class="sect1"><a href="ipc.html#id2611498">IPC utilities</a></span></dt></dl></dd><dt><span class="chapter"><a href="kfifo.html">6. FIFO Buffer</a></span></dt><dd><dl><dt><span class="sect1"><a href="kfifo.html#id2615036">kfifo interface</a></span></dt></dl></dd><dt><span class="chapter"><a href="relayfs.html">7. relay interface support</a></span></dt><dd><dl><dt><span class="sect1"><a href="relayfs.html#id2619847">relay interface</a></span></dt></dl></dd><dt><span class="chapter"><a href="modload.html">8. Module Support</a></span></dt><dd><dl><dt><span class="sect1"><a href="modload.html#id2623539">Module Loading</a></span></dt><dt><span class="sect1"><a href="ch08s02.html">Inter Module support</a></span></dt></dl></dd><dt><span class="chapter"><a href="hardware.html">9. Hardware Interfaces</a></span></dt><dd><dl><dt><span class="sect1"><a href="hardware.html#id2624306">Interrupt Handling</a></span></dt><dt><span class="sect1"><a href="ch09s02.html">DMA Channels</a></span></dt><dt><span class="sect1"><a href="ch09s03.html">Resources Management</a></span></dt><dt><span class="sect1"><a href="ch09s04.html">MTRR Handling</a></span></dt><dt><span class="sect1"><a href="ch09s05.html">PCI Support Library</a></span></dt><dt><span class="sect1"><a href="ch09s06.html">PCI Hotplug Support Library</a></span></dt><dt><span class="sect1"><a href="ch09s07.html">MCA Architecture</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch09s07.html#id2646299">MCA Device Functions</a></span></dt><dt><span class="sect2"><a href="ch09s07.html#id2646314">MCA Bus DMA</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="firmware.html">10. Firmware Interfaces</a></span></dt><dd><dl><dt><span class="sect1"><a href="firmware.html#id2647398">DMI Interfaces</a></span></dt><dt><span class="sect1"><a href="ch10s02.html">EDD Interfaces</a></span></dt></dl></dd><dt><span class="chapter"><a href="security.html">11. Security Framework</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-security-init.html"><span>security_init</span></a></span><span class="refpurpose"> — initializes the security framework </span></dt><dt><span class="refentrytitle"><a href="API-security-module-enable.html"><span>security_module_enable</span></a></span><span class="refpurpose"> — Load given security module on boot ? </span></dt><dt><span class="refentrytitle"><a href="API-register-security.html"><span>register_security</span></a></span><span class="refpurpose"> — registers a security framework with the kernel </span></dt><dt><span class="refentrytitle"><a href="API-securityfs-create-file.html"><span>securityfs_create_file</span></a></span><span class="refpurpose"> — create a file in the securityfs filesystem </span></dt><dt><span class="refentrytitle"><a href="API-securityfs-create-dir.html"><span>securityfs_create_dir</span></a></span><span class="refpurpose"> — create a directory in the securityfs filesystem </span></dt><dt><span class="refentrytitle"><a href="API-securityfs-remove.html"><span>securityfs_remove</span></a></span><span class="refpurpose"> — removes a file or directory from the securityfs filesystem </span></dt></dl></dd><dt><span class="chapter"><a href="audit.html">12. Audit Interfaces</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-audit-log-start.html"><span>audit_log_start</span></a></span><span class="refpurpose"> — obtain an audit buffer </span></dt><dt><span class="refentrytitle"><a href="API-audit-log-format.html"><span>audit_log_format</span></a></span><span class="refpurpose"> — format a message into the audit buffer. </span></dt><dt><span class="refentrytitle"><a href="API-audit-log-end.html"><span>audit_log_end</span></a></span><span class="refpurpose"> — end one audit record </span></dt><dt><span class="refentrytitle"><a href="API-audit-log.html"><span>audit_log</span></a></span><span class="refpurpose"> — Log an audit record </span></dt><dt><span class="refentrytitle"><a href="API-audit-alloc.html"><span>audit_alloc</span></a></span><span class="refpurpose"> — allocate an audit context block for a task </span></dt><dt><span class="refentrytitle"><a href="API-audit-free.html"><span>audit_free</span></a></span><span class="refpurpose"> — free a per-task audit context </span></dt><dt><span class="refentrytitle"><a href="API-audit-syscall-entry.html"><span>audit_syscall_entry</span></a></span><span class="refpurpose"> — fill in an audit record at syscall entry </span></dt><dt><span class="refentrytitle"><a href="API-audit-syscall-exit.html"><span>audit_syscall_exit</span></a></span><span class="refpurpose"> — deallocate audit context after a system call </span></dt><dt><span class="refentrytitle"><a href="API---audit-getname.html"><span>__audit_getname</span></a></span><span class="refpurpose"> — add a name to the list </span></dt><dt><span class="refentrytitle"><a href="API---audit-inode.html"><span>__audit_inode</span></a></span><span class="refpurpose"> — store the inode and device from a lookup </span></dt><dt><span class="refentrytitle"><a href="API-auditsc-get-stamp.html"><span>auditsc_get_stamp</span></a></span><span class="refpurpose"> — get local copies of audit_context values </span></dt><dt><span class="refentrytitle"><a href="API-audit-set-loginuid.html"><span>audit_set_loginuid</span></a></span><span class="refpurpose"> — set a task's audit_context loginuid </span></dt><dt><span class="refentrytitle"><a href="API---audit-mq-open.html"><span>__audit_mq_open</span></a></span><span class="refpurpose"> — record audit data for a POSIX MQ open </span></dt><dt><span class="refentrytitle"><a href="API---audit-mq-sendrecv.html"><span>__audit_mq_sendrecv</span></a></span><span class="refpurpose"> — record audit data for a POSIX MQ timed send/receive </span></dt><dt><span class="refentrytitle"><a href="API---audit-mq-notify.html"><span>__audit_mq_notify</span></a></span><span class="refpurpose"> — record audit data for a POSIX MQ notify </span></dt><dt><span class="refentrytitle"><a href="API---audit-mq-getsetattr.html"><span>__audit_mq_getsetattr</span></a></span><span class="refpurpose"> — record audit data for a POSIX MQ get/set attribute </span></dt><dt><span class="refentrytitle"><a href="API---audit-ipc-obj.html"><span>__audit_ipc_obj</span></a></span><span class="refpurpose"> — record audit data for ipc object </span></dt><dt><span class="refentrytitle"><a href="API---audit-ipc-set-perm.html"><span>__audit_ipc_set_perm</span></a></span><span class="refpurpose"> — record audit data for new ipc permissions </span></dt><dt><span class="refentrytitle"><a href="API-audit-socketcall.html"><span>audit_socketcall</span></a></span><span class="refpurpose"> — record audit data for sys_socketcall </span></dt><dt><span class="refentrytitle"><a href="API---audit-fd-pair.html"><span>__audit_fd_pair</span></a></span><span class="refpurpose"> — record audit data for pipe and socketpair </span></dt><dt><span class="refentrytitle"><a href="API-audit-sockaddr.html"><span>audit_sockaddr</span></a></span><span class="refpurpose"> — record audit data for sys_bind, sys_connect, sys_sendto </span></dt><dt><span class="refentrytitle"><a href="API---audit-signal-info.html"><span>__audit_signal_info</span></a></span><span class="refpurpose"> — record signal info for shutting down audit subsystem </span></dt><dt><span class="refentrytitle"><a href="API---audit-log-bprm-fcaps.html"><span>__audit_log_bprm_fcaps</span></a></span><span class="refpurpose"> — store information about a loading bprm and relevant fcaps </span></dt><dt><span class="refentrytitle"><a href="API---audit-log-capset.html"><span>__audit_log_capset</span></a></span><span class="refpurpose"> — store information about the arguments to the capset syscall </span></dt><dt><span class="refentrytitle"><a href="API-audit-core-dumps.html"><span>audit_core_dumps</span></a></span><span class="refpurpose"> — record information about processes that end abnormally </span></dt><dt><span class="refentrytitle"><a href="API-audit-receive-filter.html"><span>audit_receive_filter</span></a></span><span class="refpurpose"> — apply all rules to the specified message type </span></dt></dl></dd><dt><span class="chapter"><a href="accounting.html">13. Accounting Framework</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-sys-acct.html"><span>sys_acct</span></a></span><span class="refpurpose"> — enable/disable process accounting </span></dt><dt><span class="refentrytitle"><a href="API-acct-auto-close-mnt.html"><span>acct_auto_close_mnt</span></a></span><span class="refpurpose"> — turn off a filesystem's accounting if it is on </span></dt><dt><span class="refentrytitle"><a href="API-acct-auto-close.html"><span>acct_auto_close</span></a></span><span class="refpurpose"> — turn off a filesystem's accounting if it is on </span></dt><dt><span class="refentrytitle"><a href="API-acct-collect.html"><span>acct_collect</span></a></span><span class="refpurpose"> — collect accounting information into pacct_struct </span></dt><dt><span class="refentrytitle"><a href="API-acct-process.html"><span>acct_process</span></a></span><span class="refpurpose"> — now just a wrapper around acct_process_in_ns, which in turn is a wrapper around do_acct_process. </span></dt></dl></dd><dt><span class="chapter"><a href="blkdev.html">14. Block Devices</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-blk-get-backing-dev-info.html"><span>blk_get_backing_dev_info</span></a></span><span class="refpurpose"> — get the address of a queue's backing_dev_info </span></dt><dt><span class="refentrytitle"><a href="API-blk-plug-device-unlocked.html"><span>blk_plug_device_unlocked</span></a></span><span class="refpurpose"> — plug a device without queue lock held </span></dt><dt><span class="refentrytitle"><a href="API-generic-unplug-device.html"><span>generic_unplug_device</span></a></span><span class="refpurpose"> — fire a request queue </span></dt><dt><span class="refentrytitle"><a href="API-blk-start-queue.html"><span>blk_start_queue</span></a></span><span class="refpurpose"> — restart a previously stopped queue </span></dt><dt><span class="refentrytitle"><a href="API-blk-stop-queue.html"><span>blk_stop_queue</span></a></span><span class="refpurpose"> — stop a queue </span></dt><dt><span class="refentrytitle"><a href="API-blk-sync-queue.html"><span>blk_sync_queue</span></a></span><span class="refpurpose"> — cancel any pending callbacks on a queue </span></dt><dt><span class="refentrytitle"><a href="API---blk-run-queue.html"><span>__blk_run_queue</span></a></span><span class="refpurpose"> — run a single device queue </span></dt><dt><span class="refentrytitle"><a href="API-blk-run-queue.html"><span>blk_run_queue</span></a></span><span class="refpurpose"> — run a single device queue </span></dt><dt><span class="refentrytitle"><a href="API-blk-init-queue.html"><span>blk_init_queue</span></a></span><span class="refpurpose"> — prepare a request queue for use with a block device </span></dt><dt><span class="refentrytitle"><a href="API-blk-make-request.html"><span>blk_make_request</span></a></span><span class="refpurpose"> — given a bio, allocate a corresponding struct request. </span></dt><dt><span class="refentrytitle"><a href="API-blk-requeue-request.html"><span>blk_requeue_request</span></a></span><span class="refpurpose"> — put a request back on queue </span></dt><dt><span class="refentrytitle"><a href="API-blk-insert-request.html"><span>blk_insert_request</span></a></span><span class="refpurpose"> — insert a special request into a request queue </span></dt><dt><span class="refentrytitle"><a href="API-part-round-stats.html"><span>part_round_stats</span></a></span><span class="refpurpose"> — Round off the performance stats on a struct disk_stats. </span></dt><dt><span class="refentrytitle"><a href="API-blk-add-request-payload.html"><span>blk_add_request_payload</span></a></span><span class="refpurpose"> — add a payload to a request </span></dt><dt><span class="refentrytitle"><a href="API-submit-bio.html"><span>submit_bio</span></a></span><span class="refpurpose"> — submit a bio to the block device layer for I/O </span></dt><dt><span class="refentrytitle"><a href="API-blk-rq-check-limits.html"><span>blk_rq_check_limits</span></a></span><span class="refpurpose"> — Helper function to check a request for the queue limit </span></dt><dt><span class="refentrytitle"><a href="API-blk-insert-cloned-request.html"><span>blk_insert_cloned_request</span></a></span><span class="refpurpose"> — Helper for stacking drivers to submit a request </span></dt><dt><span class="refentrytitle"><a href="API-blk-rq-err-bytes.html"><span>blk_rq_err_bytes</span></a></span><span class="refpurpose"> — determine number of bytes till the next failure boundary </span></dt><dt><span class="refentrytitle"><a href="API-blk-peek-request.html"><span>blk_peek_request</span></a></span><span class="refpurpose"> — peek at the top of a request queue </span></dt><dt><span class="refentrytitle"><a href="API-blk-start-request.html"><span>blk_start_request</span></a></span><span class="refpurpose"> — start request processing on the driver </span></dt><dt><span class="refentrytitle"><a href="API-blk-fetch-request.html"><span>blk_fetch_request</span></a></span><span class="refpurpose"> — fetch a request from a request queue </span></dt><dt><span class="refentrytitle"><a href="API-blk-update-request.html"><span>blk_update_request</span></a></span><span class="refpurpose"> — Special helper function for request stacking drivers </span></dt><dt><span class="refentrytitle"><a href="API-blk-unprep-request.html"><span>blk_unprep_request</span></a></span><span class="refpurpose"> — unprepare a request </span></dt><dt><span class="refentrytitle"><a href="API-blk-end-request.html"><span>blk_end_request</span></a></span><span class="refpurpose"> — Helper function for drivers to complete the request. </span></dt><dt><span class="refentrytitle"><a href="API-blk-end-request-all.html"><span>blk_end_request_all</span></a></span><span class="refpurpose"> — Helper function for drives to finish the request. </span></dt><dt><span class="refentrytitle"><a href="API-blk-end-request-cur.html"><span>blk_end_request_cur</span></a></span><span class="refpurpose"> — Helper function to finish the current request chunk. </span></dt><dt><span class="refentrytitle"><a href="API-blk-end-request-err.html"><span>blk_end_request_err</span></a></span><span class="refpurpose"> — Finish a request till the next failure boundary. </span></dt><dt><span class="refentrytitle"><a href="API---blk-end-request.html"><span>__blk_end_request</span></a></span><span class="refpurpose"> — Helper function for drivers to complete the request. </span></dt><dt><span class="refentrytitle"><a href="API---blk-end-request-all.html"><span>__blk_end_request_all</span></a></span><span class="refpurpose"> — Helper function for drives to finish the request. </span></dt><dt><span class="refentrytitle"><a href="API---blk-end-request-cur.html"><span>__blk_end_request_cur</span></a></span><span class="refpurpose"> — Helper function to finish the current request chunk. </span></dt><dt><span class="refentrytitle"><a href="API---blk-end-request-err.html"><span>__blk_end_request_err</span></a></span><span class="refpurpose"> — Finish a request till the next failure boundary. </span></dt><dt><span class="refentrytitle"><a href="API-rq-flush-dcache-pages.html"><span>rq_flush_dcache_pages</span></a></span><span class="refpurpose"> — Helper function to flush all pages in a request </span></dt><dt><span class="refentrytitle"><a href="API-blk-lld-busy.html"><span>blk_lld_busy</span></a></span><span class="refpurpose"> — Check if underlying low-level drivers of a device are busy </span></dt><dt><span class="refentrytitle"><a href="API-blk-rq-unprep-clone.html"><span>blk_rq_unprep_clone</span></a></span><span class="refpurpose"> — Helper function to free all bios in a cloned request </span></dt><dt><span class="refentrytitle"><a href="API-blk-rq-prep-clone.html"><span>blk_rq_prep_clone</span></a></span><span class="refpurpose"> — Helper function to setup clone request </span></dt><dt><span class="refentrytitle"><a href="API---generic-make-request.html"><span>__generic_make_request</span></a></span><span class="refpurpose"> — hand a buffer to its device driver for I/O </span></dt><dt><span class="refentrytitle"><a href="API-blk-end-bidi-request.html"><span>blk_end_bidi_request</span></a></span><span class="refpurpose"> — Complete a bidi request </span></dt><dt><span class="refentrytitle"><a href="API---blk-end-bidi-request.html"><span>__blk_end_bidi_request</span></a></span><span class="refpurpose"> — Complete a bidi request with queue lock held </span></dt><dt><span class="refentrytitle"><a href="API-blk-rq-map-user.html"><span>blk_rq_map_user</span></a></span><span class="refpurpose"> — map user data to a request, for REQ_TYPE_BLOCK_PC usage </span></dt><dt><span class="refentrytitle"><a href="API-blk-rq-map-user-iov.html"><span>blk_rq_map_user_iov</span></a></span><span class="refpurpose"> — map user data to a request, for REQ_TYPE_BLOCK_PC usage </span></dt><dt><span class="refentrytitle"><a href="API-blk-rq-unmap-user.html"><span>blk_rq_unmap_user</span></a></span><span class="refpurpose"> — unmap a request with user data </span></dt><dt><span class="refentrytitle"><a href="API-blk-rq-map-kern.html"><span>blk_rq_map_kern</span></a></span><span class="refpurpose"> — map kernel data to a request, for REQ_TYPE_BLOCK_PC usage </span></dt><dt><span class="refentrytitle"><a href="API-blk-release-queue.html"><span>blk_release_queue</span></a></span><span class="refpurpose"> — release a <span class="structname">struct request_queue</span> when it is no longer needed </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-prep-rq.html"><span>blk_queue_prep_rq</span></a></span><span class="refpurpose"> — set a prepare_request function for queue </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-unprep-rq.html"><span>blk_queue_unprep_rq</span></a></span><span class="refpurpose"> — set an unprepare_request function for queue </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-merge-bvec.html"><span>blk_queue_merge_bvec</span></a></span><span class="refpurpose"> — set a merge_bvec function for queue </span></dt><dt><span class="refentrytitle"><a href="API-blk-set-default-limits.html"><span>blk_set_default_limits</span></a></span><span class="refpurpose"> — reset limits to default values </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-make-request.html"><span>blk_queue_make_request</span></a></span><span class="refpurpose"> — define an alternate make_request function for a device </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-bounce-limit.html"><span>blk_queue_bounce_limit</span></a></span><span class="refpurpose"> — set bounce buffer limit for queue </span></dt><dt><span class="refentrytitle"><a href="API-blk-limits-max-hw-sectors.html"><span>blk_limits_max_hw_sectors</span></a></span><span class="refpurpose"> — set hard and soft limit of max sectors for request </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-max-hw-sectors.html"><span>blk_queue_max_hw_sectors</span></a></span><span class="refpurpose"> — set max sectors for a request for this queue </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-max-discard-sectors.html"><span>blk_queue_max_discard_sectors</span></a></span><span class="refpurpose"> — set max sectors for a single discard </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-max-segments.html"><span>blk_queue_max_segments</span></a></span><span class="refpurpose"> — set max hw segments for a request for this queue </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-max-segment-size.html"><span>blk_queue_max_segment_size</span></a></span><span class="refpurpose"> — set max segment size for blk_rq_map_sg </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-logical-block-size.html"><span>blk_queue_logical_block_size</span></a></span><span class="refpurpose"> — set logical block size for the queue </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-physical-block-size.html"><span>blk_queue_physical_block_size</span></a></span><span class="refpurpose"> — set physical block size for the queue </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-alignment-offset.html"><span>blk_queue_alignment_offset</span></a></span><span class="refpurpose"> — set physical block alignment offset </span></dt><dt><span class="refentrytitle"><a href="API-blk-limits-io-min.html"><span>blk_limits_io_min</span></a></span><span class="refpurpose"> — set minimum request size for a device </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-io-min.html"><span>blk_queue_io_min</span></a></span><span class="refpurpose"> — set minimum request size for the queue </span></dt><dt><span class="refentrytitle"><a href="API-blk-limits-io-opt.html"><span>blk_limits_io_opt</span></a></span><span class="refpurpose"> — set optimal request size for a device </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-io-opt.html"><span>blk_queue_io_opt</span></a></span><span class="refpurpose"> — set optimal request size for the queue </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-stack-limits.html"><span>blk_queue_stack_limits</span></a></span><span class="refpurpose"> — inherit underlying queue limits for stacked drivers </span></dt><dt><span class="refentrytitle"><a href="API-blk-stack-limits.html"><span>blk_stack_limits</span></a></span><span class="refpurpose"> — adjust queue_limits for stacked devices </span></dt><dt><span class="refentrytitle"><a href="API-bdev-stack-limits.html"><span>bdev_stack_limits</span></a></span><span class="refpurpose"> — adjust queue limits for stacked drivers </span></dt><dt><span class="refentrytitle"><a href="API-disk-stack-limits.html"><span>disk_stack_limits</span></a></span><span class="refpurpose"> — adjust queue limits for stacked drivers </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-dma-pad.html"><span>blk_queue_dma_pad</span></a></span><span class="refpurpose"> — set pad mask </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-update-dma-pad.html"><span>blk_queue_update_dma_pad</span></a></span><span class="refpurpose"> — update pad mask </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-dma-drain.html"><span>blk_queue_dma_drain</span></a></span><span class="refpurpose"> — Set up a drain buffer for excess dma. </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-segment-boundary.html"><span>blk_queue_segment_boundary</span></a></span><span class="refpurpose"> — set boundary rules for segment merging </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-dma-alignment.html"><span>blk_queue_dma_alignment</span></a></span><span class="refpurpose"> — set dma length and memory alignment </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-update-dma-alignment.html"><span>blk_queue_update_dma_alignment</span></a></span><span class="refpurpose"> — update dma length and memory alignment </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-flush.html"><span>blk_queue_flush</span></a></span><span class="refpurpose"> — configure queue's cache flush capability </span></dt><dt><span class="refentrytitle"><a href="API-blk-execute-rq-nowait.html"><span>blk_execute_rq_nowait</span></a></span><span class="refpurpose"> — insert a request into queue for execution </span></dt><dt><span class="refentrytitle"><a href="API-blk-execute-rq.html"><span>blk_execute_rq</span></a></span><span class="refpurpose"> — insert a request into queue for execution </span></dt><dt><span class="refentrytitle"><a href="API-blkdev-issue-flush.html"><span>blkdev_issue_flush</span></a></span><span class="refpurpose"> — queue a flush </span></dt><dt><span class="refentrytitle"><a href="API-blkdev-issue-discard.html"><span>blkdev_issue_discard</span></a></span><span class="refpurpose"> — queue a discard </span></dt><dt><span class="refentrytitle"><a href="API-blkdev-issue-zeroout.html"><span>blkdev_issue_zeroout</span></a></span><span class="refpurpose"> — generate number of zero filed write bios </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-find-tag.html"><span>blk_queue_find_tag</span></a></span><span class="refpurpose"> — find a request by its tag and queue </span></dt><dt><span class="refentrytitle"><a href="API-blk-free-tags.html"><span>blk_free_tags</span></a></span><span class="refpurpose"> — release a given set of tag maintenance info </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-free-tags.html"><span>blk_queue_free_tags</span></a></span><span class="refpurpose"> — release tag maintenance info </span></dt><dt><span class="refentrytitle"><a href="API-blk-init-tags.html"><span>blk_init_tags</span></a></span><span class="refpurpose"> — initialize the tag info for an external tag map </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-init-tags.html"><span>blk_queue_init_tags</span></a></span><span class="refpurpose"> — initialize the queue tag info </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-resize-tags.html"><span>blk_queue_resize_tags</span></a></span><span class="refpurpose"> — change the queueing depth </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-end-tag.html"><span>blk_queue_end_tag</span></a></span><span class="refpurpose"> — end tag operations for a request </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-start-tag.html"><span>blk_queue_start_tag</span></a></span><span class="refpurpose"> — find a free tag and assign it </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-invalidate-tags.html"><span>blk_queue_invalidate_tags</span></a></span><span class="refpurpose"> — invalidate all pending tags </span></dt><dt><span class="refentrytitle"><a href="API---blk-free-tags.html"><span>__blk_free_tags</span></a></span><span class="refpurpose"> — release a given set of tag maintenance info </span></dt><dt><span class="refentrytitle"><a href="API---blk-queue-free-tags.html"><span>__blk_queue_free_tags</span></a></span><span class="refpurpose"> — release tag maintenance info </span></dt><dt><span class="refentrytitle"><a href="API-blk-rq-count-integrity-sg.html"><span>blk_rq_count_integrity_sg</span></a></span><span class="refpurpose"> — Count number of integrity scatterlist elements </span></dt><dt><span class="refentrytitle"><a href="API-blk-rq-map-integrity-sg.html"><span>blk_rq_map_integrity_sg</span></a></span><span class="refpurpose"> — Map integrity metadata into a scatterlist </span></dt><dt><span class="refentrytitle"><a href="API-blk-integrity-compare.html"><span>blk_integrity_compare</span></a></span><span class="refpurpose"> — Compare integrity profile of two disks </span></dt><dt><span class="refentrytitle"><a href="API-blk-integrity-register.html"><span>blk_integrity_register</span></a></span><span class="refpurpose"> — Register a gendisk as being integrity-capable </span></dt><dt><span class="refentrytitle"><a href="API-blk-integrity-unregister.html"><span>blk_integrity_unregister</span></a></span><span class="refpurpose"> — Remove block integrity profile </span></dt><dt><span class="refentrytitle"><a href="API-blk-trace-ioctl.html"><span>blk_trace_ioctl</span></a></span><span class="refpurpose"> — handle the ioctls associated with tracing </span></dt><dt><span class="refentrytitle"><a href="API-blk-trace-shutdown.html"><span>blk_trace_shutdown</span></a></span><span class="refpurpose"> — stop and cleanup trace structures </span></dt><dt><span class="refentrytitle"><a href="API-blk-add-trace-rq.html"><span>blk_add_trace_rq</span></a></span><span class="refpurpose"> — Add a trace for a request oriented action </span></dt><dt><span class="refentrytitle"><a href="API-blk-add-trace-bio.html"><span>blk_add_trace_bio</span></a></span><span class="refpurpose"> — Add a trace for a bio oriented action </span></dt><dt><span class="refentrytitle"><a href="API-blk-add-trace-bio-remap.html"><span>blk_add_trace_bio_remap</span></a></span><span class="refpurpose"> — Add a trace for a bio-remap operation </span></dt><dt><span class="refentrytitle"><a href="API-blk-add-trace-rq-remap.html"><span>blk_add_trace_rq_remap</span></a></span><span class="refpurpose"> — Add a trace for a request-remap operation </span></dt><dt><span class="refentrytitle"><a href="API-blk-mangle-minor.html"><span>blk_mangle_minor</span></a></span><span class="refpurpose"> — scatter minor numbers apart </span></dt><dt><span class="refentrytitle"><a href="API-blk-alloc-devt.html"><span>blk_alloc_devt</span></a></span><span class="refpurpose"> — allocate a dev_t for a partition </span></dt><dt><span class="refentrytitle"><a href="API-blk-free-devt.html"><span>blk_free_devt</span></a></span><span class="refpurpose"> — free a dev_t </span></dt><dt><span class="refentrytitle"><a href="API-disk-replace-part-tbl.html"><span>disk_replace_part_tbl</span></a></span><span class="refpurpose"> — replace disk->part_tbl in RCU-safe way </span></dt><dt><span class="refentrytitle"><a href="API-disk-expand-part-tbl.html"><span>disk_expand_part_tbl</span></a></span><span class="refpurpose"> — expand disk->part_tbl </span></dt><dt><span class="refentrytitle"><a href="API-disk-block-events.html"><span>disk_block_events</span></a></span><span class="refpurpose"> — block and flush disk event checking </span></dt><dt><span class="refentrytitle"><a href="API-disk-unblock-events.html"><span>disk_unblock_events</span></a></span><span class="refpurpose"> — unblock disk event checking </span></dt><dt><span class="refentrytitle"><a href="API-disk-clear-events.html"><span>disk_clear_events</span></a></span><span class="refpurpose"> — synchronously check, clear and return pending events </span></dt><dt><span class="refentrytitle"><a href="API-disk-get-part.html"><span>disk_get_part</span></a></span><span class="refpurpose"> — get partition </span></dt><dt><span class="refentrytitle"><a href="API-disk-part-iter-init.html"><span>disk_part_iter_init</span></a></span><span class="refpurpose"> — initialize partition iterator </span></dt><dt><span class="refentrytitle"><a href="API-disk-part-iter-next.html"><span>disk_part_iter_next</span></a></span><span class="refpurpose"> — proceed iterator to the next partition and return it </span></dt><dt><span class="refentrytitle"><a href="API-disk-part-iter-exit.html"><span>disk_part_iter_exit</span></a></span><span class="refpurpose"> — finish up partition iteration </span></dt><dt><span class="refentrytitle"><a href="API-disk-map-sector-rcu.html"><span>disk_map_sector_rcu</span></a></span><span class="refpurpose"> — map sector to partition </span></dt><dt><span class="refentrytitle"><a href="API-register-blkdev.html"><span>register_blkdev</span></a></span><span class="refpurpose"> — register a new block device </span></dt><dt><span class="refentrytitle"><a href="API-add-disk.html"><span>add_disk</span></a></span><span class="refpurpose"> — add partitioning information to kernel list </span></dt><dt><span class="refentrytitle"><a href="API-get-gendisk.html"><span>get_gendisk</span></a></span><span class="refpurpose"> — get partitioning information for a given device </span></dt><dt><span class="refentrytitle"><a href="API-bdget-disk.html"><span>bdget_disk</span></a></span><span class="refpurpose"> — do <code class="function">bdget</code> by gendisk and partition number </span></dt><dt><span class="refentrytitle"><a href="API-disk-check-events.html"><span>disk_check_events</span></a></span><span class="refpurpose"> — schedule immediate event checking </span></dt></dl></dd><dt><span class="chapter"><a href="chrdev.html">15. Char devices</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-register-chrdev-region.html"><span>register_chrdev_region</span></a></span><span class="refpurpose"> — register a range of device numbers </span></dt><dt><span class="refentrytitle"><a href="API-alloc-chrdev-region.html"><span>alloc_chrdev_region</span></a></span><span class="refpurpose"> — register a range of char device numbers </span></dt><dt><span class="refentrytitle"><a href="API---register-chrdev.html"><span>__register_chrdev</span></a></span><span class="refpurpose"> — create and register a cdev occupying a range of minors </span></dt><dt><span class="refentrytitle"><a href="API-unregister-chrdev-region.html"><span>unregister_chrdev_region</span></a></span><span class="refpurpose"> — return a range of device numbers </span></dt><dt><span class="refentrytitle"><a href="API---unregister-chrdev.html"><span>__unregister_chrdev</span></a></span><span class="refpurpose"> — unregister and destroy a cdev </span></dt><dt><span class="refentrytitle"><a href="API-cdev-add.html"><span>cdev_add</span></a></span><span class="refpurpose"> — add a char device to the system </span></dt><dt><span class="refentrytitle"><a href="API-cdev-del.html"><span>cdev_del</span></a></span><span class="refpurpose"> — remove a cdev from the system </span></dt><dt><span class="refentrytitle"><a href="API-cdev-alloc.html"><span>cdev_alloc</span></a></span><span class="refpurpose"> — allocate a cdev structure </span></dt><dt><span class="refentrytitle"><a href="API-cdev-init.html"><span>cdev_init</span></a></span><span class="refpurpose"> — initialize a cdev structure </span></dt></dl></dd><dt><span class="chapter"><a href="miscdev.html">16. Miscellaneous Devices</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-misc-register.html"><span>misc_register</span></a></span><span class="refpurpose"> — register a miscellaneous device </span></dt><dt><span class="refentrytitle"><a href="API-misc-deregister.html"><span>misc_deregister</span></a></span><span class="refpurpose"> — unregister a miscellaneous device </span></dt></dl></dd><dt><span class="chapter"><a href="clk.html">17. Clock Framework</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-clk-get.html"><span>clk_get</span></a></span><span class="refpurpose"> — lookup and obtain a reference to a clock producer. </span></dt><dt><span class="refentrytitle"><a href="API-clk-enable.html"><span>clk_enable</span></a></span><span class="refpurpose"> — inform the system when the clock source should be running. </span></dt><dt><span class="refentrytitle"><a href="API-clk-disable.html"><span>clk_disable</span></a></span><span class="refpurpose"> — inform the system when the clock source is no longer required. </span></dt><dt><span class="refentrytitle"><a href="API-clk-get-rate.html"><span>clk_get_rate</span></a></span><span class="refpurpose"> — obtain the current clock rate (in Hz) for a clock source. This is only valid once the clock source has been enabled. </span></dt><dt><span class="refentrytitle"><a href="API-clk-put.html"><span>clk_put</span></a></span><span class="refpurpose"> — "free" the clock source </span></dt><dt><span class="refentrytitle"><a href="API-clk-round-rate.html"><span>clk_round_rate</span></a></span><span class="refpurpose"> — adjust a rate to the exact rate a clock can provide </span></dt><dt><span class="refentrytitle"><a href="API-clk-set-rate.html"><span>clk_set_rate</span></a></span><span class="refpurpose"> — set the clock rate for a clock source </span></dt><dt><span class="refentrytitle"><a href="API-clk-set-parent.html"><span>clk_set_parent</span></a></span><span class="refpurpose"> — set the parent clock source for this clock </span></dt><dt><span class="refentrytitle"><a href="API-clk-get-parent.html"><span>clk_get_parent</span></a></span><span class="refpurpose"> — get the parent clock source for this clock </span></dt><dt><span class="refentrytitle"><a href="API-clk-get-sys.html"><span>clk_get_sys</span></a></span><span class="refpurpose"> — get a clock based upon the device name </span></dt><dt><span class="refentrytitle"><a href="API-clk-add-alias.html"><span>clk_add_alias</span></a></span><span class="refpurpose"> — add a new clock alias </span></dt></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="adt.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"> </td><td width="40%" align="right" valign="top"> Chapter 1. Data Types</td></tr></table></div></body></html>