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 1. 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"> </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"><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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 338 replace disk->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"> — 340 expand disk->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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> </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> 444