xref: /linux/tools/unittests/kdoc-test.yaml (revision 5181afcdf99527dd92a88f80fc4d0d8013e1b510)
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