18b69f522SMauro Carvalho Chehab# SPDX-License-Identifier: GPL-2.0 28b69f522SMauro Carvalho Chehab# Copyright (c) 2026: Mauro Carvalho Chehab <mchehab@kernel.org> 38b69f522SMauro Carvalho Chehab 48b69f522SMauro Carvalho Chehab# Test cases for the dynamic tests. 58b69f522SMauro Carvalho Chehab# Useful to test if kernel-doc classes are doing what it is expected. 68b69f522SMauro Carvalho Chehab# 78b69f522SMauro Carvalho Chehab 88b69f522SMauro Carvalho Chehabtests: 98b69f522SMauro Carvalho Chehab- name: func1 108b69f522SMauro Carvalho Chehab fname: mock_functions.c 118b69f522SMauro Carvalho Chehab description: "Simplest function test: do nothing, just rst output" 128b69f522SMauro Carvalho Chehab 138b69f522SMauro Carvalho Chehab source: | 148b69f522SMauro Carvalho Chehab /** 158b69f522SMauro Carvalho Chehab * func1 - Not exported function 168b69f522SMauro Carvalho Chehab * @arg1: @arg1 does nothing 178b69f522SMauro Carvalho Chehab * 188b69f522SMauro Carvalho Chehab * Does nothing 198b69f522SMauro Carvalho Chehab * 208b69f522SMauro Carvalho Chehab * return: 218b69f522SMauro Carvalho Chehab * always return 0. 228b69f522SMauro Carvalho Chehab */ 238b69f522SMauro Carvalho Chehab int func1(char *arg1) { return 0; }; 248b69f522SMauro Carvalho Chehab 258b69f522SMauro Carvalho Chehab expected: 268b69f522SMauro Carvalho Chehab - rst: | 278b69f522SMauro Carvalho Chehab .. c:function:: int func1 (char *arg1) 288b69f522SMauro Carvalho Chehab 298b69f522SMauro Carvalho Chehab Not exported function 308b69f522SMauro Carvalho Chehab 318b69f522SMauro Carvalho Chehab .. container:: kernelindent 328b69f522SMauro Carvalho Chehab 338b69f522SMauro Carvalho Chehab **Parameters** 348b69f522SMauro Carvalho Chehab 358b69f522SMauro Carvalho Chehab ``char *arg1`` 368b69f522SMauro Carvalho Chehab **arg1** does nothing 378b69f522SMauro Carvalho Chehab 388b69f522SMauro Carvalho Chehab **Description** 398b69f522SMauro Carvalho Chehab 408b69f522SMauro Carvalho Chehab Does nothing 418b69f522SMauro Carvalho Chehab 428b69f522SMauro Carvalho Chehab **Return** 438b69f522SMauro Carvalho Chehab 448b69f522SMauro Carvalho Chehab always return 0. 458b69f522SMauro Carvalho Chehab 468b69f522SMauro Carvalho Chehab # TODO: how to handle timestamps at .TH? 478b69f522SMauro Carvalho Chehab man: | 488b69f522SMauro Carvalho Chehab .TH "func1" 9 "February 2026" "" "Kernel API Manual" 498b69f522SMauro Carvalho Chehab .SH NAME 508b69f522SMauro Carvalho Chehab func1 \- Not exported function 518b69f522SMauro Carvalho Chehab .SH SYNOPSIS 528b69f522SMauro Carvalho Chehab .B "int" func1 538b69f522SMauro Carvalho Chehab .BI "(char *arg1 " ");" 548b69f522SMauro Carvalho Chehab .SH ARGUMENTS 558b69f522SMauro Carvalho Chehab .IP "arg1" 12 568b69f522SMauro Carvalho Chehab \fIarg1\fP does nothing 578b69f522SMauro Carvalho Chehab .SH "DESCRIPTION" 588b69f522SMauro Carvalho Chehab Does nothing 598b69f522SMauro Carvalho Chehab .SH "RETURN" 608b69f522SMauro Carvalho Chehab always return 0. 618b69f522SMauro Carvalho Chehab .SH "SEE ALSO" 628b69f522SMauro Carvalho Chehab .PP 638b69f522SMauro Carvalho Chehab Kernel file \fBmock_functions.c\fR 648b69f522SMauro Carvalho Chehab 658b69f522SMauro Carvalho Chehab- name: func2 668b69f522SMauro Carvalho Chehab fname: func2.c 678b69f522SMauro Carvalho Chehab description: Simple test with exports 688b69f522SMauro Carvalho Chehab 698b69f522SMauro Carvalho Chehab source: | 708b69f522SMauro Carvalho Chehab /** 718b69f522SMauro Carvalho Chehab * func2() - Exported function 728b69f522SMauro Carvalho Chehab * @arg1: @arg1 does nothing 738b69f522SMauro Carvalho Chehab * 748b69f522SMauro Carvalho Chehab * Does nothing 758b69f522SMauro Carvalho Chehab * 768b69f522SMauro Carvalho Chehab * return: 778b69f522SMauro Carvalho Chehab * always return 0. 788b69f522SMauro Carvalho Chehab */ 798b69f522SMauro Carvalho Chehab int func2(char *arg1) { return 0; }; 808b69f522SMauro Carvalho Chehab EXPORT_SYMBOL(func2); 818b69f522SMauro Carvalho Chehab 828b69f522SMauro Carvalho Chehab exports: func2 838b69f522SMauro Carvalho Chehab expected: 848b69f522SMauro Carvalho Chehab - kdoc_item: 858b69f522SMauro Carvalho Chehab name: func2 868b69f522SMauro Carvalho Chehab type: function 878b69f522SMauro Carvalho Chehab declaration_start_line: 1 888b69f522SMauro Carvalho Chehab 898b69f522SMauro Carvalho Chehab sections: 908b69f522SMauro Carvalho Chehab Description: | 918b69f522SMauro Carvalho Chehab Does nothing 928b69f522SMauro Carvalho Chehab 938b69f522SMauro Carvalho Chehab Return: | 948b69f522SMauro Carvalho Chehab always return 0. 958b69f522SMauro Carvalho Chehab 968b69f522SMauro Carvalho Chehab sections_start_lines: 978b69f522SMauro Carvalho Chehab Description: 3 988b69f522SMauro Carvalho Chehab Return: 6 998b69f522SMauro Carvalho Chehab 1008b69f522SMauro Carvalho Chehab parameterdescs: 1018b69f522SMauro Carvalho Chehab arg1: | 1028b69f522SMauro Carvalho Chehab @arg1 does nothing 1038b69f522SMauro Carvalho Chehab parameterlist: 1048b69f522SMauro Carvalho Chehab - arg1 1058b69f522SMauro Carvalho Chehab parameterdesc_start_lines: 1068b69f522SMauro Carvalho Chehab arg1: 2 1078b69f522SMauro Carvalho Chehab parametertypes: 1088b69f522SMauro Carvalho Chehab arg1: char *arg1 1098b69f522SMauro Carvalho Chehab 1108b69f522SMauro Carvalho Chehab other_stuff: 1118b69f522SMauro Carvalho Chehab func_macro: false 1128b69f522SMauro Carvalho Chehab functiontype: int 1138b69f522SMauro Carvalho Chehab purpose: "Exported function" 1148b69f522SMauro Carvalho Chehab typedef: false 1158b69f522SMauro Carvalho Chehab 1168b69f522SMauro Carvalho Chehab rst: | 1178b69f522SMauro Carvalho Chehab .. c:function:: int func2 (char *arg1) 1188b69f522SMauro Carvalho Chehab 1198b69f522SMauro Carvalho Chehab Exported function 1208b69f522SMauro Carvalho Chehab 1218b69f522SMauro Carvalho Chehab .. container:: kernelindent 1228b69f522SMauro Carvalho Chehab 1238b69f522SMauro Carvalho Chehab **Parameters** 1248b69f522SMauro Carvalho Chehab 1258b69f522SMauro Carvalho Chehab ``char *arg1`` 1268b69f522SMauro Carvalho Chehab **arg1** does nothing 1278b69f522SMauro Carvalho Chehab 1288b69f522SMauro Carvalho Chehab **Description** 1298b69f522SMauro Carvalho Chehab 1308b69f522SMauro Carvalho Chehab Does nothing 1318b69f522SMauro Carvalho Chehab 1328b69f522SMauro Carvalho Chehab **Return** 1338b69f522SMauro Carvalho Chehab 1348b69f522SMauro Carvalho Chehab always return 0. 1358b69f522SMauro Carvalho Chehab 1368b69f522SMauro Carvalho Chehab man: | 1378b69f522SMauro Carvalho Chehab .TH "func2" 9 "February 2026" "" "Kernel API Manual" 1388b69f522SMauro Carvalho Chehab .SH NAME 1398b69f522SMauro Carvalho Chehab func2 \- Exported function 1408b69f522SMauro Carvalho Chehab .SH SYNOPSIS 1418b69f522SMauro Carvalho Chehab .B "int" func2 1428b69f522SMauro Carvalho Chehab .BI "(char *arg1 " ");" 1438b69f522SMauro Carvalho Chehab .SH ARGUMENTS 1448b69f522SMauro Carvalho Chehab .IP "arg1" 12 1458b69f522SMauro Carvalho Chehab \fIarg1\fP does nothing 1468b69f522SMauro Carvalho Chehab .SH "DESCRIPTION" 1478b69f522SMauro Carvalho Chehab Does nothing 1488b69f522SMauro Carvalho Chehab .SH "RETURN" 1498b69f522SMauro Carvalho Chehab always return 0. 1508b69f522SMauro Carvalho Chehab .SH "SEE ALSO" 1518b69f522SMauro Carvalho Chehab .PP 1528b69f522SMauro Carvalho Chehab Kernel file \fBfunc2.c\fR 153*bc63427cSMauro Carvalho Chehab 154*bc63427cSMauro Carvalho Chehab- name: doc_with_complex_table 155*bc63427cSMauro Carvalho Chehab description: Test if complex tables are handled 156*bc63427cSMauro Carvalho Chehab fname: mock.c 157*bc63427cSMauro Carvalho Chehab source: | 158*bc63427cSMauro Carvalho Chehab /** 159*bc63427cSMauro Carvalho Chehab * DOC: Supported input formats and encodings 160*bc63427cSMauro Carvalho Chehab * 161*bc63427cSMauro Carvalho Chehab * Depending on the Hardware configuration of the Controller IP, it supports 162*bc63427cSMauro Carvalho Chehab * a subset of the following input formats and encodings on its internal 163*bc63427cSMauro Carvalho Chehab * 48bit bus. 164*bc63427cSMauro Carvalho Chehab * 165*bc63427cSMauro Carvalho Chehab * +----------------------+----------------------------------+------------------------------+ 166*bc63427cSMauro Carvalho Chehab * | Format Name | Format Code | Encodings | 167*bc63427cSMauro Carvalho Chehab * +======================+==================================+==============================+ 168*bc63427cSMauro Carvalho Chehab * | RGB 4:4:4 8bit | ``MEDIA_BUS_FMT_RGB888_1X24`` | ``V4L2_YCBCR_ENC_DEFAULT`` | 169*bc63427cSMauro Carvalho Chehab * +----------------------+----------------------------------+------------------------------+ 170*bc63427cSMauro Carvalho Chehab * | RGB 4:4:4 10bits | ``MEDIA_BUS_FMT_RGB101010_1X30`` | ``V4L2_YCBCR_ENC_DEFAULT`` | 171*bc63427cSMauro Carvalho Chehab * +----------------------+----------------------------------+------------------------------+ 172*bc63427cSMauro Carvalho Chehab */ 173*bc63427cSMauro Carvalho Chehab expected: 174*bc63427cSMauro Carvalho Chehab - man: | 175*bc63427cSMauro Carvalho Chehab .TH "Supported input formats and encodings" 9 "March 2026" "" "Kernel API Manual" 176*bc63427cSMauro Carvalho Chehab .SH "Supported input formats and encodings" 177*bc63427cSMauro Carvalho Chehab Depending on the Hardware configuration of the Controller IP, it supports 178*bc63427cSMauro Carvalho Chehab a subset of the following input formats and encodings on its internal 179*bc63427cSMauro Carvalho Chehab 48bit bus. 180*bc63427cSMauro Carvalho Chehab .PP 181*bc63427cSMauro Carvalho Chehab 182*bc63427cSMauro Carvalho Chehab 183*bc63427cSMauro Carvalho Chehab .TS 184*bc63427cSMauro Carvalho Chehab box; 185*bc63427cSMauro Carvalho Chehab l l l. 186*bc63427cSMauro Carvalho Chehab \fBFormat Name\fP \fBFormat Code\fP \fBEncodings\fP 187*bc63427cSMauro Carvalho Chehab _ 188*bc63427cSMauro Carvalho Chehab RGB 4:4:4 8bit ``MEDIA_BUS_FMT_RGB888_1X24 V4L2_YCBCR_ENC_DEFAULT 189*bc63427cSMauro Carvalho Chehab RGB 4:4:4 10bits MEDIA_BUS_FMT_RGB101010_1X30 V4L2_YCBCR_ENC_DEFAULT`` 190*bc63427cSMauro Carvalho Chehab .TE 191*bc63427cSMauro Carvalho Chehab .SH "SEE ALSO" 192*bc63427cSMauro Carvalho Chehab .PP 193*bc63427cSMauro Carvalho Chehab Kernel file \fBmock.c\fR 194*bc63427cSMauro Carvalho Chehab 195*bc63427cSMauro Carvalho Chehab rst: |- 196*bc63427cSMauro Carvalho Chehab .. _Supported input formats and encodings: 197*bc63427cSMauro Carvalho Chehab **Supported input formats and encodings** 198*bc63427cSMauro Carvalho Chehab Depending on the Hardware configuration of the Controller IP, it supports 199*bc63427cSMauro Carvalho Chehab a subset of the following input formats and encodings on its internal 200*bc63427cSMauro Carvalho Chehab 48bit bus. 201*bc63427cSMauro Carvalho Chehab +----------------------+----------------------------------+------------------------------+ 202*bc63427cSMauro Carvalho Chehab | Format Name | Format Code | Encodings | 203*bc63427cSMauro Carvalho Chehab +======================+==================================+==============================+ 204*bc63427cSMauro Carvalho Chehab | RGB 4:4:4 8bit | ``MEDIA_BUS_FMT_RGB888_1X24`` | ``V4L2_YCBCR_ENC_DEFAULT`` | 205*bc63427cSMauro Carvalho Chehab +----------------------+----------------------------------+------------------------------+ 206*bc63427cSMauro Carvalho Chehab | RGB 4:4:4 10bits | ``MEDIA_BUS_FMT_RGB101010_1X30`` | ``V4L2_YCBCR_ENC_DEFAULT`` | 207*bc63427cSMauro Carvalho Chehab +----------------------+----------------------------------+------------------------------+ 208*bc63427cSMauro Carvalho Chehab- name: func_with_ascii_artwork 209*bc63427cSMauro Carvalho Chehab description: Test if ascii artwork is properly output 210*bc63427cSMauro Carvalho Chehab fname: mock.c 211*bc63427cSMauro Carvalho Chehab source: | 212*bc63427cSMauro Carvalho Chehab /** 213*bc63427cSMauro Carvalho Chehab * add_cxl_resources() - reflect CXL fixed memory windows in iomem_resource 214*bc63427cSMauro Carvalho Chehab * @cxl_res: A standalone resource tree where each CXL window is a sibling 215*bc63427cSMauro Carvalho Chehab * 216*bc63427cSMauro Carvalho Chehab * Walk each CXL window in @cxl_res and add it to iomem_resource potentially 217*bc63427cSMauro Carvalho Chehab * expanding its boundaries to ensure that any conflicting resources become 218*bc63427cSMauro Carvalho Chehab * children. If a window is expanded it may then conflict with a another window 219*bc63427cSMauro Carvalho Chehab * entry and require the window to be truncated or trimmed. Consider this 220*bc63427cSMauro Carvalho Chehab * situation:: 221*bc63427cSMauro Carvalho Chehab * 222*bc63427cSMauro Carvalho Chehab * |-- "CXL Window 0" --||----- "CXL Window 1" -----| 223*bc63427cSMauro Carvalho Chehab * |--------------- "System RAM" -------------| 224*bc63427cSMauro Carvalho Chehab * 225*bc63427cSMauro Carvalho Chehab * ...where platform firmware has established as System RAM resource across 2 226*bc63427cSMauro Carvalho Chehab * windows, but has left some portion of window 1 for dynamic CXL region 227*bc63427cSMauro Carvalho Chehab * provisioning. In this case "Window 0" will span the entirety of the "System 228*bc63427cSMauro Carvalho Chehab * RAM" span, and "CXL Window 1" is truncated to the remaining tail past the end 229*bc63427cSMauro Carvalho Chehab * of that "System RAM" resource. 230*bc63427cSMauro Carvalho Chehab */ 231*bc63427cSMauro Carvalho Chehab static int add_cxl_resources(struct resource *cxl_res); 232*bc63427cSMauro Carvalho Chehab expected: 233*bc63427cSMauro Carvalho Chehab - man: |- 234*bc63427cSMauro Carvalho Chehab .TH "add_cxl_resources" 9 "March 2026" "" "Kernel API Manual" 235*bc63427cSMauro Carvalho Chehab .SH NAME 236*bc63427cSMauro Carvalho Chehab add_cxl_resources \- reflect CXL fixed memory windows in iomem_resource 237*bc63427cSMauro Carvalho Chehab .SH SYNOPSIS 238*bc63427cSMauro Carvalho Chehab .B "int" add_cxl_resources 239*bc63427cSMauro Carvalho Chehab .BI "(struct resource *cxl_res " ");" 240*bc63427cSMauro Carvalho Chehab .SH ARGUMENTS 241*bc63427cSMauro Carvalho Chehab .IP "cxl_res" 12 242*bc63427cSMauro Carvalho Chehab A standalone resource tree where each CXL window is a sibling 243*bc63427cSMauro Carvalho Chehab .SH "DESCRIPTION" 244*bc63427cSMauro Carvalho Chehab Walk each CXL window in \fIcxl_res\fP and add it to iomem_resource potentially 245*bc63427cSMauro Carvalho Chehab expanding its boundaries to ensure that any conflicting resources become 246*bc63427cSMauro Carvalho Chehab children. If a window is expanded it may then conflict with a another window 247*bc63427cSMauro Carvalho Chehab entry and require the window to be truncated or trimmed. Consider this 248*bc63427cSMauro Carvalho Chehab situation: 249*bc63427cSMauro Carvalho Chehab .nf 250*bc63427cSMauro Carvalho Chehab 251*bc63427cSMauro Carvalho Chehab |-- "CXL Window 0" --||----- "CXL Window 1" -----| 252*bc63427cSMauro Carvalho Chehab |--------------- "System RAM" -------------| 253*bc63427cSMauro Carvalho Chehab 254*bc63427cSMauro Carvalho Chehab 255*bc63427cSMauro Carvalho Chehab .fi 256*bc63427cSMauro Carvalho Chehab .PP 257*bc63427cSMauro Carvalho Chehab 258*bc63427cSMauro Carvalho Chehab \&...where platform firmware has established as System RAM resource across 2 259*bc63427cSMauro Carvalho Chehab windows, but has left some portion of window 1 for dynamic CXL region 260*bc63427cSMauro Carvalho Chehab provisioning. In this case "Window 0" will span the entirety of the "System 261*bc63427cSMauro Carvalho Chehab RAM" span, and "CXL Window 1" is truncated to the remaining tail past the end 262*bc63427cSMauro Carvalho Chehab of that "System RAM" resource. 263*bc63427cSMauro Carvalho Chehab .SH "SEE ALSO" 264*bc63427cSMauro Carvalho Chehab .PP 265*bc63427cSMauro Carvalho Chehab Kernel file \fBmock.c\fR 266*bc63427cSMauro Carvalho Chehab rst: | 267*bc63427cSMauro Carvalho Chehab .. c:function:: int add_cxl_resources (struct resource *cxl_res) 268*bc63427cSMauro Carvalho Chehab 269*bc63427cSMauro Carvalho Chehab reflect CXL fixed memory windows in iomem_resource 270*bc63427cSMauro Carvalho Chehab 271*bc63427cSMauro Carvalho Chehab .. container:: kernelindent 272*bc63427cSMauro Carvalho Chehab 273*bc63427cSMauro Carvalho Chehab **Parameters** 274*bc63427cSMauro Carvalho Chehab 275*bc63427cSMauro Carvalho Chehab ``struct resource *cxl_res`` 276*bc63427cSMauro Carvalho Chehab A standalone resource tree where each CXL window is a sibling 277*bc63427cSMauro Carvalho Chehab 278*bc63427cSMauro Carvalho Chehab **Description** 279*bc63427cSMauro Carvalho Chehab 280*bc63427cSMauro Carvalho Chehab Walk each CXL window in **cxl_res** and add it to iomem_resource potentially 281*bc63427cSMauro Carvalho Chehab expanding its boundaries to ensure that any conflicting resources become 282*bc63427cSMauro Carvalho Chehab children. If a window is expanded it may then conflict with a another window 283*bc63427cSMauro Carvalho Chehab entry and require the window to be truncated or trimmed. Consider this 284*bc63427cSMauro Carvalho Chehab situation:: 285*bc63427cSMauro Carvalho Chehab 286*bc63427cSMauro Carvalho Chehab |-- "CXL Window 0" --||----- "CXL Window 1" -----| 287*bc63427cSMauro Carvalho Chehab |--------------- "System RAM" -------------| 288*bc63427cSMauro Carvalho Chehab 289*bc63427cSMauro Carvalho Chehab ...where platform firmware has established as System RAM resource across 2 290*bc63427cSMauro Carvalho Chehab windows, but has left some portion of window 1 for dynamic CXL region 291*bc63427cSMauro Carvalho Chehab provisioning. In this case "Window 0" will span the entirety of the "System 292*bc63427cSMauro Carvalho Chehab RAM" span, and "CXL Window 1" is truncated to the remaining tail past the end 293*bc63427cSMauro Carvalho Chehab of that "System RAM" resource. 294*bc63427cSMauro Carvalho Chehab 295*bc63427cSMauro Carvalho Chehab- name: simple_tables 296*bc63427cSMauro Carvalho Chehab description: Test formatting two simple tables 297*bc63427cSMauro Carvalho Chehab fname: mock.c 298*bc63427cSMauro Carvalho Chehab source: | 299*bc63427cSMauro Carvalho Chehab /** 300*bc63427cSMauro Carvalho Chehab * bitmap_onto - translate one bitmap relative to another 301*bc63427cSMauro Carvalho Chehab * @dst: resulting translated bitmap 302*bc63427cSMauro Carvalho Chehab * @orig: original untranslated bitmap 303*bc63427cSMauro Carvalho Chehab * @relmap: bitmap relative to which translated 304*bc63427cSMauro Carvalho Chehab * @bits: number of bits in each of these bitmaps 305*bc63427cSMauro Carvalho Chehab * 306*bc63427cSMauro Carvalho Chehab * =============== ============== ================= 307*bc63427cSMauro Carvalho Chehab * @orig tmp @dst 308*bc63427cSMauro Carvalho Chehab * 0 0 40 309*bc63427cSMauro Carvalho Chehab * 1 1 41 310*bc63427cSMauro Carvalho Chehab * =============== ============== ================= 311*bc63427cSMauro Carvalho Chehab * 312*bc63427cSMauro Carvalho Chehab * And: 313*bc63427cSMauro Carvalho Chehab * 314*bc63427cSMauro Carvalho Chehab * =============== ============== ================= 315*bc63427cSMauro Carvalho Chehab * @orig tmp @dst 316*bc63427cSMauro Carvalho Chehab * =============== ============== ================= 317*bc63427cSMauro Carvalho Chehab * 9 9 95 318*bc63427cSMauro Carvalho Chehab * 10 0 40 [#f1]_ 319*bc63427cSMauro Carvalho Chehab * =============== ============== ================= 320*bc63427cSMauro Carvalho Chehab */ 321*bc63427cSMauro Carvalho Chehab void bitmap_onto(unsigned long *dst, const unsigned long *orig, 322*bc63427cSMauro Carvalho Chehab const unsigned long *relmap, unsigned int bits); 323*bc63427cSMauro Carvalho Chehab expected: 324*bc63427cSMauro Carvalho Chehab - man: | 325*bc63427cSMauro Carvalho Chehab .TH "bitmap_onto" 9 "March 2026" "" "Kernel API Manual" 326*bc63427cSMauro Carvalho Chehab .SH NAME 327*bc63427cSMauro Carvalho Chehab bitmap_onto \- translate one bitmap relative to another 328*bc63427cSMauro Carvalho Chehab .SH SYNOPSIS 329*bc63427cSMauro Carvalho Chehab .B "void" bitmap_onto 330*bc63427cSMauro Carvalho Chehab .BI "(unsigned long *dst " "," 331*bc63427cSMauro Carvalho Chehab .BI "const unsigned long *orig " "," 332*bc63427cSMauro Carvalho Chehab .BI "const unsigned long *relmap " "," 333*bc63427cSMauro Carvalho Chehab .BI "unsigned int bits " ");" 334*bc63427cSMauro Carvalho Chehab .SH ARGUMENTS 335*bc63427cSMauro Carvalho Chehab .IP "dst" 12 336*bc63427cSMauro Carvalho Chehab resulting translated bitmap 337*bc63427cSMauro Carvalho Chehab .IP "orig" 12 338*bc63427cSMauro Carvalho Chehab original untranslated bitmap 339*bc63427cSMauro Carvalho Chehab .IP "relmap" 12 340*bc63427cSMauro Carvalho Chehab bitmap relative to which translated 341*bc63427cSMauro Carvalho Chehab .IP "bits" 12 342*bc63427cSMauro Carvalho Chehab number of bits in each of these bitmaps 343*bc63427cSMauro Carvalho Chehab .SH "DESCRIPTION" 344*bc63427cSMauro Carvalho Chehab 345*bc63427cSMauro Carvalho Chehab .TS 346*bc63427cSMauro Carvalho Chehab box; 347*bc63427cSMauro Carvalho Chehab l l l. 348*bc63427cSMauro Carvalho Chehab \fIorig\fP tmp \fIdst\fP 349*bc63427cSMauro Carvalho Chehab 0 0 40 350*bc63427cSMauro Carvalho Chehab 1 1 41 351*bc63427cSMauro Carvalho Chehab .TE 352*bc63427cSMauro Carvalho Chehab .PP 353*bc63427cSMauro Carvalho Chehab 354*bc63427cSMauro Carvalho Chehab And: 355*bc63427cSMauro Carvalho Chehab .PP 356*bc63427cSMauro Carvalho Chehab 357*bc63427cSMauro Carvalho Chehab 358*bc63427cSMauro Carvalho Chehab .TS 359*bc63427cSMauro Carvalho Chehab box; 360*bc63427cSMauro Carvalho Chehab l l l. 361*bc63427cSMauro Carvalho Chehab \fIorig\fP tmp \fIdst\fP 362*bc63427cSMauro Carvalho Chehab .TE 363*bc63427cSMauro Carvalho Chehab 9 9 95 364*bc63427cSMauro Carvalho Chehab 10 0 40 [#f1]_ 365*bc63427cSMauro Carvalho Chehab .SH "SEE ALSO" 366*bc63427cSMauro Carvalho Chehab .PP 367*bc63427cSMauro Carvalho Chehab Kernel file \fBmock.c\fR 368*bc63427cSMauro Carvalho Chehab 369*bc63427cSMauro Carvalho Chehab rst: | 370*bc63427cSMauro Carvalho Chehab .. c:function:: void bitmap_onto (unsigned long *dst, const unsigned long *orig, const unsigned long *relmap, unsigned int bits) 371*bc63427cSMauro Carvalho Chehab 372*bc63427cSMauro Carvalho Chehab translate one bitmap relative to another 373*bc63427cSMauro Carvalho Chehab 374*bc63427cSMauro Carvalho Chehab .. container:: kernelindent 375*bc63427cSMauro Carvalho Chehab 376*bc63427cSMauro Carvalho Chehab **Parameters** 377*bc63427cSMauro Carvalho Chehab 378*bc63427cSMauro Carvalho Chehab ``unsigned long *dst`` 379*bc63427cSMauro Carvalho Chehab resulting translated bitmap 380*bc63427cSMauro Carvalho Chehab 381*bc63427cSMauro Carvalho Chehab ``const unsigned long *orig`` 382*bc63427cSMauro Carvalho Chehab original untranslated bitmap 383*bc63427cSMauro Carvalho Chehab 384*bc63427cSMauro Carvalho Chehab ``const unsigned long *relmap`` 385*bc63427cSMauro Carvalho Chehab bitmap relative to which translated 386*bc63427cSMauro Carvalho Chehab 387*bc63427cSMauro Carvalho Chehab ``unsigned int bits`` 388*bc63427cSMauro Carvalho Chehab number of bits in each of these bitmaps 389*bc63427cSMauro Carvalho Chehab 390*bc63427cSMauro Carvalho Chehab **Description** 391*bc63427cSMauro Carvalho Chehab 392*bc63427cSMauro Carvalho Chehab =============== ============== ================= 393*bc63427cSMauro Carvalho Chehab **orig** tmp **dst** 394*bc63427cSMauro Carvalho Chehab 0 0 40 395*bc63427cSMauro Carvalho Chehab 1 1 41 396*bc63427cSMauro Carvalho Chehab =============== ============== ================= 397*bc63427cSMauro Carvalho Chehab 398*bc63427cSMauro Carvalho Chehab And: 399*bc63427cSMauro Carvalho Chehab 400*bc63427cSMauro Carvalho Chehab =============== ============== ================= 401*bc63427cSMauro Carvalho Chehab **orig** tmp **dst** 402*bc63427cSMauro Carvalho Chehab =============== ============== ================= 403*bc63427cSMauro Carvalho Chehab 9 9 95 404*bc63427cSMauro Carvalho Chehab 10 0 40 [#f1]_ 405*bc63427cSMauro Carvalho Chehab =============== ============== ================= 406*bc63427cSMauro Carvalho Chehab 407*bc63427cSMauro Carvalho Chehab# 408*bc63427cSMauro Carvalho Chehab# Variable tests from Randy Dunlap's testset 409*bc63427cSMauro Carvalho Chehab# 410*bc63427cSMauro Carvalho Chehab- name: unsigned_long_var_on_uppercase 411*bc63427cSMauro Carvalho Chehab description: Test an unsigned long varaible in uppercase 412*bc63427cSMauro Carvalho Chehab fname: mock-vars.c 413*bc63427cSMauro Carvalho Chehab source: | 414*bc63427cSMauro Carvalho Chehab /** 415*bc63427cSMauro Carvalho Chehab * var ROOT_DEV - system root device 416*bc63427cSMauro Carvalho Chehab * 417*bc63427cSMauro Carvalho Chehab * @ROOT_DEV is either the successful root device or the root device 418*bc63427cSMauro Carvalho Chehab * that failed boot in the boot failure message. 419*bc63427cSMauro Carvalho Chehab */ 420*bc63427cSMauro Carvalho Chehab unsigned long ROOT_DEV; 421*bc63427cSMauro Carvalho Chehab expected: 422*bc63427cSMauro Carvalho Chehab - man: | 423*bc63427cSMauro Carvalho Chehab .TH "var ROOT_DEV" 9 "February 2026" "" "Kernel API Manual" 424*bc63427cSMauro Carvalho Chehab .SH NAME 425*bc63427cSMauro Carvalho Chehab ROOT_DEV \- system root device 426*bc63427cSMauro Carvalho Chehab .SH SYNOPSIS 427*bc63427cSMauro Carvalho Chehab unsigned long ROOT_DEV; 428*bc63427cSMauro Carvalho Chehab .SH "Description" 429*bc63427cSMauro Carvalho Chehab \fIROOT_DEV\fP is either the successful root device or the root device 430*bc63427cSMauro Carvalho Chehab that failed boot in the boot failure message. 431*bc63427cSMauro Carvalho Chehab .SH "SEE ALSO" 432*bc63427cSMauro Carvalho Chehab .PP 433*bc63427cSMauro Carvalho Chehab Kernel file \fBmock-vars.c\fR 434*bc63427cSMauro Carvalho Chehab rst: | 435*bc63427cSMauro Carvalho Chehab .. c:macro:: ROOT_DEV 436*bc63427cSMauro Carvalho Chehab 437*bc63427cSMauro Carvalho Chehab ``unsigned long ROOT_DEV;`` 438*bc63427cSMauro Carvalho Chehab 439*bc63427cSMauro Carvalho Chehab system root device 440*bc63427cSMauro Carvalho Chehab 441*bc63427cSMauro Carvalho Chehab **Description** 442*bc63427cSMauro Carvalho Chehab 443*bc63427cSMauro Carvalho Chehab **ROOT_DEV** is either the successful root device or the root device 444*bc63427cSMauro Carvalho Chehab that failed boot in the boot failure message. 445*bc63427cSMauro Carvalho Chehab- name: enum_var 446*bc63427cSMauro Carvalho Chehab description: Test an enum var with __read_mostly 447*bc63427cSMauro Carvalho Chehab fname: mock-vars.c 448*bc63427cSMauro Carvalho Chehab source: | 449*bc63427cSMauro Carvalho Chehab /** 450*bc63427cSMauro Carvalho Chehab * var system_state - system state used during boot or suspend/hibernate/resume 451*bc63427cSMauro Carvalho Chehab * 452*bc63427cSMauro Carvalho Chehab * @system_state can be used during boot to determine if it is safe to 453*bc63427cSMauro Carvalho Chehab * make certain calls to other parts of the kernel. It can also be used 454*bc63427cSMauro Carvalho Chehab * during suspend/hibernate or resume to determine the order of actions 455*bc63427cSMauro Carvalho Chehab * that need to be executed. The numerical values of system_state are 456*bc63427cSMauro Carvalho Chehab * sometimes used in numerical ordering tests, so the relative values 457*bc63427cSMauro Carvalho Chehab * must not be altered. 458*bc63427cSMauro Carvalho Chehab */ 459*bc63427cSMauro Carvalho Chehab enum system_states system_state __read_mostly; 460*bc63427cSMauro Carvalho Chehab expected: 461*bc63427cSMauro Carvalho Chehab - man: | 462*bc63427cSMauro Carvalho Chehab .TH "var system_state" 9 "February 2026" "" "Kernel API Manual" 463*bc63427cSMauro Carvalho Chehab .SH NAME 464*bc63427cSMauro Carvalho Chehab system_state \- system state used during boot or suspend/hibernate/resume 465*bc63427cSMauro Carvalho Chehab .SH SYNOPSIS 466*bc63427cSMauro Carvalho Chehab enum system_states system_state __read_mostly; 467*bc63427cSMauro Carvalho Chehab .SH "Description" 468*bc63427cSMauro Carvalho Chehab \fIsystem_state\fP can be used during boot to determine if it is safe to 469*bc63427cSMauro Carvalho Chehab make certain calls to other parts of the kernel. It can also be used 470*bc63427cSMauro Carvalho Chehab during suspend/hibernate or resume to determine the order of actions 471*bc63427cSMauro Carvalho Chehab that need to be executed. The numerical values of system_state are 472*bc63427cSMauro Carvalho Chehab sometimes used in numerical ordering tests, so the relative values 473*bc63427cSMauro Carvalho Chehab must not be altered. 474*bc63427cSMauro Carvalho Chehab .SH "SEE ALSO" 475*bc63427cSMauro Carvalho Chehab .PP 476*bc63427cSMauro Carvalho Chehab Kernel file \fBmock-vars.c\fR 477*bc63427cSMauro Carvalho Chehab rst: | 478*bc63427cSMauro Carvalho Chehab .. c:macro:: system_state 479*bc63427cSMauro Carvalho Chehab 480*bc63427cSMauro Carvalho Chehab ``enum system_states system_state __read_mostly;`` 481*bc63427cSMauro Carvalho Chehab 482*bc63427cSMauro Carvalho Chehab system state used during boot or suspend/hibernate/resume 483*bc63427cSMauro Carvalho Chehab 484*bc63427cSMauro Carvalho Chehab **Description** 485*bc63427cSMauro Carvalho Chehab 486*bc63427cSMauro Carvalho Chehab **system_state** can be used during boot to determine if it is safe to 487*bc63427cSMauro Carvalho Chehab make certain calls to other parts of the kernel. It can also be used 488*bc63427cSMauro Carvalho Chehab during suspend/hibernate or resume to determine the order of actions 489*bc63427cSMauro Carvalho Chehab that need to be executed. The numerical values of system_state are 490*bc63427cSMauro Carvalho Chehab sometimes used in numerical ordering tests, so the relative values 491*bc63427cSMauro Carvalho Chehab must not be altered. 492*bc63427cSMauro Carvalho Chehab- name: char_pointer_var 493*bc63427cSMauro Carvalho Chehab description: Test char * var with __ro_after_init 494*bc63427cSMauro Carvalho Chehab fname: mock-vars.c 495*bc63427cSMauro Carvalho Chehab source: | 496*bc63427cSMauro Carvalho Chehab /** 497*bc63427cSMauro Carvalho Chehab * var saved_command_line - kernel's command line, saved from use at 498*bc63427cSMauro Carvalho Chehab * any later time in the kernel. 499*bc63427cSMauro Carvalho Chehab */ 500*bc63427cSMauro Carvalho Chehab char *saved_command_line __ro_after_init; 501*bc63427cSMauro Carvalho Chehab expected: 502*bc63427cSMauro Carvalho Chehab - man: | 503*bc63427cSMauro Carvalho Chehab .TH "var saved_command_line" 9 "February 2026" "" "Kernel API Manual" 504*bc63427cSMauro Carvalho Chehab .SH NAME 505*bc63427cSMauro Carvalho Chehab saved_command_line \- kernel's command line, saved from use at any later time in the kernel. 506*bc63427cSMauro Carvalho Chehab .SH SYNOPSIS 507*bc63427cSMauro Carvalho Chehab char *saved_command_line __ro_after_init; 508*bc63427cSMauro Carvalho Chehab .SH "SEE ALSO" 509*bc63427cSMauro Carvalho Chehab .PP 510*bc63427cSMauro Carvalho Chehab Kernel file \fBmock-vars.c\fR 511*bc63427cSMauro Carvalho Chehab rst: | 512*bc63427cSMauro Carvalho Chehab .. c:macro:: saved_command_line 513*bc63427cSMauro Carvalho Chehab 514*bc63427cSMauro Carvalho Chehab ``char *saved_command_line __ro_after_init;`` 515*bc63427cSMauro Carvalho Chehab 516*bc63427cSMauro Carvalho Chehab kernel's command line, saved from use at any later time in the kernel. 517*bc63427cSMauro Carvalho Chehab- name: unsigned_long_with_default 518*bc63427cSMauro Carvalho Chehab description: Test an unsigned long var that is set to a default value 519*bc63427cSMauro Carvalho Chehab fname: mock-vars.c 520*bc63427cSMauro Carvalho Chehab source: | 521*bc63427cSMauro Carvalho Chehab /** 522*bc63427cSMauro Carvalho Chehab * var loop_per_jiffy - calculated loop count needed to consume one jiffy 523*bc63427cSMauro Carvalho Chehab * of time 524*bc63427cSMauro Carvalho Chehab */ 525*bc63427cSMauro Carvalho Chehab unsigned long loops_per_jiffy = (1<<12); 526*bc63427cSMauro Carvalho Chehab expected: 527*bc63427cSMauro Carvalho Chehab - man: | 528*bc63427cSMauro Carvalho Chehab .TH "var loops_per_jiffy" 9 "February 2026" "" "Kernel API Manual" 529*bc63427cSMauro Carvalho Chehab .SH NAME 530*bc63427cSMauro Carvalho Chehab loops_per_jiffy \- calculated loop count needed to consume one jiffy of time 531*bc63427cSMauro Carvalho Chehab .SH SYNOPSIS 532*bc63427cSMauro Carvalho Chehab unsigned long loops_per_jiffy = (1<<12); 533*bc63427cSMauro Carvalho Chehab .SH "Initialization" 534*bc63427cSMauro Carvalho Chehab default: (1<<12) 535*bc63427cSMauro Carvalho Chehab .SH "SEE ALSO" 536*bc63427cSMauro Carvalho Chehab .PP 537*bc63427cSMauro Carvalho Chehab Kernel file \fBmock-vars.c\fR 538*bc63427cSMauro Carvalho Chehab rst: | 539*bc63427cSMauro Carvalho Chehab .. c:macro:: loops_per_jiffy 540*bc63427cSMauro Carvalho Chehab 541*bc63427cSMauro Carvalho Chehab ``unsigned long loops_per_jiffy = (1<<12);`` 542*bc63427cSMauro Carvalho Chehab 543*bc63427cSMauro Carvalho Chehab calculated loop count needed to consume one jiffy of time 544*bc63427cSMauro Carvalho Chehab 545*bc63427cSMauro Carvalho Chehab **Initialization** 546*bc63427cSMauro Carvalho Chehab 547*bc63427cSMauro Carvalho Chehab default: ``(1<<12)`` 548*bc63427cSMauro Carvalho Chehab- name: unsigned_long 549*bc63427cSMauro Carvalho Chehab description: test a simple unsigned long variable. 550*bc63427cSMauro Carvalho Chehab fname: mock-vars.c 551*bc63427cSMauro Carvalho Chehab source: | 552*bc63427cSMauro Carvalho Chehab /** 553*bc63427cSMauro Carvalho Chehab * var preset_lpj - lpj (loops per jiffy) value set from kernel 554*bc63427cSMauro Carvalho Chehab * command line using "lpj=VALUE" 555*bc63427cSMauro Carvalho Chehab * 556*bc63427cSMauro Carvalho Chehab * See Documentation/admin-guide/kernel-parameters.txt ("lpj=") for details. 557*bc63427cSMauro Carvalho Chehab */ 558*bc63427cSMauro Carvalho Chehab unsigned long preset_lpj; 559*bc63427cSMauro Carvalho Chehab expected: 560*bc63427cSMauro Carvalho Chehab - man: | 561*bc63427cSMauro Carvalho Chehab .TH "var preset_lpj" 9 "February 2026" "" "Kernel API Manual" 562*bc63427cSMauro Carvalho Chehab .SH NAME 563*bc63427cSMauro Carvalho Chehab preset_lpj \- lpj (loops per jiffy) value set from kernel command line using "lpj=VALUE" 564*bc63427cSMauro Carvalho Chehab .SH SYNOPSIS 565*bc63427cSMauro Carvalho Chehab unsigned long preset_lpj; 566*bc63427cSMauro Carvalho Chehab .SH "Description" 567*bc63427cSMauro Carvalho Chehab See Documentation/admin-guide/kernel-parameters.txt ("lpj=") for details. 568*bc63427cSMauro Carvalho Chehab .SH "SEE ALSO" 569*bc63427cSMauro Carvalho Chehab .PP 570*bc63427cSMauro Carvalho Chehab Kernel file \fBmock-vars.c\fR 571*bc63427cSMauro Carvalho Chehab rst: | 572*bc63427cSMauro Carvalho Chehab .. c:macro:: preset_lpj 573*bc63427cSMauro Carvalho Chehab 574*bc63427cSMauro Carvalho Chehab ``unsigned long preset_lpj;`` 575*bc63427cSMauro Carvalho Chehab 576*bc63427cSMauro Carvalho Chehab lpj (loops per jiffy) value set from kernel command line using "lpj=VALUE" 577*bc63427cSMauro Carvalho Chehab 578*bc63427cSMauro Carvalho Chehab **Description** 579*bc63427cSMauro Carvalho Chehab 580*bc63427cSMauro Carvalho Chehab See Documentation/admin-guide/kernel-parameters.txt ("lpj=") for details. 581*bc63427cSMauro Carvalho Chehab- name: char_array 582*bc63427cSMauro Carvalho Chehab description: test a char array variable 583*bc63427cSMauro Carvalho Chehab fname: mock-vars.c 584*bc63427cSMauro Carvalho Chehab source: | 585*bc63427cSMauro Carvalho Chehab /** 586*bc63427cSMauro Carvalho Chehab * var linux_proc_banner - text used from /proc/version file 587*bc63427cSMauro Carvalho Chehab * 588*bc63427cSMauro Carvalho Chehab * * first %s is sysname (e.g., "Linux") 589*bc63427cSMauro Carvalho Chehab * * second %s is release 590*bc63427cSMauro Carvalho Chehab * * third %s is version 591*bc63427cSMauro Carvalho Chehab */ 592*bc63427cSMauro Carvalho Chehab char linux_proc_banner[]; 593*bc63427cSMauro Carvalho Chehab expected: 594*bc63427cSMauro Carvalho Chehab - man: | 595*bc63427cSMauro Carvalho Chehab .TH "var linux_proc_banner" 9 "February 2026" "" "Kernel API Manual" 596*bc63427cSMauro Carvalho Chehab .SH NAME 597*bc63427cSMauro Carvalho Chehab linux_proc_banner \- text used from /proc/version file 598*bc63427cSMauro Carvalho Chehab .SH SYNOPSIS 599*bc63427cSMauro Carvalho Chehab char linux_proc_banner[]; 600*bc63427cSMauro Carvalho Chehab .SH "Description" 601*bc63427cSMauro Carvalho Chehab .IP \[bu] 602*bc63427cSMauro Carvalho Chehab first s is sysname (e.g., "Linux") 603*bc63427cSMauro Carvalho Chehab .IP \[bu] 604*bc63427cSMauro Carvalho Chehab second s is release 605*bc63427cSMauro Carvalho Chehab .IP \[bu] 606*bc63427cSMauro Carvalho Chehab third s is version 607*bc63427cSMauro Carvalho Chehab .SH "SEE ALSO" 608*bc63427cSMauro Carvalho Chehab .PP 609*bc63427cSMauro Carvalho Chehab Kernel file \fBmock-vars.c\fR 610*bc63427cSMauro Carvalho Chehab rst: | 611*bc63427cSMauro Carvalho Chehab .. c:macro:: linux_proc_banner 612*bc63427cSMauro Carvalho Chehab 613*bc63427cSMauro Carvalho Chehab ``char linux_proc_banner[];`` 614*bc63427cSMauro Carvalho Chehab 615*bc63427cSMauro Carvalho Chehab text used from /proc/version file 616*bc63427cSMauro Carvalho Chehab 617*bc63427cSMauro Carvalho Chehab **Description** 618*bc63427cSMauro Carvalho Chehab 619*bc63427cSMauro Carvalho Chehab * first ``s`` is sysname (e.g., "Linux") 620*bc63427cSMauro Carvalho Chehab * second ``s`` is release 621*bc63427cSMauro Carvalho Chehab * third ``s`` is version 622*bc63427cSMauro Carvalho Chehab- name: const_char_array 623*bc63427cSMauro Carvalho Chehab description: test a const char array variable 624*bc63427cSMauro Carvalho Chehab fname: mock-vars.c 625*bc63427cSMauro Carvalho Chehab source: | 626*bc63427cSMauro Carvalho Chehab /** 627*bc63427cSMauro Carvalho Chehab * var linux_banner - Linux boot banner, usually printed at boot time 628*bc63427cSMauro Carvalho Chehab */ 629*bc63427cSMauro Carvalho Chehab const char linux_banner[]; 630*bc63427cSMauro Carvalho Chehab expected: 631*bc63427cSMauro Carvalho Chehab - man: | 632*bc63427cSMauro Carvalho Chehab .TH "var linux_banner" 9 "February 2026" "" "Kernel API Manual" 633*bc63427cSMauro Carvalho Chehab .SH NAME 634*bc63427cSMauro Carvalho Chehab linux_banner \- Linux boot banner, usually printed at boot time 635*bc63427cSMauro Carvalho Chehab .SH SYNOPSIS 636*bc63427cSMauro Carvalho Chehab const char linux_banner[]; 637*bc63427cSMauro Carvalho Chehab .SH "SEE ALSO" 638*bc63427cSMauro Carvalho Chehab .PP 639*bc63427cSMauro Carvalho Chehab Kernel file \fBmock-vars.c\fR 640*bc63427cSMauro Carvalho Chehab rst: | 641*bc63427cSMauro Carvalho Chehab .. c:macro:: linux_banner 642*bc63427cSMauro Carvalho Chehab 643*bc63427cSMauro Carvalho Chehab ``const char linux_banner[];`` 644*bc63427cSMauro Carvalho Chehab 645*bc63427cSMauro Carvalho Chehab Linux boot banner, usually printed at boot time 646*bc63427cSMauro Carvalho Chehab- name: static_atomic64_t_var 647*bc63427cSMauro Carvalho Chehab description: test a static atomi64_t variable 648*bc63427cSMauro Carvalho Chehab fname: mock-vars.c 649*bc63427cSMauro Carvalho Chehab source: | 650*bc63427cSMauro Carvalho Chehab /** 651*bc63427cSMauro Carvalho Chehab * var diskseq - unique sequence number for block device instances 652*bc63427cSMauro Carvalho Chehab * 653*bc63427cSMauro Carvalho Chehab * Allows userspace to associate uevents to the lifetime of a device 654*bc63427cSMauro Carvalho Chehab */ 655*bc63427cSMauro Carvalho Chehab static atomic64_t diskseq; 656*bc63427cSMauro Carvalho Chehab expected: 657*bc63427cSMauro Carvalho Chehab - man: | 658*bc63427cSMauro Carvalho Chehab .TH "var diskseq" 9 "February 2026" "" "Kernel API Manual" 659*bc63427cSMauro Carvalho Chehab .SH NAME 660*bc63427cSMauro Carvalho Chehab diskseq \- unique sequence number for block device instances 661*bc63427cSMauro Carvalho Chehab .SH SYNOPSIS 662*bc63427cSMauro Carvalho Chehab static atomic64_t diskseq; 663*bc63427cSMauro Carvalho Chehab .SH "Description" 664*bc63427cSMauro Carvalho Chehab Allows userspace to associate uevents to the lifetime of a device 665*bc63427cSMauro Carvalho Chehab .SH "SEE ALSO" 666*bc63427cSMauro Carvalho Chehab .PP 667*bc63427cSMauro Carvalho Chehab Kernel file \fBmock-vars.c\fR 668*bc63427cSMauro Carvalho Chehab rst: | 669*bc63427cSMauro Carvalho Chehab .. c:macro:: diskseq 670*bc63427cSMauro Carvalho Chehab 671*bc63427cSMauro Carvalho Chehab ``static atomic64_t diskseq;`` 672*bc63427cSMauro Carvalho Chehab 673*bc63427cSMauro Carvalho Chehab unique sequence number for block device instances 674*bc63427cSMauro Carvalho Chehab 675*bc63427cSMauro Carvalho Chehab **Description** 676*bc63427cSMauro Carvalho Chehab 677*bc63427cSMauro Carvalho Chehab Allows userspace to associate uevents to the lifetime of a device 678*bc63427cSMauro Carvalho Chehab- name: unsigned_long_on_init 679*bc63427cSMauro Carvalho Chehab description: test an unsigned long var at "init" with a different timestamp. 680*bc63427cSMauro Carvalho Chehab fname: init/mock-vars.c 681*bc63427cSMauro Carvalho Chehab source: | 682*bc63427cSMauro Carvalho Chehab /** 683*bc63427cSMauro Carvalho Chehab * var rtnl_mutex - historical global lock for networking control operations. 684*bc63427cSMauro Carvalho Chehab * 685*bc63427cSMauro Carvalho Chehab * @rtnl_mutex is used to serialize rtnetlink requests 686*bc63427cSMauro Carvalho Chehab * and protect all kernel internal data structures related to networking. 687*bc63427cSMauro Carvalho Chehab * 688*bc63427cSMauro Carvalho Chehab * See Documentation/networking/netdevices.rst for details. 689*bc63427cSMauro Carvalho Chehab * Often known as the rtnl_lock, although rtnl_lock is a kernel function. 690*bc63427cSMauro Carvalho Chehab */ 691*bc63427cSMauro Carvalho Chehab unsigned long rtnl_mutex; 692*bc63427cSMauro Carvalho Chehab expected: 693*bc63427cSMauro Carvalho Chehab - man: | 694*bc63427cSMauro Carvalho Chehab .TH "var rtnl_mutex" 9 "February 2026" "init" "Kernel API Manual" 695*bc63427cSMauro Carvalho Chehab .SH NAME 696*bc63427cSMauro Carvalho Chehab rtnl_mutex \- historical global lock for networking control operations. 697*bc63427cSMauro Carvalho Chehab .SH SYNOPSIS 698*bc63427cSMauro Carvalho Chehab unsigned long rtnl_mutex; 699*bc63427cSMauro Carvalho Chehab .SH "Description" 700*bc63427cSMauro Carvalho Chehab \fIrtnl_mutex\fP is used to serialize rtnetlink requests 701*bc63427cSMauro Carvalho Chehab and protect all kernel internal data structures related to networking. 702*bc63427cSMauro Carvalho Chehab .PP 703*bc63427cSMauro Carvalho Chehab 704*bc63427cSMauro Carvalho Chehab See Documentation/networking/netdevices.rst for details. 705*bc63427cSMauro Carvalho Chehab Often known as the rtnl_lock, although rtnl_lock is a kernel function. 706*bc63427cSMauro Carvalho Chehab .SH "SEE ALSO" 707*bc63427cSMauro Carvalho Chehab .PP 708*bc63427cSMauro Carvalho Chehab Kernel file \fBinit/mock-vars.c\fR 709*bc63427cSMauro Carvalho Chehab rst: | 710*bc63427cSMauro Carvalho Chehab .. c:macro:: rtnl_mutex 711*bc63427cSMauro Carvalho Chehab 712*bc63427cSMauro Carvalho Chehab ``unsigned long rtnl_mutex;`` 713*bc63427cSMauro Carvalho Chehab 714*bc63427cSMauro Carvalho Chehab historical global lock for networking control operations. 715*bc63427cSMauro Carvalho Chehab 716*bc63427cSMauro Carvalho Chehab **Description** 717*bc63427cSMauro Carvalho Chehab 718*bc63427cSMauro Carvalho Chehab **rtnl_mutex** is used to serialize rtnetlink requests 719*bc63427cSMauro Carvalho Chehab and protect all kernel internal data structures related to networking. 720*bc63427cSMauro Carvalho Chehab 721*bc63427cSMauro Carvalho Chehab See Documentation/networking/netdevices.rst for details. 722*bc63427cSMauro Carvalho Chehab Often known as the rtnl_lock, although rtnl_lock is a kernel function. 723*bc63427cSMauro Carvalho Chehab 724*bc63427cSMauro Carvalho Chehab 725*bc63427cSMauro Carvalho Chehab- name: struct_kcov 726*bc63427cSMauro Carvalho Chehab fname: mock_tests/kdoc-drop-ctx-lock.c 727*bc63427cSMauro Carvalho Chehab source: | 728*bc63427cSMauro Carvalho Chehab /** 729*bc63427cSMauro Carvalho Chehab * struct kcov - kcov descriptor (one per opened debugfs file). 730*bc63427cSMauro Carvalho Chehab * State transitions of the descriptor: 731*bc63427cSMauro Carvalho Chehab * 732*bc63427cSMauro Carvalho Chehab * - initial state after open() 733*bc63427cSMauro Carvalho Chehab * - then there must be a single ioctl(KCOV_INIT_TRACE) call 734*bc63427cSMauro Carvalho Chehab * - then, mmap() call (several calls are allowed but not useful) 735*bc63427cSMauro Carvalho Chehab * - then, ioctl(KCOV_ENABLE, arg), where arg is 736*bc63427cSMauro Carvalho Chehab * KCOV_TRACE_PC - to trace only the PCs 737*bc63427cSMauro Carvalho Chehab * or 738*bc63427cSMauro Carvalho Chehab * KCOV_TRACE_CMP - to trace only the comparison operands 739*bc63427cSMauro Carvalho Chehab * - then, ioctl(KCOV_DISABLE) to disable the task. 740*bc63427cSMauro Carvalho Chehab * 741*bc63427cSMauro Carvalho Chehab * Enabling/disabling ioctls can be repeated (only one task a time allowed). 742*bc63427cSMauro Carvalho Chehab */ 743*bc63427cSMauro Carvalho Chehab struct kcov { 744*bc63427cSMauro Carvalho Chehab /** 745*bc63427cSMauro Carvalho Chehab * @refcount: Reference counter. We keep one for: 746*bc63427cSMauro Carvalho Chehab * - opened file descriptor 747*bc63427cSMauro Carvalho Chehab * - task with enabled coverage (we can't unwire it from another task) 748*bc63427cSMauro Carvalho Chehab * - each code section for remote coverage collection 749*bc63427cSMauro Carvalho Chehab */ 750*bc63427cSMauro Carvalho Chehab refcount_t refcount; 751*bc63427cSMauro Carvalho Chehab /** 752*bc63427cSMauro Carvalho Chehab * @lock: The lock protects mode, size, area and t. 753*bc63427cSMauro Carvalho Chehab */ 754*bc63427cSMauro Carvalho Chehab spinlock_t lock; 755*bc63427cSMauro Carvalho Chehab /** 756*bc63427cSMauro Carvalho Chehab * @mode: the kcov_mode 757*bc63427cSMauro Carvalho Chehab */ 758*bc63427cSMauro Carvalho Chehab enum kcov_mode mode __guarded_by(&lock); 759*bc63427cSMauro Carvalho Chehab /** 760*bc63427cSMauro Carvalho Chehab * @size: Size of arena (in long's). 761*bc63427cSMauro Carvalho Chehab */ 762*bc63427cSMauro Carvalho Chehab unsigned int size __guarded_by(&lock); 763*bc63427cSMauro Carvalho Chehab /** 764*bc63427cSMauro Carvalho Chehab * @area: Coverage buffer shared with user space. 765*bc63427cSMauro Carvalho Chehab */ 766*bc63427cSMauro Carvalho Chehab void *area __guarded_by(&lock); 767*bc63427cSMauro Carvalho Chehab /** 768*bc63427cSMauro Carvalho Chehab * @t: Task for which we collect coverage, or NULL. 769*bc63427cSMauro Carvalho Chehab */ 770*bc63427cSMauro Carvalho Chehab struct task_struct *t __guarded_by(&lock); 771*bc63427cSMauro Carvalho Chehab /** 772*bc63427cSMauro Carvalho Chehab * @remote: Collecting coverage from remote (background) threads. 773*bc63427cSMauro Carvalho Chehab */ 774*bc63427cSMauro Carvalho Chehab bool remote; 775*bc63427cSMauro Carvalho Chehab /** 776*bc63427cSMauro Carvalho Chehab * @remote_size: Size of remote area (in long's). 777*bc63427cSMauro Carvalho Chehab */ 778*bc63427cSMauro Carvalho Chehab unsigned int remote_size; 779*bc63427cSMauro Carvalho Chehab /** 780*bc63427cSMauro Carvalho Chehab * @sequence: Sequence is incremented each time kcov is reenabled, 781*bc63427cSMauro Carvalho Chehab * used by kcov_remote_stop(), see the comment there. 782*bc63427cSMauro Carvalho Chehab */ 783*bc63427cSMauro Carvalho Chehab int sequence; 784*bc63427cSMauro Carvalho Chehab }; 785*bc63427cSMauro Carvalho Chehab expected: 786*bc63427cSMauro Carvalho Chehab - man: | 787*bc63427cSMauro Carvalho Chehab .TH "struct kcov" 9 "February 2026" "mock_tests" "Kernel API Manual" 788*bc63427cSMauro Carvalho Chehab .SH NAME 789*bc63427cSMauro Carvalho Chehab struct kcov \- kcov descriptor (one per opened debugfs file). State transitions of the descriptor: 790*bc63427cSMauro Carvalho Chehab .SH SYNOPSIS 791*bc63427cSMauro Carvalho Chehab struct kcov { 792*bc63427cSMauro Carvalho Chehab .br 793*bc63427cSMauro Carvalho Chehab .BI " refcount_t refcount;" 794*bc63427cSMauro Carvalho Chehab .br 795*bc63427cSMauro Carvalho Chehab .BI " spinlock_t lock;" 796*bc63427cSMauro Carvalho Chehab .br 797*bc63427cSMauro Carvalho Chehab .BI " enum kcov_mode mode;" 798*bc63427cSMauro Carvalho Chehab .br 799*bc63427cSMauro Carvalho Chehab .BI " unsigned int size;" 800*bc63427cSMauro Carvalho Chehab .br 801*bc63427cSMauro Carvalho Chehab .BI " void *area;" 802*bc63427cSMauro Carvalho Chehab .br 803*bc63427cSMauro Carvalho Chehab .BI " struct task_struct *t;" 804*bc63427cSMauro Carvalho Chehab .br 805*bc63427cSMauro Carvalho Chehab .BI " bool remote;" 806*bc63427cSMauro Carvalho Chehab .br 807*bc63427cSMauro Carvalho Chehab .BI " unsigned int remote_size;" 808*bc63427cSMauro Carvalho Chehab .br 809*bc63427cSMauro Carvalho Chehab .BI " int sequence;" 810*bc63427cSMauro Carvalho Chehab .br 811*bc63427cSMauro Carvalho Chehab .BI " 812*bc63427cSMauro Carvalho Chehab }; 813*bc63427cSMauro Carvalho Chehab .br 814*bc63427cSMauro Carvalho Chehab 815*bc63427cSMauro Carvalho Chehab .SH Members 816*bc63427cSMauro Carvalho Chehab .IP "refcount" 12 817*bc63427cSMauro Carvalho Chehab Reference counter. We keep one for: 818*bc63427cSMauro Carvalho Chehab .IP \[bu] 819*bc63427cSMauro Carvalho Chehab opened file descriptor 820*bc63427cSMauro Carvalho Chehab .IP \[bu] 821*bc63427cSMauro Carvalho Chehab task with enabled coverage (we can't unwire it from another task) 822*bc63427cSMauro Carvalho Chehab .IP \[bu] 823*bc63427cSMauro Carvalho Chehab each code section for remote coverage collection 824*bc63427cSMauro Carvalho Chehab .IP "lock" 12 825*bc63427cSMauro Carvalho Chehab The lock protects mode, size, area and t. 826*bc63427cSMauro Carvalho Chehab .IP "mode" 12 827*bc63427cSMauro Carvalho Chehab the kcov_mode 828*bc63427cSMauro Carvalho Chehab .IP "size" 12 829*bc63427cSMauro Carvalho Chehab Size of arena (in long's). 830*bc63427cSMauro Carvalho Chehab .IP "area" 12 831*bc63427cSMauro Carvalho Chehab Coverage buffer shared with user space. 832*bc63427cSMauro Carvalho Chehab .IP "t" 12 833*bc63427cSMauro Carvalho Chehab Task for which we collect coverage, or NULL. 834*bc63427cSMauro Carvalho Chehab .IP "remote" 12 835*bc63427cSMauro Carvalho Chehab Collecting coverage from remote (background) threads. 836*bc63427cSMauro Carvalho Chehab .IP "remote_size" 12 837*bc63427cSMauro Carvalho Chehab Size of remote area (in long's). 838*bc63427cSMauro Carvalho Chehab .IP "sequence" 12 839*bc63427cSMauro Carvalho Chehab Sequence is incremented each time kcov is reenabled, 840*bc63427cSMauro Carvalho Chehab used by \fBkcov_remote_stop\fP, see the comment there. 841*bc63427cSMauro Carvalho Chehab .SH "Description" 842*bc63427cSMauro Carvalho Chehab .IP \[bu] 843*bc63427cSMauro Carvalho Chehab initial state after \fBopen\fP 844*bc63427cSMauro Carvalho Chehab .IP \[bu] 845*bc63427cSMauro Carvalho Chehab then there must be a single ioctl(KCOV_INIT_TRACE) call 846*bc63427cSMauro Carvalho Chehab .IP \[bu] 847*bc63427cSMauro Carvalho Chehab then, \fBmmap\fP call (several calls are allowed but not useful) 848*bc63427cSMauro Carvalho Chehab .IP \[bu] 849*bc63427cSMauro Carvalho Chehab then, ioctl(KCOV_ENABLE, arg), where arg is 850*bc63427cSMauro Carvalho Chehab KCOV_TRACE_PC - to trace only the PCs 851*bc63427cSMauro Carvalho Chehab or 852*bc63427cSMauro Carvalho Chehab KCOV_TRACE_CMP - to trace only the comparison operands 853*bc63427cSMauro Carvalho Chehab .IP \[bu] 854*bc63427cSMauro Carvalho Chehab then, ioctl(KCOV_DISABLE) to disable the task. 855*bc63427cSMauro Carvalho Chehab .PP 856*bc63427cSMauro Carvalho Chehab 857*bc63427cSMauro Carvalho Chehab Enabling/disabling ioctls can be repeated (only one task a time allowed). 858*bc63427cSMauro Carvalho Chehab .SH "SEE ALSO" 859*bc63427cSMauro Carvalho Chehab .PP 860*bc63427cSMauro Carvalho Chehab Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR 861*bc63427cSMauro Carvalho Chehab rst: | 862*bc63427cSMauro Carvalho Chehab .. c:struct:: kcov 863*bc63427cSMauro Carvalho Chehab 864*bc63427cSMauro Carvalho Chehab kcov descriptor (one per opened debugfs file). State transitions of the descriptor: 865*bc63427cSMauro Carvalho Chehab 866*bc63427cSMauro Carvalho Chehab .. container:: kernelindent 867*bc63427cSMauro Carvalho Chehab 868*bc63427cSMauro Carvalho Chehab **Definition**:: 869*bc63427cSMauro Carvalho Chehab 870*bc63427cSMauro Carvalho Chehab struct kcov { 871*bc63427cSMauro Carvalho Chehab refcount_t refcount; 872*bc63427cSMauro Carvalho Chehab spinlock_t lock; 873*bc63427cSMauro Carvalho Chehab enum kcov_mode mode; 874*bc63427cSMauro Carvalho Chehab unsigned int size; 875*bc63427cSMauro Carvalho Chehab void *area; 876*bc63427cSMauro Carvalho Chehab struct task_struct *t; 877*bc63427cSMauro Carvalho Chehab bool remote; 878*bc63427cSMauro Carvalho Chehab unsigned int remote_size; 879*bc63427cSMauro Carvalho Chehab int sequence; 880*bc63427cSMauro Carvalho Chehab }; 881*bc63427cSMauro Carvalho Chehab 882*bc63427cSMauro Carvalho Chehab **Members** 883*bc63427cSMauro Carvalho Chehab 884*bc63427cSMauro Carvalho Chehab ``refcount`` 885*bc63427cSMauro Carvalho Chehab Reference counter. We keep one for: 886*bc63427cSMauro Carvalho Chehab - opened file descriptor 887*bc63427cSMauro Carvalho Chehab - task with enabled coverage (we can't unwire it from another task) 888*bc63427cSMauro Carvalho Chehab - each code section for remote coverage collection 889*bc63427cSMauro Carvalho Chehab 890*bc63427cSMauro Carvalho Chehab ``lock`` 891*bc63427cSMauro Carvalho Chehab The lock protects mode, size, area and t. 892*bc63427cSMauro Carvalho Chehab 893*bc63427cSMauro Carvalho Chehab ``mode`` 894*bc63427cSMauro Carvalho Chehab the kcov_mode 895*bc63427cSMauro Carvalho Chehab 896*bc63427cSMauro Carvalho Chehab ``size`` 897*bc63427cSMauro Carvalho Chehab Size of arena (in long's). 898*bc63427cSMauro Carvalho Chehab 899*bc63427cSMauro Carvalho Chehab ``area`` 900*bc63427cSMauro Carvalho Chehab Coverage buffer shared with user space. 901*bc63427cSMauro Carvalho Chehab 902*bc63427cSMauro Carvalho Chehab ``t`` 903*bc63427cSMauro Carvalho Chehab Task for which we collect coverage, or NULL. 904*bc63427cSMauro Carvalho Chehab 905*bc63427cSMauro Carvalho Chehab ``remote`` 906*bc63427cSMauro Carvalho Chehab Collecting coverage from remote (background) threads. 907*bc63427cSMauro Carvalho Chehab 908*bc63427cSMauro Carvalho Chehab ``remote_size`` 909*bc63427cSMauro Carvalho Chehab Size of remote area (in long's). 910*bc63427cSMauro Carvalho Chehab 911*bc63427cSMauro Carvalho Chehab ``sequence`` 912*bc63427cSMauro Carvalho Chehab Sequence is incremented each time kcov is reenabled, 913*bc63427cSMauro Carvalho Chehab used by kcov_remote_stop(), see the comment there. 914*bc63427cSMauro Carvalho Chehab 915*bc63427cSMauro Carvalho Chehab 916*bc63427cSMauro Carvalho Chehab **Description** 917*bc63427cSMauro Carvalho Chehab 918*bc63427cSMauro Carvalho Chehab - initial state after open() 919*bc63427cSMauro Carvalho Chehab - then there must be a single ioctl(KCOV_INIT_TRACE) call 920*bc63427cSMauro Carvalho Chehab - then, mmap() call (several calls are allowed but not useful) 921*bc63427cSMauro Carvalho Chehab - then, ioctl(KCOV_ENABLE, arg), where arg is 922*bc63427cSMauro Carvalho Chehab KCOV_TRACE_PC - to trace only the PCs 923*bc63427cSMauro Carvalho Chehab or 924*bc63427cSMauro Carvalho Chehab KCOV_TRACE_CMP - to trace only the comparison operands 925*bc63427cSMauro Carvalho Chehab - then, ioctl(KCOV_DISABLE) to disable the task. 926*bc63427cSMauro Carvalho Chehab 927*bc63427cSMauro Carvalho Chehab Enabling/disabling ioctls can be repeated (only one task a time allowed). 928*bc63427cSMauro Carvalho Chehab 929*bc63427cSMauro Carvalho Chehab- name: pool_offset 930*bc63427cSMauro Carvalho Chehab description: mock_tests/kdoc-drop-ctx-lock.c line 83 931*bc63427cSMauro Carvalho Chehab fname: mock_tests/kdoc-drop-ctx-lock.c 932*bc63427cSMauro Carvalho Chehab source: | 933*bc63427cSMauro Carvalho Chehab /** 934*bc63427cSMauro Carvalho Chehab * var pool_offset - Offset to the unused space in the currently used pool. 935*bc63427cSMauro Carvalho Chehab * 936*bc63427cSMauro Carvalho Chehab */ 937*bc63427cSMauro Carvalho Chehab size_t pool_offset __guarded_by(&pool_lock) = DEPOT_POOL_SIZE; 938*bc63427cSMauro Carvalho Chehab expected: 939*bc63427cSMauro Carvalho Chehab - man: | 940*bc63427cSMauro Carvalho Chehab .TH "var pool_offset" 9 "February 2026" "mock_tests" "Kernel API Manual" 941*bc63427cSMauro Carvalho Chehab .SH NAME 942*bc63427cSMauro Carvalho Chehab pool_offset \- Offset to the unused space in the currently used pool. 943*bc63427cSMauro Carvalho Chehab .SH SYNOPSIS 944*bc63427cSMauro Carvalho Chehab size_t pool_offset __guarded_by(&pool_lock) = DEPOT_POOL_SIZE; 945*bc63427cSMauro Carvalho Chehab .SH "Initialization" 946*bc63427cSMauro Carvalho Chehab default: DEPOT_POOL_SIZE 947*bc63427cSMauro Carvalho Chehab .SH "SEE ALSO" 948*bc63427cSMauro Carvalho Chehab .PP 949*bc63427cSMauro Carvalho Chehab Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR 950*bc63427cSMauro Carvalho Chehab rst: | 951*bc63427cSMauro Carvalho Chehab .. c:macro:: pool_offset 952*bc63427cSMauro Carvalho Chehab 953*bc63427cSMauro Carvalho Chehab ``size_t pool_offset __guarded_by(&pool_lock) = DEPOT_POOL_SIZE;`` 954*bc63427cSMauro Carvalho Chehab 955*bc63427cSMauro Carvalho Chehab Offset to the unused space in the currently used pool. 956*bc63427cSMauro Carvalho Chehab 957*bc63427cSMauro Carvalho Chehab **Initialization** 958*bc63427cSMauro Carvalho Chehab 959*bc63427cSMauro Carvalho Chehab default: ``DEPOT_POOL_SIZE`` 960*bc63427cSMauro Carvalho Chehab- name: free_stacks 961*bc63427cSMauro Carvalho Chehab description: mock_tests/kdoc-drop-ctx-lock.c line 88 962*bc63427cSMauro Carvalho Chehab fname: mock_tests/kdoc-drop-ctx-lock.c 963*bc63427cSMauro Carvalho Chehab source: | 964*bc63427cSMauro Carvalho Chehab /** 965*bc63427cSMauro Carvalho Chehab * var free_stacks - Freelist of stack records within stack_pools. 966*bc63427cSMauro Carvalho Chehab * 967*bc63427cSMauro Carvalho Chehab */ 968*bc63427cSMauro Carvalho Chehab __guarded_by(&pool_lock) LIST_HEAD(free_stacks); 969*bc63427cSMauro Carvalho Chehab expected: 970*bc63427cSMauro Carvalho Chehab - man: | 971*bc63427cSMauro Carvalho Chehab .TH "var free_stacks" 9 "February 2026" "mock_tests" "Kernel API Manual" 972*bc63427cSMauro Carvalho Chehab .SH NAME 973*bc63427cSMauro Carvalho Chehab free_stacks \- Freelist of stack records within stack_pools. 974*bc63427cSMauro Carvalho Chehab .SH SYNOPSIS 975*bc63427cSMauro Carvalho Chehab __guarded_by(&pool_lock) LIST_HEAD(free_stacks); 976*bc63427cSMauro Carvalho Chehab .SH "SEE ALSO" 977*bc63427cSMauro Carvalho Chehab .PP 978*bc63427cSMauro Carvalho Chehab Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR 979*bc63427cSMauro Carvalho Chehab rst: | 980*bc63427cSMauro Carvalho Chehab .. c:macro:: free_stacks 981*bc63427cSMauro Carvalho Chehab 982*bc63427cSMauro Carvalho Chehab ``__guarded_by(&pool_lock) LIST_HEAD(free_stacks);`` 983*bc63427cSMauro Carvalho Chehab 984*bc63427cSMauro Carvalho Chehab Freelist of stack records within stack_pools. 985*bc63427cSMauro Carvalho Chehab- name: stack_pools 986*bc63427cSMauro Carvalho Chehab description: mock_tests/kdoc-drop-ctx-lock.c line 94 987*bc63427cSMauro Carvalho Chehab fname: mock_tests/kdoc-drop-ctx-lock.c 988*bc63427cSMauro Carvalho Chehab source: | 989*bc63427cSMauro Carvalho Chehab /** 990*bc63427cSMauro Carvalho Chehab * var stack_pools - Array of memory regions that store stack records. 991*bc63427cSMauro Carvalho Chehab * 992*bc63427cSMauro Carvalho Chehab */ 993*bc63427cSMauro Carvalho Chehab void **stack_pools __pt_guarded_by(&pool_lock); 994*bc63427cSMauro Carvalho Chehab expected: 995*bc63427cSMauro Carvalho Chehab - man: | 996*bc63427cSMauro Carvalho Chehab .TH "var stack_pools" 9 "February 2026" "mock_tests" "Kernel API Manual" 997*bc63427cSMauro Carvalho Chehab .SH NAME 998*bc63427cSMauro Carvalho Chehab stack_pools \- Array of memory regions that store stack records. 999*bc63427cSMauro Carvalho Chehab .SH SYNOPSIS 1000*bc63427cSMauro Carvalho Chehab void **stack_pools __pt_guarded_by(&pool_lock); 1001*bc63427cSMauro Carvalho Chehab .SH "SEE ALSO" 1002*bc63427cSMauro Carvalho Chehab .PP 1003*bc63427cSMauro Carvalho Chehab Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR 1004*bc63427cSMauro Carvalho Chehab rst: | 1005*bc63427cSMauro Carvalho Chehab .. c:macro:: stack_pools 1006*bc63427cSMauro Carvalho Chehab 1007*bc63427cSMauro Carvalho Chehab ``void **stack_pools __pt_guarded_by(&pool_lock);`` 1008*bc63427cSMauro Carvalho Chehab 1009*bc63427cSMauro Carvalho Chehab Array of memory regions that store stack records. 1010*bc63427cSMauro Carvalho Chehab- name: prepare_report_consumer 1011*bc63427cSMauro Carvalho Chehab description: mock_tests/kdoc-drop-ctx-lock.c line 103 1012*bc63427cSMauro Carvalho Chehab fname: mock_tests/kdoc-drop-ctx-lock.c 1013*bc63427cSMauro Carvalho Chehab source: | 1014*bc63427cSMauro Carvalho Chehab /** 1015*bc63427cSMauro Carvalho Chehab * prepare_report_consumer - prepare the report consumer 1016*bc63427cSMauro Carvalho Chehab * @flags: flags 1017*bc63427cSMauro Carvalho Chehab * @ai: not that AI 1018*bc63427cSMauro Carvalho Chehab * @other_info: yes that 1019*bc63427cSMauro Carvalho Chehab */ 1020*bc63427cSMauro Carvalho Chehab bool prepare_report_consumer(unsigned long *flags, 1021*bc63427cSMauro Carvalho Chehab const struct access_info *ai, 1022*bc63427cSMauro Carvalho Chehab struct other_info *other_info) 1023*bc63427cSMauro Carvalho Chehab __cond_acquires(true, &report_lock) 1024*bc63427cSMauro Carvalho Chehab { 1025*bc63427cSMauro Carvalho Chehab expected: 1026*bc63427cSMauro Carvalho Chehab - man: | 1027*bc63427cSMauro Carvalho Chehab .TH "prepare_report_consumer" 9 "February 2026" "mock_tests" "Kernel API Manual" 1028*bc63427cSMauro Carvalho Chehab .SH NAME 1029*bc63427cSMauro Carvalho Chehab prepare_report_consumer \- prepare the report consumer 1030*bc63427cSMauro Carvalho Chehab .SH SYNOPSIS 1031*bc63427cSMauro Carvalho Chehab .B "bool" prepare_report_consumer 1032*bc63427cSMauro Carvalho Chehab .BI "(unsigned long *flags " "," 1033*bc63427cSMauro Carvalho Chehab .BI "const struct access_info *ai " "," 1034*bc63427cSMauro Carvalho Chehab .BI "struct other_info *other_info " ");" 1035*bc63427cSMauro Carvalho Chehab .SH ARGUMENTS 1036*bc63427cSMauro Carvalho Chehab .IP "flags" 12 1037*bc63427cSMauro Carvalho Chehab flags 1038*bc63427cSMauro Carvalho Chehab .IP "ai" 12 1039*bc63427cSMauro Carvalho Chehab not that AI 1040*bc63427cSMauro Carvalho Chehab .IP "other_info" 12 1041*bc63427cSMauro Carvalho Chehab yes that 1042*bc63427cSMauro Carvalho Chehab .SH "SEE ALSO" 1043*bc63427cSMauro Carvalho Chehab .PP 1044*bc63427cSMauro Carvalho Chehab Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR 1045*bc63427cSMauro Carvalho Chehab rst: | 1046*bc63427cSMauro Carvalho Chehab .. c:function:: bool prepare_report_consumer (unsigned long *flags, const struct access_info *ai, struct other_info *other_info) 1047*bc63427cSMauro Carvalho Chehab 1048*bc63427cSMauro Carvalho Chehab prepare the report consumer 1049*bc63427cSMauro Carvalho Chehab 1050*bc63427cSMauro Carvalho Chehab .. container:: kernelindent 1051*bc63427cSMauro Carvalho Chehab 1052*bc63427cSMauro Carvalho Chehab **Parameters** 1053*bc63427cSMauro Carvalho Chehab 1054*bc63427cSMauro Carvalho Chehab ``unsigned long *flags`` 1055*bc63427cSMauro Carvalho Chehab flags 1056*bc63427cSMauro Carvalho Chehab 1057*bc63427cSMauro Carvalho Chehab ``const struct access_info *ai`` 1058*bc63427cSMauro Carvalho Chehab not that AI 1059*bc63427cSMauro Carvalho Chehab 1060*bc63427cSMauro Carvalho Chehab ``struct other_info *other_info`` 1061*bc63427cSMauro Carvalho Chehab yes that 1062*bc63427cSMauro Carvalho Chehab- name: tcp_sigpool_start 1063*bc63427cSMauro Carvalho Chehab description: mock_tests/kdoc-drop-ctx-lock.c line 117 1064*bc63427cSMauro Carvalho Chehab fname: mock_tests/kdoc-drop-ctx-lock.c 1065*bc63427cSMauro Carvalho Chehab source: | 1066*bc63427cSMauro Carvalho Chehab /** 1067*bc63427cSMauro Carvalho Chehab * tcp_sigpool_start - start a tcp message of @id, using @c 1068*bc63427cSMauro Carvalho Chehab * @id: TCP message ID 1069*bc63427cSMauro Carvalho Chehab * @c: the &tcp_sigpool to use 1070*bc63427cSMauro Carvalho Chehab */ 1071*bc63427cSMauro Carvalho Chehab int tcp_sigpool_start(unsigned int id, struct tcp_sigpool *c) __cond_acquires(0, RCU_BH) 1072*bc63427cSMauro Carvalho Chehab { 1073*bc63427cSMauro Carvalho Chehab expected: 1074*bc63427cSMauro Carvalho Chehab - man: | 1075*bc63427cSMauro Carvalho Chehab .TH "tcp_sigpool_start" 9 "February 2026" "mock_tests" "Kernel API Manual" 1076*bc63427cSMauro Carvalho Chehab .SH NAME 1077*bc63427cSMauro Carvalho Chehab tcp_sigpool_start \- start a tcp message of @id, using @c 1078*bc63427cSMauro Carvalho Chehab .SH SYNOPSIS 1079*bc63427cSMauro Carvalho Chehab .B "int" tcp_sigpool_start 1080*bc63427cSMauro Carvalho Chehab .BI "(unsigned int id " "," 1081*bc63427cSMauro Carvalho Chehab .BI "struct tcp_sigpool *c " ");" 1082*bc63427cSMauro Carvalho Chehab .SH ARGUMENTS 1083*bc63427cSMauro Carvalho Chehab .IP "id" 12 1084*bc63427cSMauro Carvalho Chehab TCP message ID 1085*bc63427cSMauro Carvalho Chehab .IP "c" 12 1086*bc63427cSMauro Carvalho Chehab the \fItcp_sigpool\fP to use 1087*bc63427cSMauro Carvalho Chehab .SH "SEE ALSO" 1088*bc63427cSMauro Carvalho Chehab .PP 1089*bc63427cSMauro Carvalho Chehab Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR 1090*bc63427cSMauro Carvalho Chehab rst: | 1091*bc63427cSMauro Carvalho Chehab .. c:function:: int tcp_sigpool_start (unsigned int id, struct tcp_sigpool *c) 1092*bc63427cSMauro Carvalho Chehab 1093*bc63427cSMauro Carvalho Chehab start a tcp message of **id**, using **c** 1094*bc63427cSMauro Carvalho Chehab 1095*bc63427cSMauro Carvalho Chehab .. container:: kernelindent 1096*bc63427cSMauro Carvalho Chehab 1097*bc63427cSMauro Carvalho Chehab **Parameters** 1098*bc63427cSMauro Carvalho Chehab 1099*bc63427cSMauro Carvalho Chehab ``unsigned int id`` 1100*bc63427cSMauro Carvalho Chehab TCP message ID 1101*bc63427cSMauro Carvalho Chehab 1102*bc63427cSMauro Carvalho Chehab ``struct tcp_sigpool *c`` 1103*bc63427cSMauro Carvalho Chehab the :c:type:`tcp_sigpool` to use 1104*bc63427cSMauro Carvalho Chehab- name: undo_report_consumer 1105*bc63427cSMauro Carvalho Chehab description: mock_tests/kdoc-drop-ctx-lock.c line 129 1106*bc63427cSMauro Carvalho Chehab fname: mock_tests/kdoc-drop-ctx-lock.c 1107*bc63427cSMauro Carvalho Chehab source: | 1108*bc63427cSMauro Carvalho Chehab /** 1109*bc63427cSMauro Carvalho Chehab * undo_report_consumer - teardown a report consumer 1110*bc63427cSMauro Carvalho Chehab * @flags: those flags 1111*bc63427cSMauro Carvalho Chehab * @ai: not that AI 1112*bc63427cSMauro Carvalho Chehab * @other_info: yes that 1113*bc63427cSMauro Carvalho Chehab */ 1114*bc63427cSMauro Carvalho Chehab bool undo_report_consumer(unsigned long *flags, 1115*bc63427cSMauro Carvalho Chehab const struct access_info *ai, 1116*bc63427cSMauro Carvalho Chehab struct other_info *other_info) 1117*bc63427cSMauro Carvalho Chehab __cond_releases(true, &report_lock) 1118*bc63427cSMauro Carvalho Chehab { 1119*bc63427cSMauro Carvalho Chehab expected: 1120*bc63427cSMauro Carvalho Chehab - man: | 1121*bc63427cSMauro Carvalho Chehab .TH "undo_report_consumer" 9 "February 2026" "mock_tests" "Kernel API Manual" 1122*bc63427cSMauro Carvalho Chehab .SH NAME 1123*bc63427cSMauro Carvalho Chehab undo_report_consumer \- teardown a report consumer 1124*bc63427cSMauro Carvalho Chehab .SH SYNOPSIS 1125*bc63427cSMauro Carvalho Chehab .B "bool" undo_report_consumer 1126*bc63427cSMauro Carvalho Chehab .BI "(unsigned long *flags " "," 1127*bc63427cSMauro Carvalho Chehab .BI "const struct access_info *ai " "," 1128*bc63427cSMauro Carvalho Chehab .BI "struct other_info *other_info " ");" 1129*bc63427cSMauro Carvalho Chehab .SH ARGUMENTS 1130*bc63427cSMauro Carvalho Chehab .IP "flags" 12 1131*bc63427cSMauro Carvalho Chehab those flags 1132*bc63427cSMauro Carvalho Chehab .IP "ai" 12 1133*bc63427cSMauro Carvalho Chehab not that AI 1134*bc63427cSMauro Carvalho Chehab .IP "other_info" 12 1135*bc63427cSMauro Carvalho Chehab yes that 1136*bc63427cSMauro Carvalho Chehab .SH "SEE ALSO" 1137*bc63427cSMauro Carvalho Chehab .PP 1138*bc63427cSMauro Carvalho Chehab Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR 1139*bc63427cSMauro Carvalho Chehab rst: | 1140*bc63427cSMauro Carvalho Chehab .. c:function:: bool undo_report_consumer (unsigned long *flags, const struct access_info *ai, struct other_info *other_info) 1141*bc63427cSMauro Carvalho Chehab 1142*bc63427cSMauro Carvalho Chehab teardown a report consumer 1143*bc63427cSMauro Carvalho Chehab 1144*bc63427cSMauro Carvalho Chehab .. container:: kernelindent 1145*bc63427cSMauro Carvalho Chehab 1146*bc63427cSMauro Carvalho Chehab **Parameters** 1147*bc63427cSMauro Carvalho Chehab 1148*bc63427cSMauro Carvalho Chehab ``unsigned long *flags`` 1149*bc63427cSMauro Carvalho Chehab those flags 1150*bc63427cSMauro Carvalho Chehab 1151*bc63427cSMauro Carvalho Chehab ``const struct access_info *ai`` 1152*bc63427cSMauro Carvalho Chehab not that AI 1153*bc63427cSMauro Carvalho Chehab 1154*bc63427cSMauro Carvalho Chehab ``struct other_info *other_info`` 1155*bc63427cSMauro Carvalho Chehab yes that 1156*bc63427cSMauro Carvalho Chehab- name: debugfs_enter_cancellation 1157*bc63427cSMauro Carvalho Chehab description: mock_tests/kdoc-drop-ctx-lock.c line 143 1158*bc63427cSMauro Carvalho Chehab fname: mock_tests/kdoc-drop-ctx-lock.c 1159*bc63427cSMauro Carvalho Chehab source: | 1160*bc63427cSMauro Carvalho Chehab /** 1161*bc63427cSMauro Carvalho Chehab * debugfs_enter_cancellation - begin a cancellation operation on @file 1162*bc63427cSMauro Carvalho Chehab * @file: the target file 1163*bc63427cSMauro Carvalho Chehab * @cancellation: the operation to execute 1164*bc63427cSMauro Carvalho Chehab */ 1165*bc63427cSMauro Carvalho Chehab void debugfs_enter_cancellation(struct file *file, 1166*bc63427cSMauro Carvalho Chehab struct debugfs_cancellation *cancellation) __acquires(cancellation) 1167*bc63427cSMauro Carvalho Chehab { } 1168*bc63427cSMauro Carvalho Chehab expected: 1169*bc63427cSMauro Carvalho Chehab - man: | 1170*bc63427cSMauro Carvalho Chehab .TH "debugfs_enter_cancellation" 9 "February 2026" "mock_tests" "Kernel API Manual" 1171*bc63427cSMauro Carvalho Chehab .SH NAME 1172*bc63427cSMauro Carvalho Chehab debugfs_enter_cancellation \- begin a cancellation operation on @file 1173*bc63427cSMauro Carvalho Chehab .SH SYNOPSIS 1174*bc63427cSMauro Carvalho Chehab .B "void" debugfs_enter_cancellation 1175*bc63427cSMauro Carvalho Chehab .BI "(struct file *file " "," 1176*bc63427cSMauro Carvalho Chehab .BI "struct debugfs_cancellation *cancellation " ");" 1177*bc63427cSMauro Carvalho Chehab .SH ARGUMENTS 1178*bc63427cSMauro Carvalho Chehab .IP "file" 12 1179*bc63427cSMauro Carvalho Chehab the target file 1180*bc63427cSMauro Carvalho Chehab .IP "cancellation" 12 1181*bc63427cSMauro Carvalho Chehab the operation to execute 1182*bc63427cSMauro Carvalho Chehab .SH "SEE ALSO" 1183*bc63427cSMauro Carvalho Chehab .PP 1184*bc63427cSMauro Carvalho Chehab Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR 1185*bc63427cSMauro Carvalho Chehab rst: | 1186*bc63427cSMauro Carvalho Chehab .. c:function:: void debugfs_enter_cancellation (struct file *file, struct debugfs_cancellation *cancellation) 1187*bc63427cSMauro Carvalho Chehab 1188*bc63427cSMauro Carvalho Chehab begin a cancellation operation on **file** 1189*bc63427cSMauro Carvalho Chehab 1190*bc63427cSMauro Carvalho Chehab .. container:: kernelindent 1191*bc63427cSMauro Carvalho Chehab 1192*bc63427cSMauro Carvalho Chehab **Parameters** 1193*bc63427cSMauro Carvalho Chehab 1194*bc63427cSMauro Carvalho Chehab ``struct file *file`` 1195*bc63427cSMauro Carvalho Chehab the target file 1196*bc63427cSMauro Carvalho Chehab 1197*bc63427cSMauro Carvalho Chehab ``struct debugfs_cancellation *cancellation`` 1198*bc63427cSMauro Carvalho Chehab the operation to execute 1199*bc63427cSMauro Carvalho Chehab- name: debugfs_leave_cancellation 1200*bc63427cSMauro Carvalho Chehab description: mock_tests/kdoc-drop-ctx-lock.c line 152 1201*bc63427cSMauro Carvalho Chehab fname: mock_tests/kdoc-drop-ctx-lock.c 1202*bc63427cSMauro Carvalho Chehab source: | 1203*bc63427cSMauro Carvalho Chehab /** 1204*bc63427cSMauro Carvalho Chehab * debugfs_leave_cancellation - wrapup the cancellation operation on @file 1205*bc63427cSMauro Carvalho Chehab * @file: the target file 1206*bc63427cSMauro Carvalho Chehab * @cancellation: the operation to wrapup 1207*bc63427cSMauro Carvalho Chehab */ 1208*bc63427cSMauro Carvalho Chehab void debugfs_leave_cancellation(struct file *file, 1209*bc63427cSMauro Carvalho Chehab struct debugfs_cancellation *cancellation) __releases(cancellation) 1210*bc63427cSMauro Carvalho Chehab { } 1211*bc63427cSMauro Carvalho Chehab expected: 1212*bc63427cSMauro Carvalho Chehab - man: | 1213*bc63427cSMauro Carvalho Chehab .TH "debugfs_leave_cancellation" 9 "February 2026" "mock_tests" "Kernel API Manual" 1214*bc63427cSMauro Carvalho Chehab .SH NAME 1215*bc63427cSMauro Carvalho Chehab debugfs_leave_cancellation \- wrapup the cancellation operation on @file 1216*bc63427cSMauro Carvalho Chehab .SH SYNOPSIS 1217*bc63427cSMauro Carvalho Chehab .B "void" debugfs_leave_cancellation 1218*bc63427cSMauro Carvalho Chehab .BI "(struct file *file " "," 1219*bc63427cSMauro Carvalho Chehab .BI "struct debugfs_cancellation *cancellation " ");" 1220*bc63427cSMauro Carvalho Chehab .SH ARGUMENTS 1221*bc63427cSMauro Carvalho Chehab .IP "file" 12 1222*bc63427cSMauro Carvalho Chehab the target file 1223*bc63427cSMauro Carvalho Chehab .IP "cancellation" 12 1224*bc63427cSMauro Carvalho Chehab the operation to wrapup 1225*bc63427cSMauro Carvalho Chehab .SH "SEE ALSO" 1226*bc63427cSMauro Carvalho Chehab .PP 1227*bc63427cSMauro Carvalho Chehab Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR 1228*bc63427cSMauro Carvalho Chehab rst: | 1229*bc63427cSMauro Carvalho Chehab .. c:function:: void debugfs_leave_cancellation (struct file *file, struct debugfs_cancellation *cancellation) 1230*bc63427cSMauro Carvalho Chehab 1231*bc63427cSMauro Carvalho Chehab wrapup the cancellation operation on **file** 1232*bc63427cSMauro Carvalho Chehab 1233*bc63427cSMauro Carvalho Chehab .. container:: kernelindent 1234*bc63427cSMauro Carvalho Chehab 1235*bc63427cSMauro Carvalho Chehab **Parameters** 1236*bc63427cSMauro Carvalho Chehab 1237*bc63427cSMauro Carvalho Chehab ``struct file *file`` 1238*bc63427cSMauro Carvalho Chehab the target file 1239*bc63427cSMauro Carvalho Chehab 1240*bc63427cSMauro Carvalho Chehab ``struct debugfs_cancellation *cancellation`` 1241*bc63427cSMauro Carvalho Chehab the operation to wrapup 1242*bc63427cSMauro Carvalho Chehab- name: acpi_os_acquire_lock 1243*bc63427cSMauro Carvalho Chehab description: mock_tests/kdoc-drop-ctx-lock.c line 161 1244*bc63427cSMauro Carvalho Chehab fname: mock_tests/kdoc-drop-ctx-lock.c 1245*bc63427cSMauro Carvalho Chehab source: | 1246*bc63427cSMauro Carvalho Chehab /** 1247*bc63427cSMauro Carvalho Chehab * acpi_os_acquire_lock - Acquire a spinlock. 1248*bc63427cSMauro Carvalho Chehab * @lockp: pointer to the spinlock_t. 1249*bc63427cSMauro Carvalho Chehab */ 1250*bc63427cSMauro Carvalho Chehab acpi_cpu_flags acpi_os_acquire_lock(acpi_spinlock lockp) 1251*bc63427cSMauro Carvalho Chehab __acquires(lockp) 1252*bc63427cSMauro Carvalho Chehab { 1253*bc63427cSMauro Carvalho Chehab expected: 1254*bc63427cSMauro Carvalho Chehab - man: | 1255*bc63427cSMauro Carvalho Chehab .TH "acpi_os_acquire_lock" 9 "February 2026" "mock_tests" "Kernel API Manual" 1256*bc63427cSMauro Carvalho Chehab .SH NAME 1257*bc63427cSMauro Carvalho Chehab acpi_os_acquire_lock \- Acquire a spinlock. 1258*bc63427cSMauro Carvalho Chehab .SH SYNOPSIS 1259*bc63427cSMauro Carvalho Chehab .B "acpi_cpu_flags" acpi_os_acquire_lock 1260*bc63427cSMauro Carvalho Chehab .BI "(acpi_spinlock lockp " ");" 1261*bc63427cSMauro Carvalho Chehab .SH ARGUMENTS 1262*bc63427cSMauro Carvalho Chehab .IP "lockp" 12 1263*bc63427cSMauro Carvalho Chehab pointer to the spinlock_t. 1264*bc63427cSMauro Carvalho Chehab .SH "SEE ALSO" 1265*bc63427cSMauro Carvalho Chehab .PP 1266*bc63427cSMauro Carvalho Chehab Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR 1267*bc63427cSMauro Carvalho Chehab rst: | 1268*bc63427cSMauro Carvalho Chehab .. c:function:: acpi_cpu_flags acpi_os_acquire_lock (acpi_spinlock lockp) 1269*bc63427cSMauro Carvalho Chehab 1270*bc63427cSMauro Carvalho Chehab Acquire a spinlock. 1271*bc63427cSMauro Carvalho Chehab 1272*bc63427cSMauro Carvalho Chehab .. container:: kernelindent 1273*bc63427cSMauro Carvalho Chehab 1274*bc63427cSMauro Carvalho Chehab **Parameters** 1275*bc63427cSMauro Carvalho Chehab 1276*bc63427cSMauro Carvalho Chehab ``acpi_spinlock lockp`` 1277*bc63427cSMauro Carvalho Chehab pointer to the spinlock_t. 1278*bc63427cSMauro Carvalho Chehab- name: acpi_os_release_lock 1279*bc63427cSMauro Carvalho Chehab description: mock_tests/kdoc-drop-ctx-lock.c line 172 1280*bc63427cSMauro Carvalho Chehab fname: mock_tests/kdoc-drop-ctx-lock.c 1281*bc63427cSMauro Carvalho Chehab source: | 1282*bc63427cSMauro Carvalho Chehab /** 1283*bc63427cSMauro Carvalho Chehab * acpi_os_release_lock - Release a spinlock. 1284*bc63427cSMauro Carvalho Chehab * @lockp: pointer to the spinlock_t. 1285*bc63427cSMauro Carvalho Chehab * @not_used: these flags are not used. 1286*bc63427cSMauro Carvalho Chehab */ 1287*bc63427cSMauro Carvalho Chehab void acpi_os_release_lock(acpi_spinlock lockp, acpi_cpu_flags not_used) 1288*bc63427cSMauro Carvalho Chehab __releases(lockp) 1289*bc63427cSMauro Carvalho Chehab { 1290*bc63427cSMauro Carvalho Chehab expected: 1291*bc63427cSMauro Carvalho Chehab - man: | 1292*bc63427cSMauro Carvalho Chehab .TH "acpi_os_release_lock" 9 "February 2026" "mock_tests" "Kernel API Manual" 1293*bc63427cSMauro Carvalho Chehab .SH NAME 1294*bc63427cSMauro Carvalho Chehab acpi_os_release_lock \- Release a spinlock. 1295*bc63427cSMauro Carvalho Chehab .SH SYNOPSIS 1296*bc63427cSMauro Carvalho Chehab .B "void" acpi_os_release_lock 1297*bc63427cSMauro Carvalho Chehab .BI "(acpi_spinlock lockp " "," 1298*bc63427cSMauro Carvalho Chehab .BI "acpi_cpu_flags not_used " ");" 1299*bc63427cSMauro Carvalho Chehab .SH ARGUMENTS 1300*bc63427cSMauro Carvalho Chehab .IP "lockp" 12 1301*bc63427cSMauro Carvalho Chehab pointer to the spinlock_t. 1302*bc63427cSMauro Carvalho Chehab .IP "not_used" 12 1303*bc63427cSMauro Carvalho Chehab these flags are not used. 1304*bc63427cSMauro Carvalho Chehab .SH "SEE ALSO" 1305*bc63427cSMauro Carvalho Chehab .PP 1306*bc63427cSMauro Carvalho Chehab Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR 1307*bc63427cSMauro Carvalho Chehab rst: | 1308*bc63427cSMauro Carvalho Chehab .. c:function:: void acpi_os_release_lock (acpi_spinlock lockp, acpi_cpu_flags not_used) 1309*bc63427cSMauro Carvalho Chehab 1310*bc63427cSMauro Carvalho Chehab Release a spinlock. 1311*bc63427cSMauro Carvalho Chehab 1312*bc63427cSMauro Carvalho Chehab .. container:: kernelindent 1313*bc63427cSMauro Carvalho Chehab 1314*bc63427cSMauro Carvalho Chehab **Parameters** 1315*bc63427cSMauro Carvalho Chehab 1316*bc63427cSMauro Carvalho Chehab ``acpi_spinlock lockp`` 1317*bc63427cSMauro Carvalho Chehab pointer to the spinlock_t. 1318*bc63427cSMauro Carvalho Chehab 1319*bc63427cSMauro Carvalho Chehab ``acpi_cpu_flags not_used`` 1320*bc63427cSMauro Carvalho Chehab these flags are not used. 1321*bc63427cSMauro Carvalho Chehab- name: tx 1322*bc63427cSMauro Carvalho Chehab description: mock_tests/kdoc-drop-ctx-lock.c line 183 1323*bc63427cSMauro Carvalho Chehab fname: mock_tests/kdoc-drop-ctx-lock.c 1324*bc63427cSMauro Carvalho Chehab source: | 1325*bc63427cSMauro Carvalho Chehab /** 1326*bc63427cSMauro Carvalho Chehab * tx - transmit message ID @id 1327*bc63427cSMauro Carvalho Chehab * @id: message ID to transmit 1328*bc63427cSMauro Carvalho Chehab */ 1329*bc63427cSMauro Carvalho Chehab int tx(int id) __must_hold(&txlock) 1330*bc63427cSMauro Carvalho Chehab { 1331*bc63427cSMauro Carvalho Chehab expected: 1332*bc63427cSMauro Carvalho Chehab - man: | 1333*bc63427cSMauro Carvalho Chehab .TH "tx" 9 "February 2026" "mock_tests" "Kernel API Manual" 1334*bc63427cSMauro Carvalho Chehab .SH NAME 1335*bc63427cSMauro Carvalho Chehab tx \- transmit message ID @id 1336*bc63427cSMauro Carvalho Chehab .SH SYNOPSIS 1337*bc63427cSMauro Carvalho Chehab .B "int" tx 1338*bc63427cSMauro Carvalho Chehab .BI "(int id " ");" 1339*bc63427cSMauro Carvalho Chehab .SH ARGUMENTS 1340*bc63427cSMauro Carvalho Chehab .IP "id" 12 1341*bc63427cSMauro Carvalho Chehab message ID to transmit 1342*bc63427cSMauro Carvalho Chehab .SH "SEE ALSO" 1343*bc63427cSMauro Carvalho Chehab .PP 1344*bc63427cSMauro Carvalho Chehab Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR 1345*bc63427cSMauro Carvalho Chehab rst: | 1346*bc63427cSMauro Carvalho Chehab .. c:function:: int tx (int id) 1347*bc63427cSMauro Carvalho Chehab 1348*bc63427cSMauro Carvalho Chehab transmit message ID **id** 1349*bc63427cSMauro Carvalho Chehab 1350*bc63427cSMauro Carvalho Chehab .. container:: kernelindent 1351*bc63427cSMauro Carvalho Chehab 1352*bc63427cSMauro Carvalho Chehab **Parameters** 1353*bc63427cSMauro Carvalho Chehab 1354*bc63427cSMauro Carvalho Chehab ``int id`` 1355*bc63427cSMauro Carvalho Chehab message ID to transmit 1356*bc63427cSMauro Carvalho Chehab- name: contend_for_bm 1357*bc63427cSMauro Carvalho Chehab description: mock_tests/kdoc-drop-ctx-lock.c line 192 1358*bc63427cSMauro Carvalho Chehab fname: mock_tests/kdoc-drop-ctx-lock.c 1359*bc63427cSMauro Carvalho Chehab source: | 1360*bc63427cSMauro Carvalho Chehab /** 1361*bc63427cSMauro Carvalho Chehab * contend_for_bm - try to become the bus master 1362*bc63427cSMauro Carvalho Chehab * @card: the &fw_card (describes the bus) 1363*bc63427cSMauro Carvalho Chehab */ 1364*bc63427cSMauro Carvalho Chehab enum bm_contention_outcome contend_for_bm(struct fw_card *card) 1365*bc63427cSMauro Carvalho Chehab __must_hold(&card->lock) 1366*bc63427cSMauro Carvalho Chehab { 1367*bc63427cSMauro Carvalho Chehab expected: 1368*bc63427cSMauro Carvalho Chehab - man: | 1369*bc63427cSMauro Carvalho Chehab .TH "contend_for_bm" 9 "February 2026" "mock_tests" "Kernel API Manual" 1370*bc63427cSMauro Carvalho Chehab .SH NAME 1371*bc63427cSMauro Carvalho Chehab contend_for_bm \- try to become the bus master 1372*bc63427cSMauro Carvalho Chehab .SH SYNOPSIS 1373*bc63427cSMauro Carvalho Chehab .B "enum bm_contention_outcome" contend_for_bm 1374*bc63427cSMauro Carvalho Chehab .BI "(struct fw_card *card " ");" 1375*bc63427cSMauro Carvalho Chehab .SH ARGUMENTS 1376*bc63427cSMauro Carvalho Chehab .IP "card" 12 1377*bc63427cSMauro Carvalho Chehab the \fIfw_card\fP (describes the bus) 1378*bc63427cSMauro Carvalho Chehab .SH "SEE ALSO" 1379*bc63427cSMauro Carvalho Chehab .PP 1380*bc63427cSMauro Carvalho Chehab Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR 1381*bc63427cSMauro Carvalho Chehab rst: | 1382*bc63427cSMauro Carvalho Chehab .. c:function:: enum bm_contention_outcome contend_for_bm (struct fw_card *card) 1383*bc63427cSMauro Carvalho Chehab 1384*bc63427cSMauro Carvalho Chehab try to become the bus master 1385*bc63427cSMauro Carvalho Chehab 1386*bc63427cSMauro Carvalho Chehab .. container:: kernelindent 1387*bc63427cSMauro Carvalho Chehab 1388*bc63427cSMauro Carvalho Chehab **Parameters** 1389*bc63427cSMauro Carvalho Chehab 1390*bc63427cSMauro Carvalho Chehab ``struct fw_card *card`` 1391*bc63427cSMauro Carvalho Chehab the :c:type:`fw_card` (describes the bus) 1392*bc63427cSMauro Carvalho Chehab- name: prepare_report_producer 1393*bc63427cSMauro Carvalho Chehab description: mock_tests/kdoc-drop-ctx-lock.c line 202 1394*bc63427cSMauro Carvalho Chehab fname: mock_tests/kdoc-drop-ctx-lock.c 1395*bc63427cSMauro Carvalho Chehab source: | 1396*bc63427cSMauro Carvalho Chehab /** 1397*bc63427cSMauro Carvalho Chehab * prepare_report_producer - prepare the report producer 1398*bc63427cSMauro Carvalho Chehab * @flags: still flags 1399*bc63427cSMauro Carvalho Chehab * @ai: some AI 1400*bc63427cSMauro Carvalho Chehab * @other_info: Populate @other_info; requires that the provided 1401*bc63427cSMauro Carvalho Chehab * @other_info not in use. 1402*bc63427cSMauro Carvalho Chehab */ 1403*bc63427cSMauro Carvalho Chehab void prepare_report_producer(unsigned long *flags, 1404*bc63427cSMauro Carvalho Chehab const struct access_info *ai, 1405*bc63427cSMauro Carvalho Chehab struct other_info *other_info) 1406*bc63427cSMauro Carvalho Chehab __must_not_hold(&report_lock) 1407*bc63427cSMauro Carvalho Chehab { } 1408*bc63427cSMauro Carvalho Chehab expected: 1409*bc63427cSMauro Carvalho Chehab - man: | 1410*bc63427cSMauro Carvalho Chehab .TH "prepare_report_producer" 9 "February 2026" "mock_tests" "Kernel API Manual" 1411*bc63427cSMauro Carvalho Chehab .SH NAME 1412*bc63427cSMauro Carvalho Chehab prepare_report_producer \- prepare the report producer 1413*bc63427cSMauro Carvalho Chehab .SH SYNOPSIS 1414*bc63427cSMauro Carvalho Chehab .B "void" prepare_report_producer 1415*bc63427cSMauro Carvalho Chehab .BI "(unsigned long *flags " "," 1416*bc63427cSMauro Carvalho Chehab .BI "const struct access_info *ai " "," 1417*bc63427cSMauro Carvalho Chehab .BI "struct other_info *other_info " ");" 1418*bc63427cSMauro Carvalho Chehab .SH ARGUMENTS 1419*bc63427cSMauro Carvalho Chehab .IP "flags" 12 1420*bc63427cSMauro Carvalho Chehab still flags 1421*bc63427cSMauro Carvalho Chehab .IP "ai" 12 1422*bc63427cSMauro Carvalho Chehab some AI 1423*bc63427cSMauro Carvalho Chehab .IP "other_info" 12 1424*bc63427cSMauro Carvalho Chehab Populate \fIother_info\fP; requires that the provided 1425*bc63427cSMauro Carvalho Chehab \fIother_info\fP not in use. 1426*bc63427cSMauro Carvalho Chehab .SH "SEE ALSO" 1427*bc63427cSMauro Carvalho Chehab .PP 1428*bc63427cSMauro Carvalho Chehab Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR 1429*bc63427cSMauro Carvalho Chehab rst: | 1430*bc63427cSMauro Carvalho Chehab .. c:function:: void prepare_report_producer (unsigned long *flags, const struct access_info *ai, struct other_info *other_info) 1431*bc63427cSMauro Carvalho Chehab 1432*bc63427cSMauro Carvalho Chehab prepare the report producer 1433*bc63427cSMauro Carvalho Chehab 1434*bc63427cSMauro Carvalho Chehab .. container:: kernelindent 1435*bc63427cSMauro Carvalho Chehab 1436*bc63427cSMauro Carvalho Chehab **Parameters** 1437*bc63427cSMauro Carvalho Chehab 1438*bc63427cSMauro Carvalho Chehab ``unsigned long *flags`` 1439*bc63427cSMauro Carvalho Chehab still flags 1440*bc63427cSMauro Carvalho Chehab 1441*bc63427cSMauro Carvalho Chehab ``const struct access_info *ai`` 1442*bc63427cSMauro Carvalho Chehab some AI 1443*bc63427cSMauro Carvalho Chehab 1444*bc63427cSMauro Carvalho Chehab ``struct other_info *other_info`` 1445*bc63427cSMauro Carvalho Chehab Populate **other_info**; requires that the provided 1446*bc63427cSMauro Carvalho Chehab **other_info** not in use. 1447*bc63427cSMauro Carvalho Chehab- name: crypto_alg_lookup 1448*bc63427cSMauro Carvalho Chehab description: mock_tests/kdoc-drop-ctx-lock.c line 215 1449*bc63427cSMauro Carvalho Chehab fname: mock_tests/kdoc-drop-ctx-lock.c 1450*bc63427cSMauro Carvalho Chehab source: | 1451*bc63427cSMauro Carvalho Chehab /** 1452*bc63427cSMauro Carvalho Chehab * __crypto_alg_lookup() - lookup the algorithm by name/type/mask 1453*bc63427cSMauro Carvalho Chehab * @name: name to search for 1454*bc63427cSMauro Carvalho Chehab * @type: type to search for 1455*bc63427cSMauro Carvalho Chehab * @mask: mask to match 1456*bc63427cSMauro Carvalho Chehab */ 1457*bc63427cSMauro Carvalho Chehab struct crypto_alg *__crypto_alg_lookup(const char *name, u32 type, 1458*bc63427cSMauro Carvalho Chehab u32 mask) 1459*bc63427cSMauro Carvalho Chehab __must_hold_shared(&crypto_alg_sem) 1460*bc63427cSMauro Carvalho Chehab { 1461*bc63427cSMauro Carvalho Chehab expected: 1462*bc63427cSMauro Carvalho Chehab - man: | 1463*bc63427cSMauro Carvalho Chehab .TH "__crypto_alg_lookup" 9 "February 2026" "mock_tests" "Kernel API Manual" 1464*bc63427cSMauro Carvalho Chehab .SH NAME 1465*bc63427cSMauro Carvalho Chehab __crypto_alg_lookup \- lookup the algorithm by name/type/mask 1466*bc63427cSMauro Carvalho Chehab .SH SYNOPSIS 1467*bc63427cSMauro Carvalho Chehab .B "struct crypto_alg *" __crypto_alg_lookup 1468*bc63427cSMauro Carvalho Chehab .BI "(const char *name " "," 1469*bc63427cSMauro Carvalho Chehab .BI "u32 type " "," 1470*bc63427cSMauro Carvalho Chehab .BI "u32 mask " ");" 1471*bc63427cSMauro Carvalho Chehab .SH ARGUMENTS 1472*bc63427cSMauro Carvalho Chehab .IP "name" 12 1473*bc63427cSMauro Carvalho Chehab name to search for 1474*bc63427cSMauro Carvalho Chehab .IP "type" 12 1475*bc63427cSMauro Carvalho Chehab type to search for 1476*bc63427cSMauro Carvalho Chehab .IP "mask" 12 1477*bc63427cSMauro Carvalho Chehab mask to match 1478*bc63427cSMauro Carvalho Chehab .SH "SEE ALSO" 1479*bc63427cSMauro Carvalho Chehab .PP 1480*bc63427cSMauro Carvalho Chehab Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR 1481*bc63427cSMauro Carvalho Chehab rst: | 1482*bc63427cSMauro Carvalho Chehab .. c:function:: struct crypto_alg * __crypto_alg_lookup (const char *name, u32 type, u32 mask) 1483*bc63427cSMauro Carvalho Chehab 1484*bc63427cSMauro Carvalho Chehab lookup the algorithm by name/type/mask 1485*bc63427cSMauro Carvalho Chehab 1486*bc63427cSMauro Carvalho Chehab .. container:: kernelindent 1487*bc63427cSMauro Carvalho Chehab 1488*bc63427cSMauro Carvalho Chehab **Parameters** 1489*bc63427cSMauro Carvalho Chehab 1490*bc63427cSMauro Carvalho Chehab ``const char *name`` 1491*bc63427cSMauro Carvalho Chehab name to search for 1492*bc63427cSMauro Carvalho Chehab 1493*bc63427cSMauro Carvalho Chehab ``u32 type`` 1494*bc63427cSMauro Carvalho Chehab type to search for 1495*bc63427cSMauro Carvalho Chehab 1496*bc63427cSMauro Carvalho Chehab ``u32 mask`` 1497*bc63427cSMauro Carvalho Chehab mask to match 1498*bc63427cSMauro Carvalho Chehab- name: down_read_trylock 1499*bc63427cSMauro Carvalho Chehab description: mock_tests/kdoc-drop-ctx-lock.c line 228 1500*bc63427cSMauro Carvalho Chehab fname: mock_tests/kdoc-drop-ctx-lock.c 1501*bc63427cSMauro Carvalho Chehab source: | 1502*bc63427cSMauro Carvalho Chehab /** 1503*bc63427cSMauro Carvalho Chehab * down_read_trylock - trylock for reading 1504*bc63427cSMauro Carvalho Chehab * @sem: the semaphore to try to lock 1505*bc63427cSMauro Carvalho Chehab * 1506*bc63427cSMauro Carvalho Chehab * Returns: 1 if successful, 0 if contention 1507*bc63427cSMauro Carvalho Chehab */ 1508*bc63427cSMauro Carvalho Chehab extern int down_read_trylock(struct rw_semaphore *sem) __cond_acquires_shared(true, sem); 1509*bc63427cSMauro Carvalho Chehab expected: 1510*bc63427cSMauro Carvalho Chehab - man: | 1511*bc63427cSMauro Carvalho Chehab .TH "down_read_trylock" 9 "February 2026" "mock_tests" "Kernel API Manual" 1512*bc63427cSMauro Carvalho Chehab .SH NAME 1513*bc63427cSMauro Carvalho Chehab down_read_trylock \- trylock for reading 1514*bc63427cSMauro Carvalho Chehab .SH SYNOPSIS 1515*bc63427cSMauro Carvalho Chehab .B "int" down_read_trylock 1516*bc63427cSMauro Carvalho Chehab .BI "(struct rw_semaphore *sem " ");" 1517*bc63427cSMauro Carvalho Chehab .SH ARGUMENTS 1518*bc63427cSMauro Carvalho Chehab .IP "sem" 12 1519*bc63427cSMauro Carvalho Chehab the semaphore to try to lock 1520*bc63427cSMauro Carvalho Chehab .SH "RETURN" 1521*bc63427cSMauro Carvalho Chehab 1 if successful, 0 if contention 1522*bc63427cSMauro Carvalho Chehab .SH "SEE ALSO" 1523*bc63427cSMauro Carvalho Chehab .PP 1524*bc63427cSMauro Carvalho Chehab Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR 1525*bc63427cSMauro Carvalho Chehab rst: | 1526*bc63427cSMauro Carvalho Chehab .. c:function:: int down_read_trylock (struct rw_semaphore *sem) 1527*bc63427cSMauro Carvalho Chehab 1528*bc63427cSMauro Carvalho Chehab trylock for reading 1529*bc63427cSMauro Carvalho Chehab 1530*bc63427cSMauro Carvalho Chehab .. container:: kernelindent 1531*bc63427cSMauro Carvalho Chehab 1532*bc63427cSMauro Carvalho Chehab **Parameters** 1533*bc63427cSMauro Carvalho Chehab 1534*bc63427cSMauro Carvalho Chehab ``struct rw_semaphore *sem`` 1535*bc63427cSMauro Carvalho Chehab the semaphore to try to lock 1536*bc63427cSMauro Carvalho Chehab 1537*bc63427cSMauro Carvalho Chehab **Return** 1538*bc63427cSMauro Carvalho Chehab 1539*bc63427cSMauro Carvalho Chehab 1 if successful, 0 if contention 1540*bc63427cSMauro Carvalho Chehab- name: tomoyo_read_lock 1541*bc63427cSMauro Carvalho Chehab description: mock_tests/kdoc-drop-ctx-lock.c line 236 1542*bc63427cSMauro Carvalho Chehab fname: mock_tests/kdoc-drop-ctx-lock.c 1543*bc63427cSMauro Carvalho Chehab source: | 1544*bc63427cSMauro Carvalho Chehab /** 1545*bc63427cSMauro Carvalho Chehab * tomoyo_read_lock - Take lock for protecting policy. 1546*bc63427cSMauro Carvalho Chehab * 1547*bc63427cSMauro Carvalho Chehab * Returns: index number for tomoyo_read_unlock(). 1548*bc63427cSMauro Carvalho Chehab */ 1549*bc63427cSMauro Carvalho Chehab int tomoyo_read_lock(void) 1550*bc63427cSMauro Carvalho Chehab __acquires_shared(&tomoyo_ss) 1551*bc63427cSMauro Carvalho Chehab { 1552*bc63427cSMauro Carvalho Chehab expected: 1553*bc63427cSMauro Carvalho Chehab - man: | 1554*bc63427cSMauro Carvalho Chehab .TH "tomoyo_read_lock" 9 "February 2026" "mock_tests" "Kernel API Manual" 1555*bc63427cSMauro Carvalho Chehab .SH NAME 1556*bc63427cSMauro Carvalho Chehab tomoyo_read_lock \- Take lock for protecting policy. 1557*bc63427cSMauro Carvalho Chehab .SH SYNOPSIS 1558*bc63427cSMauro Carvalho Chehab .B "int" tomoyo_read_lock 1559*bc63427cSMauro Carvalho Chehab .BI "(void " ");" 1560*bc63427cSMauro Carvalho Chehab .SH ARGUMENTS 1561*bc63427cSMauro Carvalho Chehab .IP "void" 12 1562*bc63427cSMauro Carvalho Chehab no arguments 1563*bc63427cSMauro Carvalho Chehab .SH "RETURN" 1564*bc63427cSMauro Carvalho Chehab index number for \fBtomoyo_read_unlock\fP. 1565*bc63427cSMauro Carvalho Chehab .SH "SEE ALSO" 1566*bc63427cSMauro Carvalho Chehab .PP 1567*bc63427cSMauro Carvalho Chehab Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR 1568*bc63427cSMauro Carvalho Chehab rst: | 1569*bc63427cSMauro Carvalho Chehab .. c:function:: int tomoyo_read_lock (void) 1570*bc63427cSMauro Carvalho Chehab 1571*bc63427cSMauro Carvalho Chehab Take lock for protecting policy. 1572*bc63427cSMauro Carvalho Chehab 1573*bc63427cSMauro Carvalho Chehab .. container:: kernelindent 1574*bc63427cSMauro Carvalho Chehab 1575*bc63427cSMauro Carvalho Chehab **Parameters** 1576*bc63427cSMauro Carvalho Chehab 1577*bc63427cSMauro Carvalho Chehab ``void`` 1578*bc63427cSMauro Carvalho Chehab no arguments 1579*bc63427cSMauro Carvalho Chehab 1580*bc63427cSMauro Carvalho Chehab **Return** 1581*bc63427cSMauro Carvalho Chehab 1582*bc63427cSMauro Carvalho Chehab index number for tomoyo_read_unlock(). 1583*bc63427cSMauro Carvalho Chehab- name: tomoyo_read_unlock 1584*bc63427cSMauro Carvalho Chehab description: mock_tests/kdoc-drop-ctx-lock.c line 247 1585*bc63427cSMauro Carvalho Chehab fname: mock_tests/kdoc-drop-ctx-lock.c 1586*bc63427cSMauro Carvalho Chehab source: | 1587*bc63427cSMauro Carvalho Chehab /** 1588*bc63427cSMauro Carvalho Chehab * tomoyo_read_unlock - Release lock for protecting policy. 1589*bc63427cSMauro Carvalho Chehab * 1590*bc63427cSMauro Carvalho Chehab * @idx: Index number returned by tomoyo_read_lock(). 1591*bc63427cSMauro Carvalho Chehab */ 1592*bc63427cSMauro Carvalho Chehab void tomoyo_read_unlock(int idx) 1593*bc63427cSMauro Carvalho Chehab __releases_shared(&tomoyo_ss) 1594*bc63427cSMauro Carvalho Chehab { } 1595*bc63427cSMauro Carvalho Chehab expected: 1596*bc63427cSMauro Carvalho Chehab - man: | 1597*bc63427cSMauro Carvalho Chehab .TH "tomoyo_read_unlock" 9 "February 2026" "mock_tests" "Kernel API Manual" 1598*bc63427cSMauro Carvalho Chehab .SH NAME 1599*bc63427cSMauro Carvalho Chehab tomoyo_read_unlock \- Release lock for protecting policy. 1600*bc63427cSMauro Carvalho Chehab .SH SYNOPSIS 1601*bc63427cSMauro Carvalho Chehab .B "void" tomoyo_read_unlock 1602*bc63427cSMauro Carvalho Chehab .BI "(int idx " ");" 1603*bc63427cSMauro Carvalho Chehab .SH ARGUMENTS 1604*bc63427cSMauro Carvalho Chehab .IP "idx" 12 1605*bc63427cSMauro Carvalho Chehab Index number returned by \fBtomoyo_read_lock\fP. 1606*bc63427cSMauro Carvalho Chehab .SH "SEE ALSO" 1607*bc63427cSMauro Carvalho Chehab .PP 1608*bc63427cSMauro Carvalho Chehab Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR 1609*bc63427cSMauro Carvalho Chehab rst: | 1610*bc63427cSMauro Carvalho Chehab .. c:function:: void tomoyo_read_unlock (int idx) 1611*bc63427cSMauro Carvalho Chehab 1612*bc63427cSMauro Carvalho Chehab Release lock for protecting policy. 1613*bc63427cSMauro Carvalho Chehab 1614*bc63427cSMauro Carvalho Chehab .. container:: kernelindent 1615*bc63427cSMauro Carvalho Chehab 1616*bc63427cSMauro Carvalho Chehab **Parameters** 1617*bc63427cSMauro Carvalho Chehab 1618*bc63427cSMauro Carvalho Chehab ``int idx`` 1619*bc63427cSMauro Carvalho Chehab Index number returned by tomoyo_read_lock(). 1620*bc63427cSMauro Carvalho Chehab- name: c_stop 1621*bc63427cSMauro Carvalho Chehab description: mock_tests/kdoc-drop-ctx-lock.c line 256 1622*bc63427cSMauro Carvalho Chehab fname: mock_tests/kdoc-drop-ctx-lock.c 1623*bc63427cSMauro Carvalho Chehab source: | 1624*bc63427cSMauro Carvalho Chehab /** 1625*bc63427cSMauro Carvalho Chehab * c_stop - stop the seq_file iteration 1626*bc63427cSMauro Carvalho Chehab * @m: the &struct seq_file 1627*bc63427cSMauro Carvalho Chehab * @p: handle 1628*bc63427cSMauro Carvalho Chehab */ 1629*bc63427cSMauro Carvalho Chehab void c_stop(struct seq_file *m, void *p) 1630*bc63427cSMauro Carvalho Chehab __releases_shared(&crypto_alg_sem) 1631*bc63427cSMauro Carvalho Chehab { } 1632*bc63427cSMauro Carvalho Chehab expected: 1633*bc63427cSMauro Carvalho Chehab - man: | 1634*bc63427cSMauro Carvalho Chehab .TH "c_stop" 9 "February 2026" "mock_tests" "Kernel API Manual" 1635*bc63427cSMauro Carvalho Chehab .SH NAME 1636*bc63427cSMauro Carvalho Chehab c_stop \- stop the seq_file iteration 1637*bc63427cSMauro Carvalho Chehab .SH SYNOPSIS 1638*bc63427cSMauro Carvalho Chehab .B "void" c_stop 1639*bc63427cSMauro Carvalho Chehab .BI "(struct seq_file *m " "," 1640*bc63427cSMauro Carvalho Chehab .BI "void *p " ");" 1641*bc63427cSMauro Carvalho Chehab .SH ARGUMENTS 1642*bc63427cSMauro Carvalho Chehab .IP "m" 12 1643*bc63427cSMauro Carvalho Chehab the \fIstruct seq_file\fP 1644*bc63427cSMauro Carvalho Chehab .IP "p" 12 1645*bc63427cSMauro Carvalho Chehab handle 1646*bc63427cSMauro Carvalho Chehab .SH "SEE ALSO" 1647*bc63427cSMauro Carvalho Chehab .PP 1648*bc63427cSMauro Carvalho Chehab Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR 1649*bc63427cSMauro Carvalho Chehab rst: | 1650*bc63427cSMauro Carvalho Chehab .. c:function:: void c_stop (struct seq_file *m, void *p) 1651*bc63427cSMauro Carvalho Chehab 1652*bc63427cSMauro Carvalho Chehab stop the seq_file iteration 1653*bc63427cSMauro Carvalho Chehab 1654*bc63427cSMauro Carvalho Chehab .. container:: kernelindent 1655*bc63427cSMauro Carvalho Chehab 1656*bc63427cSMauro Carvalho Chehab **Parameters** 1657*bc63427cSMauro Carvalho Chehab 1658*bc63427cSMauro Carvalho Chehab ``struct seq_file *m`` 1659*bc63427cSMauro Carvalho Chehab the :c:type:`struct seq_file <seq_file>` 1660*bc63427cSMauro Carvalho Chehab 1661*bc63427cSMauro Carvalho Chehab ``void *p`` 1662*bc63427cSMauro Carvalho Chehab handle 1663*bc63427cSMauro Carvalho Chehab- name: spin_lock 1664*bc63427cSMauro Carvalho Chehab description: mock_tests/kdoc-drop-ctx-lock.c line 265 1665*bc63427cSMauro Carvalho Chehab fname: mock_tests/kdoc-drop-ctx-lock.c 1666*bc63427cSMauro Carvalho Chehab source: | 1667*bc63427cSMauro Carvalho Chehab /** 1668*bc63427cSMauro Carvalho Chehab * spin_lock - spin until the @lock is acquired 1669*bc63427cSMauro Carvalho Chehab * @lock: the spinlock 1670*bc63427cSMauro Carvalho Chehab */ 1671*bc63427cSMauro Carvalho Chehab void spin_lock(spinlock_t *lock) 1672*bc63427cSMauro Carvalho Chehab __acquires(lock) __no_context_analysis 1673*bc63427cSMauro Carvalho Chehab { } 1674*bc63427cSMauro Carvalho Chehab expected: 1675*bc63427cSMauro Carvalho Chehab - man: | 1676*bc63427cSMauro Carvalho Chehab .TH "spin_lock" 9 "February 2026" "mock_tests" "Kernel API Manual" 1677*bc63427cSMauro Carvalho Chehab .SH NAME 1678*bc63427cSMauro Carvalho Chehab spin_lock \- spin until the @lock is acquired 1679*bc63427cSMauro Carvalho Chehab .SH SYNOPSIS 1680*bc63427cSMauro Carvalho Chehab .B "void" spin_lock 1681*bc63427cSMauro Carvalho Chehab .BI "(spinlock_t *lock " ");" 1682*bc63427cSMauro Carvalho Chehab .SH ARGUMENTS 1683*bc63427cSMauro Carvalho Chehab .IP "lock" 12 1684*bc63427cSMauro Carvalho Chehab the spinlock 1685*bc63427cSMauro Carvalho Chehab .SH "SEE ALSO" 1686*bc63427cSMauro Carvalho Chehab .PP 1687*bc63427cSMauro Carvalho Chehab Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR 1688*bc63427cSMauro Carvalho Chehab rst: | 1689*bc63427cSMauro Carvalho Chehab .. c:function:: void spin_lock (spinlock_t *lock) 1690*bc63427cSMauro Carvalho Chehab 1691*bc63427cSMauro Carvalho Chehab spin until the **lock** is acquired 1692*bc63427cSMauro Carvalho Chehab 1693*bc63427cSMauro Carvalho Chehab .. container:: kernelindent 1694*bc63427cSMauro Carvalho Chehab 1695*bc63427cSMauro Carvalho Chehab **Parameters** 1696*bc63427cSMauro Carvalho Chehab 1697*bc63427cSMauro Carvalho Chehab ``spinlock_t *lock`` 1698*bc63427cSMauro Carvalho Chehab the spinlock 1699