1<html><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.78.1"><link rel="home" href="index.html" title="The Linux Kernel API"><link rel="next" href="adt.html" title="Chapter&#160;1.&#160;Data Types"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><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">&#160;</td><th width="60%" align="center">&#160;</th><td width="20%" align="right">&#160;<a accesskey="n" href="adt.html">Next</a></td></tr></table><hr></div><div class="book"><div class="titlepage"><div><div><h1 class="title"><a name="LinuxKernelAPI"></a>The Linux Kernel API</h1></div><div><div class="legalnotice"><a name="idp1121323948"></a><p>
2     This documentation is free software; you can redistribute
3     it and/or modify it under the terms of the GNU General Public
4     License as published by the Free Software Foundation; either
5     version 2 of the License, or (at your option) any later
6     version.
7   </p><p>
8     This program is distributed in the hope that it will be
9     useful, but WITHOUT ANY WARRANTY; without even the implied
10     warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11     See the GNU General Public License for more details.
12   </p><p>
13     You should have received a copy of the GNU General Public
14     License along with this program; if not, write to the Free
15     Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
16     MA 02111-1307 USA
17   </p><p>
18     For more details see the file COPYING in the source
19     distribution of Linux.
20   </p></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="chapter"><a href="adt.html">1. Data Types</a></span></dt><dd><dl><dt><span class="sect1"><a href="adt.html#idp1119950572">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#idp1122555668">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#idp1123213284">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#idp1123724580">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#idp1124933524">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#idp1125154228">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#idp1125442764">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#idp1125664212">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#idp1125715868">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></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#idp1127298468">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 class="phrase">security_init</span></a></span><span class="refpurpose"> &#8212; 
21  initializes the security framework
22 </span></dt><dt><span class="refentrytitle"><a href="API-security-module-enable.html"><span class="phrase">security_module_enable</span></a></span><span class="refpurpose"> &#8212; 
23     Load given security module on boot ?
24 </span></dt><dt><span class="refentrytitle"><a href="API-register-security.html"><span class="phrase">register_security</span></a></span><span class="refpurpose"> &#8212; 
25     registers a security framework with the kernel
26 </span></dt><dt><span class="refentrytitle"><a href="API-securityfs-create-file.html"><span class="phrase">securityfs_create_file</span></a></span><span class="refpurpose"> &#8212; 
27  create a file in the securityfs filesystem
28 </span></dt><dt><span class="refentrytitle"><a href="API-securityfs-create-dir.html"><span class="phrase">securityfs_create_dir</span></a></span><span class="refpurpose"> &#8212; 
29     create a directory in the securityfs filesystem
30 </span></dt><dt><span class="refentrytitle"><a href="API-securityfs-remove.html"><span class="phrase">securityfs_remove</span></a></span><span class="refpurpose"> &#8212; 
31     removes a file or directory from the securityfs filesystem
32 </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 class="phrase">audit_log_start</span></a></span><span class="refpurpose"> &#8212; 
33  obtain an audit buffer
34 </span></dt><dt><span class="refentrytitle"><a href="API-audit-log-format.html"><span class="phrase">audit_log_format</span></a></span><span class="refpurpose"> &#8212; 
35     format a message into the audit buffer.
36 </span></dt><dt><span class="refentrytitle"><a href="API-audit-log-end.html"><span class="phrase">audit_log_end</span></a></span><span class="refpurpose"> &#8212; 
37     end one audit record
38 </span></dt><dt><span class="refentrytitle"><a href="API-audit-log.html"><span class="phrase">audit_log</span></a></span><span class="refpurpose"> &#8212; 
39     Log an audit record
40 </span></dt><dt><span class="refentrytitle"><a href="API-audit-log-secctx.html"><span class="phrase">audit_log_secctx</span></a></span><span class="refpurpose"> &#8212; 
41     Converts and logs SELinux context
42 </span></dt><dt><span class="refentrytitle"><a href="API-audit-alloc.html"><span class="phrase">audit_alloc</span></a></span><span class="refpurpose"> &#8212; 
43  allocate an audit context block for a task
44 </span></dt><dt><span class="refentrytitle"><a href="API---audit-free.html"><span class="phrase">__audit_free</span></a></span><span class="refpurpose"> &#8212; 
45     free a per-task audit context
46 </span></dt><dt><span class="refentrytitle"><a href="API---audit-syscall-entry.html"><span class="phrase">__audit_syscall_entry</span></a></span><span class="refpurpose"> &#8212; 
47     fill in an audit record at syscall entry
48 </span></dt><dt><span class="refentrytitle"><a href="API---audit-syscall-exit.html"><span class="phrase">__audit_syscall_exit</span></a></span><span class="refpurpose"> &#8212; 
49     deallocate audit context after a system call
50 </span></dt><dt><span class="refentrytitle"><a href="API---audit-reusename.html"><span class="phrase">__audit_reusename</span></a></span><span class="refpurpose"> &#8212; 
51     fill out filename with info from existing entry
52 </span></dt><dt><span class="refentrytitle"><a href="API---audit-getname.html"><span class="phrase">__audit_getname</span></a></span><span class="refpurpose"> &#8212; 
53     add a name to the list
54 </span></dt><dt><span class="refentrytitle"><a href="API---audit-inode.html"><span class="phrase">__audit_inode</span></a></span><span class="refpurpose"> &#8212; 
55     store the inode and device from a lookup
56 </span></dt><dt><span class="refentrytitle"><a href="API-auditsc-get-stamp.html"><span class="phrase">auditsc_get_stamp</span></a></span><span class="refpurpose"> &#8212; 
57     get local copies of audit_context values
58 </span></dt><dt><span class="refentrytitle"><a href="API-audit-set-loginuid.html"><span class="phrase">audit_set_loginuid</span></a></span><span class="refpurpose"> &#8212; 
59     set current task's audit_context loginuid
60 </span></dt><dt><span class="refentrytitle"><a href="API---audit-mq-open.html"><span class="phrase">__audit_mq_open</span></a></span><span class="refpurpose"> &#8212; 
61     record audit data for a POSIX MQ open
62 </span></dt><dt><span class="refentrytitle"><a href="API---audit-mq-sendrecv.html"><span class="phrase">__audit_mq_sendrecv</span></a></span><span class="refpurpose"> &#8212; 
63     record audit data for a POSIX MQ timed send/receive
64 </span></dt><dt><span class="refentrytitle"><a href="API---audit-mq-notify.html"><span class="phrase">__audit_mq_notify</span></a></span><span class="refpurpose"> &#8212; 
65     record audit data for a POSIX MQ notify
66 </span></dt><dt><span class="refentrytitle"><a href="API---audit-mq-getsetattr.html"><span class="phrase">__audit_mq_getsetattr</span></a></span><span class="refpurpose"> &#8212; 
67     record audit data for a POSIX MQ get/set attribute
68 </span></dt><dt><span class="refentrytitle"><a href="API---audit-ipc-obj.html"><span class="phrase">__audit_ipc_obj</span></a></span><span class="refpurpose"> &#8212; 
69     record audit data for ipc object
70 </span></dt><dt><span class="refentrytitle"><a href="API---audit-ipc-set-perm.html"><span class="phrase">__audit_ipc_set_perm</span></a></span><span class="refpurpose"> &#8212; 
71     record audit data for new ipc permissions
72 </span></dt><dt><span class="refentrytitle"><a href="API---audit-socketcall.html"><span class="phrase">__audit_socketcall</span></a></span><span class="refpurpose"> &#8212; 
73     record audit data for sys_socketcall
74 </span></dt><dt><span class="refentrytitle"><a href="API---audit-fd-pair.html"><span class="phrase">__audit_fd_pair</span></a></span><span class="refpurpose"> &#8212; 
75     record audit data for pipe and socketpair
76 </span></dt><dt><span class="refentrytitle"><a href="API---audit-sockaddr.html"><span class="phrase">__audit_sockaddr</span></a></span><span class="refpurpose"> &#8212; 
77     record audit data for sys_bind, sys_connect, sys_sendto
78 </span></dt><dt><span class="refentrytitle"><a href="API---audit-signal-info.html"><span class="phrase">__audit_signal_info</span></a></span><span class="refpurpose"> &#8212; 
79     record signal info for shutting down audit subsystem
80 </span></dt><dt><span class="refentrytitle"><a href="API---audit-log-bprm-fcaps.html"><span class="phrase">__audit_log_bprm_fcaps</span></a></span><span class="refpurpose"> &#8212; 
81     store information about a loading bprm and relevant fcaps
82 </span></dt><dt><span class="refentrytitle"><a href="API---audit-log-capset.html"><span class="phrase">__audit_log_capset</span></a></span><span class="refpurpose"> &#8212; 
83     store information about the arguments to the capset syscall
84 </span></dt><dt><span class="refentrytitle"><a href="API-audit-core-dumps.html"><span class="phrase">audit_core_dumps</span></a></span><span class="refpurpose"> &#8212; 
85     record information about processes that end abnormally
86 </span></dt><dt><span class="refentrytitle"><a href="API-audit-rule-change.html"><span class="phrase">audit_rule_change</span></a></span><span class="refpurpose"> &#8212; 
87  apply all rules to the specified message type
88 </span></dt><dt><span class="refentrytitle"><a href="API-audit-list-rules-send.html"><span class="phrase">audit_list_rules_send</span></a></span><span class="refpurpose"> &#8212; 
89     list the audit rules
90 </span></dt><dt><span class="refentrytitle"><a href="API-parent-len.html"><span class="phrase">parent_len</span></a></span><span class="refpurpose"> &#8212; 
91     find the length of the parent portion of a pathname
92 </span></dt><dt><span class="refentrytitle"><a href="API-audit-compare-dname-path.html"><span class="phrase">audit_compare_dname_path</span></a></span><span class="refpurpose"> &#8212; 
93     compare given dentry name with last component in given path. Return of 0 indicates a match.
94 </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 class="phrase">sys_acct</span></a></span><span class="refpurpose"> &#8212; 
95  enable/disable process accounting
96 </span></dt><dt><span class="refentrytitle"><a href="API-acct-collect.html"><span class="phrase">acct_collect</span></a></span><span class="refpurpose"> &#8212; 
97     collect accounting information into pacct_struct
98 </span></dt><dt><span class="refentrytitle"><a href="API-acct-process.html"><span class="phrase">acct_process</span></a></span><span class="refpurpose"> &#8212; 
99   </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 class="phrase">blk_get_backing_dev_info</span></a></span><span class="refpurpose"> &#8212; 
100  get the address of a queue's backing_dev_info
101 </span></dt><dt><span class="refentrytitle"><a href="API-blk-delay-queue.html"><span class="phrase">blk_delay_queue</span></a></span><span class="refpurpose"> &#8212; 
102     restart queueing after defined interval
103 </span></dt><dt><span class="refentrytitle"><a href="API-blk-start-queue.html"><span class="phrase">blk_start_queue</span></a></span><span class="refpurpose"> &#8212; 
104     restart a previously stopped queue
105 </span></dt><dt><span class="refentrytitle"><a href="API-blk-stop-queue.html"><span class="phrase">blk_stop_queue</span></a></span><span class="refpurpose"> &#8212; 
106     stop a queue
107 </span></dt><dt><span class="refentrytitle"><a href="API-blk-sync-queue.html"><span class="phrase">blk_sync_queue</span></a></span><span class="refpurpose"> &#8212; 
108     cancel any pending callbacks on a queue
109 </span></dt><dt><span class="refentrytitle"><a href="API---blk-run-queue.html"><span class="phrase">__blk_run_queue</span></a></span><span class="refpurpose"> &#8212; 
110     run a single device queue
111 </span></dt><dt><span class="refentrytitle"><a href="API-blk-run-queue-async.html"><span class="phrase">blk_run_queue_async</span></a></span><span class="refpurpose"> &#8212; 
112     run a single device queue in workqueue context
113 </span></dt><dt><span class="refentrytitle"><a href="API-blk-run-queue.html"><span class="phrase">blk_run_queue</span></a></span><span class="refpurpose"> &#8212; 
114     run a single device queue
115 </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-bypass-start.html"><span class="phrase">blk_queue_bypass_start</span></a></span><span class="refpurpose"> &#8212; 
116     enter queue bypass mode
117 </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-bypass-end.html"><span class="phrase">blk_queue_bypass_end</span></a></span><span class="refpurpose"> &#8212; 
118     leave queue bypass mode
119 </span></dt><dt><span class="refentrytitle"><a href="API-blk-cleanup-queue.html"><span class="phrase">blk_cleanup_queue</span></a></span><span class="refpurpose"> &#8212; 
120     shutdown a request queue
121 </span></dt><dt><span class="refentrytitle"><a href="API-blk-init-queue.html"><span class="phrase">blk_init_queue</span></a></span><span class="refpurpose"> &#8212; 
122     prepare a request queue for use with a block device
123 </span></dt><dt><span class="refentrytitle"><a href="API-blk-make-request.html"><span class="phrase">blk_make_request</span></a></span><span class="refpurpose"> &#8212; 
124     given a bio, allocate a corresponding struct request.
125 </span></dt><dt><span class="refentrytitle"><a href="API-blk-rq-set-block-pc.html"><span class="phrase">blk_rq_set_block_pc</span></a></span><span class="refpurpose"> &#8212; 
126     initialize a request to type BLOCK_PC
127 </span></dt><dt><span class="refentrytitle"><a href="API-blk-requeue-request.html"><span class="phrase">blk_requeue_request</span></a></span><span class="refpurpose"> &#8212; 
128     put a request back on queue
129 </span></dt><dt><span class="refentrytitle"><a href="API-part-round-stats.html"><span class="phrase">part_round_stats</span></a></span><span class="refpurpose"> &#8212; 
130     Round off the performance stats on a struct disk_stats.
131 </span></dt><dt><span class="refentrytitle"><a href="API-blk-add-request-payload.html"><span class="phrase">blk_add_request_payload</span></a></span><span class="refpurpose"> &#8212; 
132     add a payload to a request
133 </span></dt><dt><span class="refentrytitle"><a href="API-generic-make-request.html"><span class="phrase">generic_make_request</span></a></span><span class="refpurpose"> &#8212; 
134     hand a buffer to its device driver for I/O
135 </span></dt><dt><span class="refentrytitle"><a href="API-submit-bio.html"><span class="phrase">submit_bio</span></a></span><span class="refpurpose"> &#8212; 
136     submit a bio to the block device layer for I/O
137 </span></dt><dt><span class="refentrytitle"><a href="API-blk-rq-check-limits.html"><span class="phrase">blk_rq_check_limits</span></a></span><span class="refpurpose"> &#8212; 
138     Helper function to check a request for the queue limit
139 </span></dt><dt><span class="refentrytitle"><a href="API-blk-insert-cloned-request.html"><span class="phrase">blk_insert_cloned_request</span></a></span><span class="refpurpose"> &#8212; 
140     Helper for stacking drivers to submit a request
141 </span></dt><dt><span class="refentrytitle"><a href="API-blk-rq-err-bytes.html"><span class="phrase">blk_rq_err_bytes</span></a></span><span class="refpurpose"> &#8212; 
142     determine number of bytes till the next failure boundary
143 </span></dt><dt><span class="refentrytitle"><a href="API-blk-peek-request.html"><span class="phrase">blk_peek_request</span></a></span><span class="refpurpose"> &#8212; 
144     peek at the top of a request queue
145 </span></dt><dt><span class="refentrytitle"><a href="API-blk-start-request.html"><span class="phrase">blk_start_request</span></a></span><span class="refpurpose"> &#8212; 
146     start request processing on the driver
147 </span></dt><dt><span class="refentrytitle"><a href="API-blk-fetch-request.html"><span class="phrase">blk_fetch_request</span></a></span><span class="refpurpose"> &#8212; 
148     fetch a request from a request queue
149 </span></dt><dt><span class="refentrytitle"><a href="API-blk-update-request.html"><span class="phrase">blk_update_request</span></a></span><span class="refpurpose"> &#8212; 
150     Special helper function for request stacking drivers
151 </span></dt><dt><span class="refentrytitle"><a href="API-blk-unprep-request.html"><span class="phrase">blk_unprep_request</span></a></span><span class="refpurpose"> &#8212; 
152     unprepare a request
153 </span></dt><dt><span class="refentrytitle"><a href="API-blk-end-request.html"><span class="phrase">blk_end_request</span></a></span><span class="refpurpose"> &#8212; 
154     Helper function for drivers to complete the request.
155 </span></dt><dt><span class="refentrytitle"><a href="API-blk-end-request-all.html"><span class="phrase">blk_end_request_all</span></a></span><span class="refpurpose"> &#8212; 
156     Helper function for drives to finish the request.
157 </span></dt><dt><span class="refentrytitle"><a href="API-blk-end-request-cur.html"><span class="phrase">blk_end_request_cur</span></a></span><span class="refpurpose"> &#8212; 
158     Helper function to finish the current request chunk.
159 </span></dt><dt><span class="refentrytitle"><a href="API-blk-end-request-err.html"><span class="phrase">blk_end_request_err</span></a></span><span class="refpurpose"> &#8212; 
160     Finish a request till the next failure boundary.
161 </span></dt><dt><span class="refentrytitle"><a href="API---blk-end-request.html"><span class="phrase">__blk_end_request</span></a></span><span class="refpurpose"> &#8212; 
162     Helper function for drivers to complete the request.
163 </span></dt><dt><span class="refentrytitle"><a href="API---blk-end-request-all.html"><span class="phrase">__blk_end_request_all</span></a></span><span class="refpurpose"> &#8212; 
164     Helper function for drives to finish the request.
165 </span></dt><dt><span class="refentrytitle"><a href="API---blk-end-request-cur.html"><span class="phrase">__blk_end_request_cur</span></a></span><span class="refpurpose"> &#8212; 
166     Helper function to finish the current request chunk.
167 </span></dt><dt><span class="refentrytitle"><a href="API---blk-end-request-err.html"><span class="phrase">__blk_end_request_err</span></a></span><span class="refpurpose"> &#8212; 
168     Finish a request till the next failure boundary.
169 </span></dt><dt><span class="refentrytitle"><a href="API-rq-flush-dcache-pages.html"><span class="phrase">rq_flush_dcache_pages</span></a></span><span class="refpurpose"> &#8212; 
170     Helper function to flush all pages in a request
171 </span></dt><dt><span class="refentrytitle"><a href="API-blk-lld-busy.html"><span class="phrase">blk_lld_busy</span></a></span><span class="refpurpose"> &#8212; 
172     Check if underlying low-level drivers of a device are busy
173 </span></dt><dt><span class="refentrytitle"><a href="API-blk-rq-unprep-clone.html"><span class="phrase">blk_rq_unprep_clone</span></a></span><span class="refpurpose"> &#8212; 
174     Helper function to free all bios in a cloned request
175 </span></dt><dt><span class="refentrytitle"><a href="API-blk-rq-prep-clone.html"><span class="phrase">blk_rq_prep_clone</span></a></span><span class="refpurpose"> &#8212; 
176     Helper function to setup clone request
177 </span></dt><dt><span class="refentrytitle"><a href="API-blk-start-plug.html"><span class="phrase">blk_start_plug</span></a></span><span class="refpurpose"> &#8212; 
178     initialize blk_plug and track it inside the task_struct
179 </span></dt><dt><span class="refentrytitle"><a href="API-blk-pm-runtime-init.html"><span class="phrase">blk_pm_runtime_init</span></a></span><span class="refpurpose"> &#8212; 
180     Block layer runtime PM initialization routine
181 </span></dt><dt><span class="refentrytitle"><a href="API-blk-pre-runtime-suspend.html"><span class="phrase">blk_pre_runtime_suspend</span></a></span><span class="refpurpose"> &#8212; 
182     Pre runtime suspend check
183 </span></dt><dt><span class="refentrytitle"><a href="API-blk-post-runtime-suspend.html"><span class="phrase">blk_post_runtime_suspend</span></a></span><span class="refpurpose"> &#8212; 
184     Post runtime suspend processing
185 </span></dt><dt><span class="refentrytitle"><a href="API-blk-pre-runtime-resume.html"><span class="phrase">blk_pre_runtime_resume</span></a></span><span class="refpurpose"> &#8212; 
186     Pre runtime resume processing
187 </span></dt><dt><span class="refentrytitle"><a href="API-blk-post-runtime-resume.html"><span class="phrase">blk_post_runtime_resume</span></a></span><span class="refpurpose"> &#8212; 
188     Post runtime resume processing
189 </span></dt><dt><span class="refentrytitle"><a href="API---blk-run-queue-uncond.html"><span class="phrase">__blk_run_queue_uncond</span></a></span><span class="refpurpose"> &#8212; 
190  run a queue whether or not it has been stopped
191 </span></dt><dt><span class="refentrytitle"><a href="API---blk-drain-queue.html"><span class="phrase">__blk_drain_queue</span></a></span><span class="refpurpose"> &#8212; 
192     drain requests from request_queue
193 </span></dt><dt><span class="refentrytitle"><a href="API-rq-ioc.html"><span class="phrase">rq_ioc</span></a></span><span class="refpurpose"> &#8212; 
194     determine io_context for request allocation
195 </span></dt><dt><span class="refentrytitle"><a href="API---get-request.html"><span class="phrase">__get_request</span></a></span><span class="refpurpose"> &#8212; 
196     get a free request
197 </span></dt><dt><span class="refentrytitle"><a href="API-get-request.html"><span class="phrase">get_request</span></a></span><span class="refpurpose"> &#8212; 
198     get a free request
199 </span></dt><dt><span class="refentrytitle"><a href="API-blk-attempt-plug-merge.html"><span class="phrase">blk_attempt_plug_merge</span></a></span><span class="refpurpose"> &#8212; 
200     try to merge with <code class="constant">current</code>'s plugged list
201 </span></dt><dt><span class="refentrytitle"><a href="API-blk-end-bidi-request.html"><span class="phrase">blk_end_bidi_request</span></a></span><span class="refpurpose"> &#8212; 
202     Complete a bidi request
203 </span></dt><dt><span class="refentrytitle"><a href="API---blk-end-bidi-request.html"><span class="phrase">__blk_end_bidi_request</span></a></span><span class="refpurpose"> &#8212; 
204     Complete a bidi request with queue lock held
205 </span></dt><dt><span class="refentrytitle"><a href="API-blk-rq-map-user-iov.html"><span class="phrase">blk_rq_map_user_iov</span></a></span><span class="refpurpose"> &#8212; 
206  map user data to a request, for REQ_TYPE_BLOCK_PC usage
207 </span></dt><dt><span class="refentrytitle"><a href="API-blk-rq-unmap-user.html"><span class="phrase">blk_rq_unmap_user</span></a></span><span class="refpurpose"> &#8212; 
208     unmap a request with user data
209 </span></dt><dt><span class="refentrytitle"><a href="API-blk-rq-map-kern.html"><span class="phrase">blk_rq_map_kern</span></a></span><span class="refpurpose"> &#8212; 
210     map kernel data to a request, for REQ_TYPE_BLOCK_PC usage
211 </span></dt><dt><span class="refentrytitle"><a href="API-blk-release-queue.html"><span class="phrase">blk_release_queue</span></a></span><span class="refpurpose"> &#8212; 
212  release a <span class="structname">struct request_queue</span> when it is no longer needed
213 </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-prep-rq.html"><span class="phrase">blk_queue_prep_rq</span></a></span><span class="refpurpose"> &#8212; 
214  set a prepare_request function for queue
215 </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-unprep-rq.html"><span class="phrase">blk_queue_unprep_rq</span></a></span><span class="refpurpose"> &#8212; 
216     set an unprepare_request function for queue
217 </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-merge-bvec.html"><span class="phrase">blk_queue_merge_bvec</span></a></span><span class="refpurpose"> &#8212; 
218     set a merge_bvec function for queue
219 </span></dt><dt><span class="refentrytitle"><a href="API-blk-set-default-limits.html"><span class="phrase">blk_set_default_limits</span></a></span><span class="refpurpose"> &#8212; 
220     reset limits to default values
221 </span></dt><dt><span class="refentrytitle"><a href="API-blk-set-stacking-limits.html"><span class="phrase">blk_set_stacking_limits</span></a></span><span class="refpurpose"> &#8212; 
222     set default limits for stacking devices
223 </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-make-request.html"><span class="phrase">blk_queue_make_request</span></a></span><span class="refpurpose"> &#8212; 
224     define an alternate make_request function for a device
225 </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-bounce-limit.html"><span class="phrase">blk_queue_bounce_limit</span></a></span><span class="refpurpose"> &#8212; 
226     set bounce buffer limit for queue
227 </span></dt><dt><span class="refentrytitle"><a href="API-blk-limits-max-hw-sectors.html"><span class="phrase">blk_limits_max_hw_sectors</span></a></span><span class="refpurpose"> &#8212; 
228     set hard and soft limit of max sectors for request
229 </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-max-hw-sectors.html"><span class="phrase">blk_queue_max_hw_sectors</span></a></span><span class="refpurpose"> &#8212; 
230     set max sectors for a request for this queue
231 </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-chunk-sectors.html"><span class="phrase">blk_queue_chunk_sectors</span></a></span><span class="refpurpose"> &#8212; 
232     set size of the chunk for this queue
233 </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-max-discard-sectors.html"><span class="phrase">blk_queue_max_discard_sectors</span></a></span><span class="refpurpose"> &#8212; 
234     set max sectors for a single discard
235 </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-max-write-same-sectors.html"><span class="phrase">blk_queue_max_write_same_sectors</span></a></span><span class="refpurpose"> &#8212; 
236     set max sectors for a single write same
237 </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-max-segments.html"><span class="phrase">blk_queue_max_segments</span></a></span><span class="refpurpose"> &#8212; 
238     set max hw segments for a request for this queue
239 </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-max-segment-size.html"><span class="phrase">blk_queue_max_segment_size</span></a></span><span class="refpurpose"> &#8212; 
240     set max segment size for blk_rq_map_sg
241 </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-logical-block-size.html"><span class="phrase">blk_queue_logical_block_size</span></a></span><span class="refpurpose"> &#8212; 
242     set logical block size for the queue
243 </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-physical-block-size.html"><span class="phrase">blk_queue_physical_block_size</span></a></span><span class="refpurpose"> &#8212; 
244     set physical block size for the queue
245 </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-alignment-offset.html"><span class="phrase">blk_queue_alignment_offset</span></a></span><span class="refpurpose"> &#8212; 
246     set physical block alignment offset
247 </span></dt><dt><span class="refentrytitle"><a href="API-blk-limits-io-min.html"><span class="phrase">blk_limits_io_min</span></a></span><span class="refpurpose"> &#8212; 
248     set minimum request size for a device
249 </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-io-min.html"><span class="phrase">blk_queue_io_min</span></a></span><span class="refpurpose"> &#8212; 
250     set minimum request size for the queue
251 </span></dt><dt><span class="refentrytitle"><a href="API-blk-limits-io-opt.html"><span class="phrase">blk_limits_io_opt</span></a></span><span class="refpurpose"> &#8212; 
252     set optimal request size for a device
253 </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-io-opt.html"><span class="phrase">blk_queue_io_opt</span></a></span><span class="refpurpose"> &#8212; 
254     set optimal request size for the queue
255 </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-stack-limits.html"><span class="phrase">blk_queue_stack_limits</span></a></span><span class="refpurpose"> &#8212; 
256     inherit underlying queue limits for stacked drivers
257 </span></dt><dt><span class="refentrytitle"><a href="API-blk-stack-limits.html"><span class="phrase">blk_stack_limits</span></a></span><span class="refpurpose"> &#8212; 
258     adjust queue_limits for stacked devices
259 </span></dt><dt><span class="refentrytitle"><a href="API-bdev-stack-limits.html"><span class="phrase">bdev_stack_limits</span></a></span><span class="refpurpose"> &#8212; 
260     adjust queue limits for stacked drivers
261 </span></dt><dt><span class="refentrytitle"><a href="API-disk-stack-limits.html"><span class="phrase">disk_stack_limits</span></a></span><span class="refpurpose"> &#8212; 
262     adjust queue limits for stacked drivers
263 </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-dma-pad.html"><span class="phrase">blk_queue_dma_pad</span></a></span><span class="refpurpose"> &#8212; 
264     set pad mask
265 </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-update-dma-pad.html"><span class="phrase">blk_queue_update_dma_pad</span></a></span><span class="refpurpose"> &#8212; 
266     update pad mask
267 </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-dma-drain.html"><span class="phrase">blk_queue_dma_drain</span></a></span><span class="refpurpose"> &#8212; 
268     Set up a drain buffer for excess dma.
269 </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-segment-boundary.html"><span class="phrase">blk_queue_segment_boundary</span></a></span><span class="refpurpose"> &#8212; 
270     set boundary rules for segment merging
271 </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-dma-alignment.html"><span class="phrase">blk_queue_dma_alignment</span></a></span><span class="refpurpose"> &#8212; 
272     set dma length and memory alignment
273 </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-update-dma-alignment.html"><span class="phrase">blk_queue_update_dma_alignment</span></a></span><span class="refpurpose"> &#8212; 
274     update dma length and memory alignment
275 </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-flush.html"><span class="phrase">blk_queue_flush</span></a></span><span class="refpurpose"> &#8212; 
276     configure queue's cache flush capability
277 </span></dt><dt><span class="refentrytitle"><a href="API-blk-execute-rq-nowait.html"><span class="phrase">blk_execute_rq_nowait</span></a></span><span class="refpurpose"> &#8212; 
278  insert a request into queue for execution
279 </span></dt><dt><span class="refentrytitle"><a href="API-blk-execute-rq.html"><span class="phrase">blk_execute_rq</span></a></span><span class="refpurpose"> &#8212; 
280     insert a request into queue for execution
281 </span></dt><dt><span class="refentrytitle"><a href="API-blkdev-issue-flush.html"><span class="phrase">blkdev_issue_flush</span></a></span><span class="refpurpose"> &#8212; 
282  queue a flush
283 </span></dt><dt><span class="refentrytitle"><a href="API-blkdev-issue-discard.html"><span class="phrase">blkdev_issue_discard</span></a></span><span class="refpurpose"> &#8212; 
284  queue a discard
285 </span></dt><dt><span class="refentrytitle"><a href="API-blkdev-issue-write-same.html"><span class="phrase">blkdev_issue_write_same</span></a></span><span class="refpurpose"> &#8212; 
286     queue a write same operation
287 </span></dt><dt><span class="refentrytitle"><a href="API-blkdev-issue-zeroout.html"><span class="phrase">blkdev_issue_zeroout</span></a></span><span class="refpurpose"> &#8212; 
288     zero-fill a block range
289 </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-find-tag.html"><span class="phrase">blk_queue_find_tag</span></a></span><span class="refpurpose"> &#8212; 
290  find a request by its tag and queue
291 </span></dt><dt><span class="refentrytitle"><a href="API-blk-free-tags.html"><span class="phrase">blk_free_tags</span></a></span><span class="refpurpose"> &#8212; 
292     release a given set of tag maintenance info
293 </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-free-tags.html"><span class="phrase">blk_queue_free_tags</span></a></span><span class="refpurpose"> &#8212; 
294     release tag maintenance info
295 </span></dt><dt><span class="refentrytitle"><a href="API-blk-init-tags.html"><span class="phrase">blk_init_tags</span></a></span><span class="refpurpose"> &#8212; 
296     initialize the tag info for an external tag map
297 </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-init-tags.html"><span class="phrase">blk_queue_init_tags</span></a></span><span class="refpurpose"> &#8212; 
298     initialize the queue tag info
299 </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-resize-tags.html"><span class="phrase">blk_queue_resize_tags</span></a></span><span class="refpurpose"> &#8212; 
300     change the queueing depth
301 </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-end-tag.html"><span class="phrase">blk_queue_end_tag</span></a></span><span class="refpurpose"> &#8212; 
302     end tag operations for a request
303 </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-start-tag.html"><span class="phrase">blk_queue_start_tag</span></a></span><span class="refpurpose"> &#8212; 
304     find a free tag and assign it
305 </span></dt><dt><span class="refentrytitle"><a href="API-blk-queue-invalidate-tags.html"><span class="phrase">blk_queue_invalidate_tags</span></a></span><span class="refpurpose"> &#8212; 
306     invalidate all pending tags
307 </span></dt><dt><span class="refentrytitle"><a href="API---blk-queue-free-tags.html"><span class="phrase">__blk_queue_free_tags</span></a></span><span class="refpurpose"> &#8212; 
308  release tag maintenance info
309 </span></dt><dt><span class="refentrytitle"><a href="API-blk-rq-count-integrity-sg.html"><span class="phrase">blk_rq_count_integrity_sg</span></a></span><span class="refpurpose"> &#8212; 
310  Count number of integrity scatterlist elements
311 </span></dt><dt><span class="refentrytitle"><a href="API-blk-rq-map-integrity-sg.html"><span class="phrase">blk_rq_map_integrity_sg</span></a></span><span class="refpurpose"> &#8212; 
312     Map integrity metadata into a scatterlist
313 </span></dt><dt><span class="refentrytitle"><a href="API-blk-integrity-compare.html"><span class="phrase">blk_integrity_compare</span></a></span><span class="refpurpose"> &#8212; 
314     Compare integrity profile of two disks
315 </span></dt><dt><span class="refentrytitle"><a href="API-blk-integrity-register.html"><span class="phrase">blk_integrity_register</span></a></span><span class="refpurpose"> &#8212; 
316     Register a gendisk as being integrity-capable
317 </span></dt><dt><span class="refentrytitle"><a href="API-blk-integrity-unregister.html"><span class="phrase">blk_integrity_unregister</span></a></span><span class="refpurpose"> &#8212; 
318     Remove block integrity profile
319 </span></dt><dt><span class="refentrytitle"><a href="API-blk-trace-ioctl.html"><span class="phrase">blk_trace_ioctl</span></a></span><span class="refpurpose"> &#8212; 
320  handle the ioctls associated with tracing
321 </span></dt><dt><span class="refentrytitle"><a href="API-blk-trace-shutdown.html"><span class="phrase">blk_trace_shutdown</span></a></span><span class="refpurpose"> &#8212; 
322     stop and cleanup trace structures
323 </span></dt><dt><span class="refentrytitle"><a href="API-blk-add-trace-rq.html"><span class="phrase">blk_add_trace_rq</span></a></span><span class="refpurpose"> &#8212; 
324     Add a trace for a request oriented action
325 </span></dt><dt><span class="refentrytitle"><a href="API-blk-add-trace-bio.html"><span class="phrase">blk_add_trace_bio</span></a></span><span class="refpurpose"> &#8212; 
326     Add a trace for a bio oriented action
327 </span></dt><dt><span class="refentrytitle"><a href="API-blk-add-trace-bio-remap.html"><span class="phrase">blk_add_trace_bio_remap</span></a></span><span class="refpurpose"> &#8212; 
328     Add a trace for a bio-remap operation
329 </span></dt><dt><span class="refentrytitle"><a href="API-blk-add-trace-rq-remap.html"><span class="phrase">blk_add_trace_rq_remap</span></a></span><span class="refpurpose"> &#8212; 
330     Add a trace for a request-remap operation
331 </span></dt><dt><span class="refentrytitle"><a href="API-blk-mangle-minor.html"><span class="phrase">blk_mangle_minor</span></a></span><span class="refpurpose"> &#8212; 
332  scatter minor numbers apart
333 </span></dt><dt><span class="refentrytitle"><a href="API-blk-alloc-devt.html"><span class="phrase">blk_alloc_devt</span></a></span><span class="refpurpose"> &#8212; 
334     allocate a dev_t for a partition
335 </span></dt><dt><span class="refentrytitle"><a href="API-blk-free-devt.html"><span class="phrase">blk_free_devt</span></a></span><span class="refpurpose"> &#8212; 
336     free a dev_t
337 </span></dt><dt><span class="refentrytitle"><a href="API-disk-replace-part-tbl.html"><span class="phrase">disk_replace_part_tbl</span></a></span><span class="refpurpose"> &#8212; 
338     replace disk-&gt;part_tbl in RCU-safe way
339 </span></dt><dt><span class="refentrytitle"><a href="API-disk-expand-part-tbl.html"><span class="phrase">disk_expand_part_tbl</span></a></span><span class="refpurpose"> &#8212; 
340     expand disk-&gt;part_tbl
341 </span></dt><dt><span class="refentrytitle"><a href="API-disk-block-events.html"><span class="phrase">disk_block_events</span></a></span><span class="refpurpose"> &#8212; 
342     block and flush disk event checking
343 </span></dt><dt><span class="refentrytitle"><a href="API-disk-unblock-events.html"><span class="phrase">disk_unblock_events</span></a></span><span class="refpurpose"> &#8212; 
344     unblock disk event checking
345 </span></dt><dt><span class="refentrytitle"><a href="API-disk-flush-events.html"><span class="phrase">disk_flush_events</span></a></span><span class="refpurpose"> &#8212; 
346     schedule immediate event checking and flushing
347 </span></dt><dt><span class="refentrytitle"><a href="API-disk-clear-events.html"><span class="phrase">disk_clear_events</span></a></span><span class="refpurpose"> &#8212; 
348     synchronously check, clear and return pending events
349 </span></dt><dt><span class="refentrytitle"><a href="API-disk-get-part.html"><span class="phrase">disk_get_part</span></a></span><span class="refpurpose"> &#8212; 
350  get partition
351 </span></dt><dt><span class="refentrytitle"><a href="API-disk-part-iter-init.html"><span class="phrase">disk_part_iter_init</span></a></span><span class="refpurpose"> &#8212; 
352     initialize partition iterator
353 </span></dt><dt><span class="refentrytitle"><a href="API-disk-part-iter-next.html"><span class="phrase">disk_part_iter_next</span></a></span><span class="refpurpose"> &#8212; 
354     proceed iterator to the next partition and return it
355 </span></dt><dt><span class="refentrytitle"><a href="API-disk-part-iter-exit.html"><span class="phrase">disk_part_iter_exit</span></a></span><span class="refpurpose"> &#8212; 
356     finish up partition iteration
357 </span></dt><dt><span class="refentrytitle"><a href="API-disk-map-sector-rcu.html"><span class="phrase">disk_map_sector_rcu</span></a></span><span class="refpurpose"> &#8212; 
358     map sector to partition
359 </span></dt><dt><span class="refentrytitle"><a href="API-register-blkdev.html"><span class="phrase">register_blkdev</span></a></span><span class="refpurpose"> &#8212; 
360     register a new block device
361 </span></dt><dt><span class="refentrytitle"><a href="API-add-disk.html"><span class="phrase">add_disk</span></a></span><span class="refpurpose"> &#8212; 
362     add partitioning information to kernel list
363 </span></dt><dt><span class="refentrytitle"><a href="API-get-gendisk.html"><span class="phrase">get_gendisk</span></a></span><span class="refpurpose"> &#8212; 
364     get partitioning information for a given device
365 </span></dt><dt><span class="refentrytitle"><a href="API-bdget-disk.html"><span class="phrase">bdget_disk</span></a></span><span class="refpurpose"> &#8212; 
366     do <code class="function">bdget</code> by gendisk and partition number
367 </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 class="phrase">register_chrdev_region</span></a></span><span class="refpurpose"> &#8212; 
368  register a range of device numbers
369 </span></dt><dt><span class="refentrytitle"><a href="API-alloc-chrdev-region.html"><span class="phrase">alloc_chrdev_region</span></a></span><span class="refpurpose"> &#8212; 
370     register a range of char device numbers
371 </span></dt><dt><span class="refentrytitle"><a href="API---register-chrdev.html"><span class="phrase">__register_chrdev</span></a></span><span class="refpurpose"> &#8212; 
372     create and register a cdev occupying a range of minors
373 </span></dt><dt><span class="refentrytitle"><a href="API-unregister-chrdev-region.html"><span class="phrase">unregister_chrdev_region</span></a></span><span class="refpurpose"> &#8212; 
374     return a range of device numbers
375 </span></dt><dt><span class="refentrytitle"><a href="API---unregister-chrdev.html"><span class="phrase">__unregister_chrdev</span></a></span><span class="refpurpose"> &#8212; 
376     unregister and destroy a cdev
377 </span></dt><dt><span class="refentrytitle"><a href="API-cdev-add.html"><span class="phrase">cdev_add</span></a></span><span class="refpurpose"> &#8212; 
378     add a char device to the system
379 </span></dt><dt><span class="refentrytitle"><a href="API-cdev-del.html"><span class="phrase">cdev_del</span></a></span><span class="refpurpose"> &#8212; 
380     remove a cdev from the system
381 </span></dt><dt><span class="refentrytitle"><a href="API-cdev-alloc.html"><span class="phrase">cdev_alloc</span></a></span><span class="refpurpose"> &#8212; 
382     allocate a cdev structure
383 </span></dt><dt><span class="refentrytitle"><a href="API-cdev-init.html"><span class="phrase">cdev_init</span></a></span><span class="refpurpose"> &#8212; 
384     initialize a cdev structure
385 </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 class="phrase">misc_register</span></a></span><span class="refpurpose"> &#8212; 
386  register a miscellaneous device
387 </span></dt><dt><span class="refentrytitle"><a href="API-misc-deregister.html"><span class="phrase">misc_deregister</span></a></span><span class="refpurpose"> &#8212; 
388     unregister a miscellaneous device
389 </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-struct-clk-notifier.html"><span class="phrase">struct clk_notifier</span></a></span><span class="refpurpose"> &#8212; 
390  associate a clk with a notifier
391 </span></dt><dt><span class="refentrytitle"><a href="API-struct-clk-notifier-data.html"><span class="phrase">struct clk_notifier_data</span></a></span><span class="refpurpose"> &#8212; 
392     rate data to pass to the notifier callback
393 </span></dt><dt><span class="refentrytitle"><a href="API-clk-notifier-register.html"><span class="phrase">clk_notifier_register</span></a></span><span class="refpurpose"> &#8212; 
394     change notifier callback
395 </span></dt><dt><span class="refentrytitle"><a href="API-clk-notifier-unregister.html"><span class="phrase">clk_notifier_unregister</span></a></span><span class="refpurpose"> &#8212; 
396     change notifier callback
397 </span></dt><dt><span class="refentrytitle"><a href="API-clk-get-accuracy.html"><span class="phrase">clk_get_accuracy</span></a></span><span class="refpurpose"> &#8212; 
398     obtain the clock accuracy in ppb (parts per billion) for a clock source.
399 </span></dt><dt><span class="refentrytitle"><a href="API-clk-set-phase.html"><span class="phrase">clk_set_phase</span></a></span><span class="refpurpose"> &#8212; 
400     adjust the phase shift of a clock signal
401 </span></dt><dt><span class="refentrytitle"><a href="API-clk-get-phase.html"><span class="phrase">clk_get_phase</span></a></span><span class="refpurpose"> &#8212; 
402     return the phase shift of a clock signal
403 </span></dt><dt><span class="refentrytitle"><a href="API-clk-is-match.html"><span class="phrase">clk_is_match</span></a></span><span class="refpurpose"> &#8212; 
404     check if two clk's point to the same hardware clock
405 </span></dt><dt><span class="refentrytitle"><a href="API-clk-prepare.html"><span class="phrase">clk_prepare</span></a></span><span class="refpurpose"> &#8212; 
406     prepare a clock source
407 </span></dt><dt><span class="refentrytitle"><a href="API-clk-unprepare.html"><span class="phrase">clk_unprepare</span></a></span><span class="refpurpose"> &#8212; 
408     undo preparation of a clock source
409 </span></dt><dt><span class="refentrytitle"><a href="API-clk-get.html"><span class="phrase">clk_get</span></a></span><span class="refpurpose"> &#8212; 
410     lookup and obtain a reference to a clock producer.
411 </span></dt><dt><span class="refentrytitle"><a href="API-devm-clk-get.html"><span class="phrase">devm_clk_get</span></a></span><span class="refpurpose"> &#8212; 
412     lookup and obtain a managed reference to a clock producer.
413 </span></dt><dt><span class="refentrytitle"><a href="API-clk-enable.html"><span class="phrase">clk_enable</span></a></span><span class="refpurpose"> &#8212; 
414     inform the system when the clock source should be running.
415 </span></dt><dt><span class="refentrytitle"><a href="API-clk-disable.html"><span class="phrase">clk_disable</span></a></span><span class="refpurpose"> &#8212; 
416     inform the system when the clock source is no longer required.
417 </span></dt><dt><span class="refentrytitle"><a href="API-clk-get-rate.html"><span class="phrase">clk_get_rate</span></a></span><span class="refpurpose"> &#8212; 
418     obtain the current clock rate (in Hz) for a clock source. This is only valid once the clock source has been enabled.
419 </span></dt><dt><span class="refentrytitle"><a href="API-clk-put.html"><span class="phrase">clk_put</span></a></span><span class="refpurpose"> &#8212; 
420     "free" the clock source
421 </span></dt><dt><span class="refentrytitle"><a href="API-devm-clk-put.html"><span class="phrase">devm_clk_put</span></a></span><span class="refpurpose"> &#8212; 
422     "free" a managed clock source
423 </span></dt><dt><span class="refentrytitle"><a href="API-clk-round-rate.html"><span class="phrase">clk_round_rate</span></a></span><span class="refpurpose"> &#8212; 
424     adjust a rate to the exact rate a clock can provide
425 </span></dt><dt><span class="refentrytitle"><a href="API-clk-set-rate.html"><span class="phrase">clk_set_rate</span></a></span><span class="refpurpose"> &#8212; 
426     set the clock rate for a clock source
427 </span></dt><dt><span class="refentrytitle"><a href="API-clk-has-parent.html"><span class="phrase">clk_has_parent</span></a></span><span class="refpurpose"> &#8212; 
428     check if a clock is a possible parent for another
429 </span></dt><dt><span class="refentrytitle"><a href="API-clk-set-rate-range.html"><span class="phrase">clk_set_rate_range</span></a></span><span class="refpurpose"> &#8212; 
430     set a rate range for a clock source
431 </span></dt><dt><span class="refentrytitle"><a href="API-clk-set-min-rate.html"><span class="phrase">clk_set_min_rate</span></a></span><span class="refpurpose"> &#8212; 
432     set a minimum clock rate for a clock source
433 </span></dt><dt><span class="refentrytitle"><a href="API-clk-set-max-rate.html"><span class="phrase">clk_set_max_rate</span></a></span><span class="refpurpose"> &#8212; 
434     set a maximum clock rate for a clock source
435 </span></dt><dt><span class="refentrytitle"><a href="API-clk-set-parent.html"><span class="phrase">clk_set_parent</span></a></span><span class="refpurpose"> &#8212; 
436     set the parent clock source for this clock
437 </span></dt><dt><span class="refentrytitle"><a href="API-clk-get-parent.html"><span class="phrase">clk_get_parent</span></a></span><span class="refpurpose"> &#8212; 
438     get the parent clock source for this clock
439 </span></dt><dt><span class="refentrytitle"><a href="API-clk-get-sys.html"><span class="phrase">clk_get_sys</span></a></span><span class="refpurpose"> &#8212; 
440     get a clock based upon the device name
441 </span></dt><dt><span class="refentrytitle"><a href="API-clk-add-alias.html"><span class="phrase">clk_add_alias</span></a></span><span class="refpurpose"> &#8212; 
442     add a new clock alias
443 </span></dt></dl></dd></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left">&#160;</td><td width="20%" align="center">&#160;</td><td width="40%" align="right">&#160;<a accesskey="n" href="adt.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">&#160;</td><td width="20%" align="center">&#160;</td><td width="40%" align="right" valign="top">&#160;Chapter&#160;1.&#160;Data Types</td></tr></table></div></body></html>
444