mirror of
https://github.com/torvalds/linux.git
synced 2026-05-12 16:18:45 +02:00
Add extra tests to check if the new "var" type is properly handled and to cover mutex context annotations. Co-developed-by: Randy Dunlap <rdunlap@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> Signed-off-by: Jonathan Corbet <corbet@lwn.net> Message-ID: <75af93a45151b630c94b7f77637d173e6119fd41.1774256269.git.mchehab+huawei@kernel.org>
1699 lines
51 KiB
YAML
1699 lines
51 KiB
YAML
# SPDX-License-Identifier: GPL-2.0
|
|
# Copyright (c) 2026: Mauro Carvalho Chehab <mchehab@kernel.org>
|
|
|
|
# Test cases for the dynamic tests.
|
|
# Useful to test if kernel-doc classes are doing what it is expected.
|
|
#
|
|
|
|
tests:
|
|
- name: func1
|
|
fname: mock_functions.c
|
|
description: "Simplest function test: do nothing, just rst output"
|
|
|
|
source: |
|
|
/**
|
|
* func1 - Not exported function
|
|
* @arg1: @arg1 does nothing
|
|
*
|
|
* Does nothing
|
|
*
|
|
* return:
|
|
* always return 0.
|
|
*/
|
|
int func1(char *arg1) { return 0; };
|
|
|
|
expected:
|
|
- rst: |
|
|
.. c:function:: int func1 (char *arg1)
|
|
|
|
Not exported function
|
|
|
|
.. container:: kernelindent
|
|
|
|
**Parameters**
|
|
|
|
``char *arg1``
|
|
**arg1** does nothing
|
|
|
|
**Description**
|
|
|
|
Does nothing
|
|
|
|
**Return**
|
|
|
|
always return 0.
|
|
|
|
# TODO: how to handle timestamps at .TH?
|
|
man: |
|
|
.TH "func1" 9 "February 2026" "" "Kernel API Manual"
|
|
.SH NAME
|
|
func1 \- Not exported function
|
|
.SH SYNOPSIS
|
|
.B "int" func1
|
|
.BI "(char *arg1 " ");"
|
|
.SH ARGUMENTS
|
|
.IP "arg1" 12
|
|
\fIarg1\fP does nothing
|
|
.SH "DESCRIPTION"
|
|
Does nothing
|
|
.SH "RETURN"
|
|
always return 0.
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
Kernel file \fBmock_functions.c\fR
|
|
|
|
- name: func2
|
|
fname: func2.c
|
|
description: Simple test with exports
|
|
|
|
source: |
|
|
/**
|
|
* func2() - Exported function
|
|
* @arg1: @arg1 does nothing
|
|
*
|
|
* Does nothing
|
|
*
|
|
* return:
|
|
* always return 0.
|
|
*/
|
|
int func2(char *arg1) { return 0; };
|
|
EXPORT_SYMBOL(func2);
|
|
|
|
exports: func2
|
|
expected:
|
|
- kdoc_item:
|
|
name: func2
|
|
type: function
|
|
declaration_start_line: 1
|
|
|
|
sections:
|
|
Description: |
|
|
Does nothing
|
|
|
|
Return: |
|
|
always return 0.
|
|
|
|
sections_start_lines:
|
|
Description: 3
|
|
Return: 6
|
|
|
|
parameterdescs:
|
|
arg1: |
|
|
@arg1 does nothing
|
|
parameterlist:
|
|
- arg1
|
|
parameterdesc_start_lines:
|
|
arg1: 2
|
|
parametertypes:
|
|
arg1: char *arg1
|
|
|
|
other_stuff:
|
|
func_macro: false
|
|
functiontype: int
|
|
purpose: "Exported function"
|
|
typedef: false
|
|
|
|
rst: |
|
|
.. c:function:: int func2 (char *arg1)
|
|
|
|
Exported function
|
|
|
|
.. container:: kernelindent
|
|
|
|
**Parameters**
|
|
|
|
``char *arg1``
|
|
**arg1** does nothing
|
|
|
|
**Description**
|
|
|
|
Does nothing
|
|
|
|
**Return**
|
|
|
|
always return 0.
|
|
|
|
man: |
|
|
.TH "func2" 9 "February 2026" "" "Kernel API Manual"
|
|
.SH NAME
|
|
func2 \- Exported function
|
|
.SH SYNOPSIS
|
|
.B "int" func2
|
|
.BI "(char *arg1 " ");"
|
|
.SH ARGUMENTS
|
|
.IP "arg1" 12
|
|
\fIarg1\fP does nothing
|
|
.SH "DESCRIPTION"
|
|
Does nothing
|
|
.SH "RETURN"
|
|
always return 0.
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
Kernel file \fBfunc2.c\fR
|
|
|
|
- name: doc_with_complex_table
|
|
description: Test if complex tables are handled
|
|
fname: mock.c
|
|
source: |
|
|
/**
|
|
* DOC: Supported input formats and encodings
|
|
*
|
|
* Depending on the Hardware configuration of the Controller IP, it supports
|
|
* a subset of the following input formats and encodings on its internal
|
|
* 48bit bus.
|
|
*
|
|
* +----------------------+----------------------------------+------------------------------+
|
|
* | Format Name | Format Code | Encodings |
|
|
* +======================+==================================+==============================+
|
|
* | RGB 4:4:4 8bit | ``MEDIA_BUS_FMT_RGB888_1X24`` | ``V4L2_YCBCR_ENC_DEFAULT`` |
|
|
* +----------------------+----------------------------------+------------------------------+
|
|
* | RGB 4:4:4 10bits | ``MEDIA_BUS_FMT_RGB101010_1X30`` | ``V4L2_YCBCR_ENC_DEFAULT`` |
|
|
* +----------------------+----------------------------------+------------------------------+
|
|
*/
|
|
expected:
|
|
- man: |
|
|
.TH "Supported input formats and encodings" 9 "March 2026" "" "Kernel API Manual"
|
|
.SH "Supported input formats and encodings"
|
|
Depending on the Hardware configuration of the Controller IP, it supports
|
|
a subset of the following input formats and encodings on its internal
|
|
48bit bus.
|
|
.PP
|
|
|
|
|
|
.TS
|
|
box;
|
|
l l l.
|
|
\fBFormat Name\fP \fBFormat Code\fP \fBEncodings\fP
|
|
_
|
|
RGB 4:4:4 8bit ``MEDIA_BUS_FMT_RGB888_1X24 V4L2_YCBCR_ENC_DEFAULT
|
|
RGB 4:4:4 10bits MEDIA_BUS_FMT_RGB101010_1X30 V4L2_YCBCR_ENC_DEFAULT``
|
|
.TE
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
Kernel file \fBmock.c\fR
|
|
|
|
rst: |-
|
|
.. _Supported input formats and encodings:
|
|
**Supported input formats and encodings**
|
|
Depending on the Hardware configuration of the Controller IP, it supports
|
|
a subset of the following input formats and encodings on its internal
|
|
48bit bus.
|
|
+----------------------+----------------------------------+------------------------------+
|
|
| Format Name | Format Code | Encodings |
|
|
+======================+==================================+==============================+
|
|
| RGB 4:4:4 8bit | ``MEDIA_BUS_FMT_RGB888_1X24`` | ``V4L2_YCBCR_ENC_DEFAULT`` |
|
|
+----------------------+----------------------------------+------------------------------+
|
|
| RGB 4:4:4 10bits | ``MEDIA_BUS_FMT_RGB101010_1X30`` | ``V4L2_YCBCR_ENC_DEFAULT`` |
|
|
+----------------------+----------------------------------+------------------------------+
|
|
- name: func_with_ascii_artwork
|
|
description: Test if ascii artwork is properly output
|
|
fname: mock.c
|
|
source: |
|
|
/**
|
|
* add_cxl_resources() - reflect CXL fixed memory windows in iomem_resource
|
|
* @cxl_res: A standalone resource tree where each CXL window is a sibling
|
|
*
|
|
* Walk each CXL window in @cxl_res and add it to iomem_resource potentially
|
|
* expanding its boundaries to ensure that any conflicting resources become
|
|
* children. If a window is expanded it may then conflict with a another window
|
|
* entry and require the window to be truncated or trimmed. Consider this
|
|
* situation::
|
|
*
|
|
* |-- "CXL Window 0" --||----- "CXL Window 1" -----|
|
|
* |--------------- "System RAM" -------------|
|
|
*
|
|
* ...where platform firmware has established as System RAM resource across 2
|
|
* windows, but has left some portion of window 1 for dynamic CXL region
|
|
* provisioning. In this case "Window 0" will span the entirety of the "System
|
|
* RAM" span, and "CXL Window 1" is truncated to the remaining tail past the end
|
|
* of that "System RAM" resource.
|
|
*/
|
|
static int add_cxl_resources(struct resource *cxl_res);
|
|
expected:
|
|
- man: |-
|
|
.TH "add_cxl_resources" 9 "March 2026" "" "Kernel API Manual"
|
|
.SH NAME
|
|
add_cxl_resources \- reflect CXL fixed memory windows in iomem_resource
|
|
.SH SYNOPSIS
|
|
.B "int" add_cxl_resources
|
|
.BI "(struct resource *cxl_res " ");"
|
|
.SH ARGUMENTS
|
|
.IP "cxl_res" 12
|
|
A standalone resource tree where each CXL window is a sibling
|
|
.SH "DESCRIPTION"
|
|
Walk each CXL window in \fIcxl_res\fP and add it to iomem_resource potentially
|
|
expanding its boundaries to ensure that any conflicting resources become
|
|
children. If a window is expanded it may then conflict with a another window
|
|
entry and require the window to be truncated or trimmed. Consider this
|
|
situation:
|
|
.nf
|
|
|
|
|-- "CXL Window 0" --||----- "CXL Window 1" -----|
|
|
|--------------- "System RAM" -------------|
|
|
|
|
|
|
.fi
|
|
.PP
|
|
|
|
\&...where platform firmware has established as System RAM resource across 2
|
|
windows, but has left some portion of window 1 for dynamic CXL region
|
|
provisioning. In this case "Window 0" will span the entirety of the "System
|
|
RAM" span, and "CXL Window 1" is truncated to the remaining tail past the end
|
|
of that "System RAM" resource.
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
Kernel file \fBmock.c\fR
|
|
rst: |
|
|
.. c:function:: int add_cxl_resources (struct resource *cxl_res)
|
|
|
|
reflect CXL fixed memory windows in iomem_resource
|
|
|
|
.. container:: kernelindent
|
|
|
|
**Parameters**
|
|
|
|
``struct resource *cxl_res``
|
|
A standalone resource tree where each CXL window is a sibling
|
|
|
|
**Description**
|
|
|
|
Walk each CXL window in **cxl_res** and add it to iomem_resource potentially
|
|
expanding its boundaries to ensure that any conflicting resources become
|
|
children. If a window is expanded it may then conflict with a another window
|
|
entry and require the window to be truncated or trimmed. Consider this
|
|
situation::
|
|
|
|
|-- "CXL Window 0" --||----- "CXL Window 1" -----|
|
|
|--------------- "System RAM" -------------|
|
|
|
|
...where platform firmware has established as System RAM resource across 2
|
|
windows, but has left some portion of window 1 for dynamic CXL region
|
|
provisioning. In this case "Window 0" will span the entirety of the "System
|
|
RAM" span, and "CXL Window 1" is truncated to the remaining tail past the end
|
|
of that "System RAM" resource.
|
|
|
|
- name: simple_tables
|
|
description: Test formatting two simple tables
|
|
fname: mock.c
|
|
source: |
|
|
/**
|
|
* bitmap_onto - translate one bitmap relative to another
|
|
* @dst: resulting translated bitmap
|
|
* @orig: original untranslated bitmap
|
|
* @relmap: bitmap relative to which translated
|
|
* @bits: number of bits in each of these bitmaps
|
|
*
|
|
* =============== ============== =================
|
|
* @orig tmp @dst
|
|
* 0 0 40
|
|
* 1 1 41
|
|
* =============== ============== =================
|
|
*
|
|
* And:
|
|
*
|
|
* =============== ============== =================
|
|
* @orig tmp @dst
|
|
* =============== ============== =================
|
|
* 9 9 95
|
|
* 10 0 40 [#f1]_
|
|
* =============== ============== =================
|
|
*/
|
|
void bitmap_onto(unsigned long *dst, const unsigned long *orig,
|
|
const unsigned long *relmap, unsigned int bits);
|
|
expected:
|
|
- man: |
|
|
.TH "bitmap_onto" 9 "March 2026" "" "Kernel API Manual"
|
|
.SH NAME
|
|
bitmap_onto \- translate one bitmap relative to another
|
|
.SH SYNOPSIS
|
|
.B "void" bitmap_onto
|
|
.BI "(unsigned long *dst " ","
|
|
.BI "const unsigned long *orig " ","
|
|
.BI "const unsigned long *relmap " ","
|
|
.BI "unsigned int bits " ");"
|
|
.SH ARGUMENTS
|
|
.IP "dst" 12
|
|
resulting translated bitmap
|
|
.IP "orig" 12
|
|
original untranslated bitmap
|
|
.IP "relmap" 12
|
|
bitmap relative to which translated
|
|
.IP "bits" 12
|
|
number of bits in each of these bitmaps
|
|
.SH "DESCRIPTION"
|
|
|
|
.TS
|
|
box;
|
|
l l l.
|
|
\fIorig\fP tmp \fIdst\fP
|
|
0 0 40
|
|
1 1 41
|
|
.TE
|
|
.PP
|
|
|
|
And:
|
|
.PP
|
|
|
|
|
|
.TS
|
|
box;
|
|
l l l.
|
|
\fIorig\fP tmp \fIdst\fP
|
|
.TE
|
|
9 9 95
|
|
10 0 40 [#f1]_
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
Kernel file \fBmock.c\fR
|
|
|
|
rst: |
|
|
.. c:function:: void bitmap_onto (unsigned long *dst, const unsigned long *orig, const unsigned long *relmap, unsigned int bits)
|
|
|
|
translate one bitmap relative to another
|
|
|
|
.. container:: kernelindent
|
|
|
|
**Parameters**
|
|
|
|
``unsigned long *dst``
|
|
resulting translated bitmap
|
|
|
|
``const unsigned long *orig``
|
|
original untranslated bitmap
|
|
|
|
``const unsigned long *relmap``
|
|
bitmap relative to which translated
|
|
|
|
``unsigned int bits``
|
|
number of bits in each of these bitmaps
|
|
|
|
**Description**
|
|
|
|
=============== ============== =================
|
|
**orig** tmp **dst**
|
|
0 0 40
|
|
1 1 41
|
|
=============== ============== =================
|
|
|
|
And:
|
|
|
|
=============== ============== =================
|
|
**orig** tmp **dst**
|
|
=============== ============== =================
|
|
9 9 95
|
|
10 0 40 [#f1]_
|
|
=============== ============== =================
|
|
|
|
#
|
|
# Variable tests from Randy Dunlap's testset
|
|
#
|
|
- name: unsigned_long_var_on_uppercase
|
|
description: Test an unsigned long varaible in uppercase
|
|
fname: mock-vars.c
|
|
source: |
|
|
/**
|
|
* var ROOT_DEV - system root device
|
|
*
|
|
* @ROOT_DEV is either the successful root device or the root device
|
|
* that failed boot in the boot failure message.
|
|
*/
|
|
unsigned long ROOT_DEV;
|
|
expected:
|
|
- man: |
|
|
.TH "var ROOT_DEV" 9 "February 2026" "" "Kernel API Manual"
|
|
.SH NAME
|
|
ROOT_DEV \- system root device
|
|
.SH SYNOPSIS
|
|
unsigned long ROOT_DEV;
|
|
.SH "Description"
|
|
\fIROOT_DEV\fP is either the successful root device or the root device
|
|
that failed boot in the boot failure message.
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
Kernel file \fBmock-vars.c\fR
|
|
rst: |
|
|
.. c:macro:: ROOT_DEV
|
|
|
|
``unsigned long ROOT_DEV;``
|
|
|
|
system root device
|
|
|
|
**Description**
|
|
|
|
**ROOT_DEV** is either the successful root device or the root device
|
|
that failed boot in the boot failure message.
|
|
- name: enum_var
|
|
description: Test an enum var with __read_mostly
|
|
fname: mock-vars.c
|
|
source: |
|
|
/**
|
|
* var system_state - system state used during boot or suspend/hibernate/resume
|
|
*
|
|
* @system_state can be used during boot to determine if it is safe to
|
|
* make certain calls to other parts of the kernel. It can also be used
|
|
* during suspend/hibernate or resume to determine the order of actions
|
|
* that need to be executed. The numerical values of system_state are
|
|
* sometimes used in numerical ordering tests, so the relative values
|
|
* must not be altered.
|
|
*/
|
|
enum system_states system_state __read_mostly;
|
|
expected:
|
|
- man: |
|
|
.TH "var system_state" 9 "February 2026" "" "Kernel API Manual"
|
|
.SH NAME
|
|
system_state \- system state used during boot or suspend/hibernate/resume
|
|
.SH SYNOPSIS
|
|
enum system_states system_state __read_mostly;
|
|
.SH "Description"
|
|
\fIsystem_state\fP can be used during boot to determine if it is safe to
|
|
make certain calls to other parts of the kernel. It can also be used
|
|
during suspend/hibernate or resume to determine the order of actions
|
|
that need to be executed. The numerical values of system_state are
|
|
sometimes used in numerical ordering tests, so the relative values
|
|
must not be altered.
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
Kernel file \fBmock-vars.c\fR
|
|
rst: |
|
|
.. c:macro:: system_state
|
|
|
|
``enum system_states system_state __read_mostly;``
|
|
|
|
system state used during boot or suspend/hibernate/resume
|
|
|
|
**Description**
|
|
|
|
**system_state** can be used during boot to determine if it is safe to
|
|
make certain calls to other parts of the kernel. It can also be used
|
|
during suspend/hibernate or resume to determine the order of actions
|
|
that need to be executed. The numerical values of system_state are
|
|
sometimes used in numerical ordering tests, so the relative values
|
|
must not be altered.
|
|
- name: char_pointer_var
|
|
description: Test char * var with __ro_after_init
|
|
fname: mock-vars.c
|
|
source: |
|
|
/**
|
|
* var saved_command_line - kernel's command line, saved from use at
|
|
* any later time in the kernel.
|
|
*/
|
|
char *saved_command_line __ro_after_init;
|
|
expected:
|
|
- man: |
|
|
.TH "var saved_command_line" 9 "February 2026" "" "Kernel API Manual"
|
|
.SH NAME
|
|
saved_command_line \- kernel's command line, saved from use at any later time in the kernel.
|
|
.SH SYNOPSIS
|
|
char *saved_command_line __ro_after_init;
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
Kernel file \fBmock-vars.c\fR
|
|
rst: |
|
|
.. c:macro:: saved_command_line
|
|
|
|
``char *saved_command_line __ro_after_init;``
|
|
|
|
kernel's command line, saved from use at any later time in the kernel.
|
|
- name: unsigned_long_with_default
|
|
description: Test an unsigned long var that is set to a default value
|
|
fname: mock-vars.c
|
|
source: |
|
|
/**
|
|
* var loop_per_jiffy - calculated loop count needed to consume one jiffy
|
|
* of time
|
|
*/
|
|
unsigned long loops_per_jiffy = (1<<12);
|
|
expected:
|
|
- man: |
|
|
.TH "var loops_per_jiffy" 9 "February 2026" "" "Kernel API Manual"
|
|
.SH NAME
|
|
loops_per_jiffy \- calculated loop count needed to consume one jiffy of time
|
|
.SH SYNOPSIS
|
|
unsigned long loops_per_jiffy = (1<<12);
|
|
.SH "Initialization"
|
|
default: (1<<12)
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
Kernel file \fBmock-vars.c\fR
|
|
rst: |
|
|
.. c:macro:: loops_per_jiffy
|
|
|
|
``unsigned long loops_per_jiffy = (1<<12);``
|
|
|
|
calculated loop count needed to consume one jiffy of time
|
|
|
|
**Initialization**
|
|
|
|
default: ``(1<<12)``
|
|
- name: unsigned_long
|
|
description: test a simple unsigned long variable.
|
|
fname: mock-vars.c
|
|
source: |
|
|
/**
|
|
* var preset_lpj - lpj (loops per jiffy) value set from kernel
|
|
* command line using "lpj=VALUE"
|
|
*
|
|
* See Documentation/admin-guide/kernel-parameters.txt ("lpj=") for details.
|
|
*/
|
|
unsigned long preset_lpj;
|
|
expected:
|
|
- man: |
|
|
.TH "var preset_lpj" 9 "February 2026" "" "Kernel API Manual"
|
|
.SH NAME
|
|
preset_lpj \- lpj (loops per jiffy) value set from kernel command line using "lpj=VALUE"
|
|
.SH SYNOPSIS
|
|
unsigned long preset_lpj;
|
|
.SH "Description"
|
|
See Documentation/admin-guide/kernel-parameters.txt ("lpj=") for details.
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
Kernel file \fBmock-vars.c\fR
|
|
rst: |
|
|
.. c:macro:: preset_lpj
|
|
|
|
``unsigned long preset_lpj;``
|
|
|
|
lpj (loops per jiffy) value set from kernel command line using "lpj=VALUE"
|
|
|
|
**Description**
|
|
|
|
See Documentation/admin-guide/kernel-parameters.txt ("lpj=") for details.
|
|
- name: char_array
|
|
description: test a char array variable
|
|
fname: mock-vars.c
|
|
source: |
|
|
/**
|
|
* var linux_proc_banner - text used from /proc/version file
|
|
*
|
|
* * first %s is sysname (e.g., "Linux")
|
|
* * second %s is release
|
|
* * third %s is version
|
|
*/
|
|
char linux_proc_banner[];
|
|
expected:
|
|
- man: |
|
|
.TH "var linux_proc_banner" 9 "February 2026" "" "Kernel API Manual"
|
|
.SH NAME
|
|
linux_proc_banner \- text used from /proc/version file
|
|
.SH SYNOPSIS
|
|
char linux_proc_banner[];
|
|
.SH "Description"
|
|
.IP \[bu]
|
|
first s is sysname (e.g., "Linux")
|
|
.IP \[bu]
|
|
second s is release
|
|
.IP \[bu]
|
|
third s is version
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
Kernel file \fBmock-vars.c\fR
|
|
rst: |
|
|
.. c:macro:: linux_proc_banner
|
|
|
|
``char linux_proc_banner[];``
|
|
|
|
text used from /proc/version file
|
|
|
|
**Description**
|
|
|
|
* first ``s`` is sysname (e.g., "Linux")
|
|
* second ``s`` is release
|
|
* third ``s`` is version
|
|
- name: const_char_array
|
|
description: test a const char array variable
|
|
fname: mock-vars.c
|
|
source: |
|
|
/**
|
|
* var linux_banner - Linux boot banner, usually printed at boot time
|
|
*/
|
|
const char linux_banner[];
|
|
expected:
|
|
- man: |
|
|
.TH "var linux_banner" 9 "February 2026" "" "Kernel API Manual"
|
|
.SH NAME
|
|
linux_banner \- Linux boot banner, usually printed at boot time
|
|
.SH SYNOPSIS
|
|
const char linux_banner[];
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
Kernel file \fBmock-vars.c\fR
|
|
rst: |
|
|
.. c:macro:: linux_banner
|
|
|
|
``const char linux_banner[];``
|
|
|
|
Linux boot banner, usually printed at boot time
|
|
- name: static_atomic64_t_var
|
|
description: test a static atomi64_t variable
|
|
fname: mock-vars.c
|
|
source: |
|
|
/**
|
|
* var diskseq - unique sequence number for block device instances
|
|
*
|
|
* Allows userspace to associate uevents to the lifetime of a device
|
|
*/
|
|
static atomic64_t diskseq;
|
|
expected:
|
|
- man: |
|
|
.TH "var diskseq" 9 "February 2026" "" "Kernel API Manual"
|
|
.SH NAME
|
|
diskseq \- unique sequence number for block device instances
|
|
.SH SYNOPSIS
|
|
static atomic64_t diskseq;
|
|
.SH "Description"
|
|
Allows userspace to associate uevents to the lifetime of a device
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
Kernel file \fBmock-vars.c\fR
|
|
rst: |
|
|
.. c:macro:: diskseq
|
|
|
|
``static atomic64_t diskseq;``
|
|
|
|
unique sequence number for block device instances
|
|
|
|
**Description**
|
|
|
|
Allows userspace to associate uevents to the lifetime of a device
|
|
- name: unsigned_long_on_init
|
|
description: test an unsigned long var at "init" with a different timestamp.
|
|
fname: init/mock-vars.c
|
|
source: |
|
|
/**
|
|
* var rtnl_mutex - historical global lock for networking control operations.
|
|
*
|
|
* @rtnl_mutex is used to serialize rtnetlink requests
|
|
* and protect all kernel internal data structures related to networking.
|
|
*
|
|
* See Documentation/networking/netdevices.rst for details.
|
|
* Often known as the rtnl_lock, although rtnl_lock is a kernel function.
|
|
*/
|
|
unsigned long rtnl_mutex;
|
|
expected:
|
|
- man: |
|
|
.TH "var rtnl_mutex" 9 "February 2026" "init" "Kernel API Manual"
|
|
.SH NAME
|
|
rtnl_mutex \- historical global lock for networking control operations.
|
|
.SH SYNOPSIS
|
|
unsigned long rtnl_mutex;
|
|
.SH "Description"
|
|
\fIrtnl_mutex\fP is used to serialize rtnetlink requests
|
|
and protect all kernel internal data structures related to networking.
|
|
.PP
|
|
|
|
See Documentation/networking/netdevices.rst for details.
|
|
Often known as the rtnl_lock, although rtnl_lock is a kernel function.
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
Kernel file \fBinit/mock-vars.c\fR
|
|
rst: |
|
|
.. c:macro:: rtnl_mutex
|
|
|
|
``unsigned long rtnl_mutex;``
|
|
|
|
historical global lock for networking control operations.
|
|
|
|
**Description**
|
|
|
|
**rtnl_mutex** is used to serialize rtnetlink requests
|
|
and protect all kernel internal data structures related to networking.
|
|
|
|
See Documentation/networking/netdevices.rst for details.
|
|
Often known as the rtnl_lock, although rtnl_lock is a kernel function.
|
|
|
|
|
|
- name: struct_kcov
|
|
fname: mock_tests/kdoc-drop-ctx-lock.c
|
|
source: |
|
|
/**
|
|
* struct kcov - kcov descriptor (one per opened debugfs file).
|
|
* State transitions of the descriptor:
|
|
*
|
|
* - initial state after open()
|
|
* - then there must be a single ioctl(KCOV_INIT_TRACE) call
|
|
* - then, mmap() call (several calls are allowed but not useful)
|
|
* - then, ioctl(KCOV_ENABLE, arg), where arg is
|
|
* KCOV_TRACE_PC - to trace only the PCs
|
|
* or
|
|
* KCOV_TRACE_CMP - to trace only the comparison operands
|
|
* - then, ioctl(KCOV_DISABLE) to disable the task.
|
|
*
|
|
* Enabling/disabling ioctls can be repeated (only one task a time allowed).
|
|
*/
|
|
struct kcov {
|
|
/**
|
|
* @refcount: Reference counter. We keep one for:
|
|
* - opened file descriptor
|
|
* - task with enabled coverage (we can't unwire it from another task)
|
|
* - each code section for remote coverage collection
|
|
*/
|
|
refcount_t refcount;
|
|
/**
|
|
* @lock: The lock protects mode, size, area and t.
|
|
*/
|
|
spinlock_t lock;
|
|
/**
|
|
* @mode: the kcov_mode
|
|
*/
|
|
enum kcov_mode mode __guarded_by(&lock);
|
|
/**
|
|
* @size: Size of arena (in long's).
|
|
*/
|
|
unsigned int size __guarded_by(&lock);
|
|
/**
|
|
* @area: Coverage buffer shared with user space.
|
|
*/
|
|
void *area __guarded_by(&lock);
|
|
/**
|
|
* @t: Task for which we collect coverage, or NULL.
|
|
*/
|
|
struct task_struct *t __guarded_by(&lock);
|
|
/**
|
|
* @remote: Collecting coverage from remote (background) threads.
|
|
*/
|
|
bool remote;
|
|
/**
|
|
* @remote_size: Size of remote area (in long's).
|
|
*/
|
|
unsigned int remote_size;
|
|
/**
|
|
* @sequence: Sequence is incremented each time kcov is reenabled,
|
|
* used by kcov_remote_stop(), see the comment there.
|
|
*/
|
|
int sequence;
|
|
};
|
|
expected:
|
|
- man: |
|
|
.TH "struct kcov" 9 "February 2026" "mock_tests" "Kernel API Manual"
|
|
.SH NAME
|
|
struct kcov \- kcov descriptor (one per opened debugfs file). State transitions of the descriptor:
|
|
.SH SYNOPSIS
|
|
struct kcov {
|
|
.br
|
|
.BI " refcount_t refcount;"
|
|
.br
|
|
.BI " spinlock_t lock;"
|
|
.br
|
|
.BI " enum kcov_mode mode;"
|
|
.br
|
|
.BI " unsigned int size;"
|
|
.br
|
|
.BI " void *area;"
|
|
.br
|
|
.BI " struct task_struct *t;"
|
|
.br
|
|
.BI " bool remote;"
|
|
.br
|
|
.BI " unsigned int remote_size;"
|
|
.br
|
|
.BI " int sequence;"
|
|
.br
|
|
.BI "
|
|
};
|
|
.br
|
|
|
|
.SH Members
|
|
.IP "refcount" 12
|
|
Reference counter. We keep one for:
|
|
.IP \[bu]
|
|
opened file descriptor
|
|
.IP \[bu]
|
|
task with enabled coverage (we can't unwire it from another task)
|
|
.IP \[bu]
|
|
each code section for remote coverage collection
|
|
.IP "lock" 12
|
|
The lock protects mode, size, area and t.
|
|
.IP "mode" 12
|
|
the kcov_mode
|
|
.IP "size" 12
|
|
Size of arena (in long's).
|
|
.IP "area" 12
|
|
Coverage buffer shared with user space.
|
|
.IP "t" 12
|
|
Task for which we collect coverage, or NULL.
|
|
.IP "remote" 12
|
|
Collecting coverage from remote (background) threads.
|
|
.IP "remote_size" 12
|
|
Size of remote area (in long's).
|
|
.IP "sequence" 12
|
|
Sequence is incremented each time kcov is reenabled,
|
|
used by \fBkcov_remote_stop\fP, see the comment there.
|
|
.SH "Description"
|
|
.IP \[bu]
|
|
initial state after \fBopen\fP
|
|
.IP \[bu]
|
|
then there must be a single ioctl(KCOV_INIT_TRACE) call
|
|
.IP \[bu]
|
|
then, \fBmmap\fP call (several calls are allowed but not useful)
|
|
.IP \[bu]
|
|
then, ioctl(KCOV_ENABLE, arg), where arg is
|
|
KCOV_TRACE_PC - to trace only the PCs
|
|
or
|
|
KCOV_TRACE_CMP - to trace only the comparison operands
|
|
.IP \[bu]
|
|
then, ioctl(KCOV_DISABLE) to disable the task.
|
|
.PP
|
|
|
|
Enabling/disabling ioctls can be repeated (only one task a time allowed).
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR
|
|
rst: |
|
|
.. c:struct:: kcov
|
|
|
|
kcov descriptor (one per opened debugfs file). State transitions of the descriptor:
|
|
|
|
.. container:: kernelindent
|
|
|
|
**Definition**::
|
|
|
|
struct kcov {
|
|
refcount_t refcount;
|
|
spinlock_t lock;
|
|
enum kcov_mode mode;
|
|
unsigned int size;
|
|
void *area;
|
|
struct task_struct *t;
|
|
bool remote;
|
|
unsigned int remote_size;
|
|
int sequence;
|
|
};
|
|
|
|
**Members**
|
|
|
|
``refcount``
|
|
Reference counter. We keep one for:
|
|
- opened file descriptor
|
|
- task with enabled coverage (we can't unwire it from another task)
|
|
- each code section for remote coverage collection
|
|
|
|
``lock``
|
|
The lock protects mode, size, area and t.
|
|
|
|
``mode``
|
|
the kcov_mode
|
|
|
|
``size``
|
|
Size of arena (in long's).
|
|
|
|
``area``
|
|
Coverage buffer shared with user space.
|
|
|
|
``t``
|
|
Task for which we collect coverage, or NULL.
|
|
|
|
``remote``
|
|
Collecting coverage from remote (background) threads.
|
|
|
|
``remote_size``
|
|
Size of remote area (in long's).
|
|
|
|
``sequence``
|
|
Sequence is incremented each time kcov is reenabled,
|
|
used by kcov_remote_stop(), see the comment there.
|
|
|
|
|
|
**Description**
|
|
|
|
- initial state after open()
|
|
- then there must be a single ioctl(KCOV_INIT_TRACE) call
|
|
- then, mmap() call (several calls are allowed but not useful)
|
|
- then, ioctl(KCOV_ENABLE, arg), where arg is
|
|
KCOV_TRACE_PC - to trace only the PCs
|
|
or
|
|
KCOV_TRACE_CMP - to trace only the comparison operands
|
|
- then, ioctl(KCOV_DISABLE) to disable the task.
|
|
|
|
Enabling/disabling ioctls can be repeated (only one task a time allowed).
|
|
|
|
- name: pool_offset
|
|
description: mock_tests/kdoc-drop-ctx-lock.c line 83
|
|
fname: mock_tests/kdoc-drop-ctx-lock.c
|
|
source: |
|
|
/**
|
|
* var pool_offset - Offset to the unused space in the currently used pool.
|
|
*
|
|
*/
|
|
size_t pool_offset __guarded_by(&pool_lock) = DEPOT_POOL_SIZE;
|
|
expected:
|
|
- man: |
|
|
.TH "var pool_offset" 9 "February 2026" "mock_tests" "Kernel API Manual"
|
|
.SH NAME
|
|
pool_offset \- Offset to the unused space in the currently used pool.
|
|
.SH SYNOPSIS
|
|
size_t pool_offset __guarded_by(&pool_lock) = DEPOT_POOL_SIZE;
|
|
.SH "Initialization"
|
|
default: DEPOT_POOL_SIZE
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR
|
|
rst: |
|
|
.. c:macro:: pool_offset
|
|
|
|
``size_t pool_offset __guarded_by(&pool_lock) = DEPOT_POOL_SIZE;``
|
|
|
|
Offset to the unused space in the currently used pool.
|
|
|
|
**Initialization**
|
|
|
|
default: ``DEPOT_POOL_SIZE``
|
|
- name: free_stacks
|
|
description: mock_tests/kdoc-drop-ctx-lock.c line 88
|
|
fname: mock_tests/kdoc-drop-ctx-lock.c
|
|
source: |
|
|
/**
|
|
* var free_stacks - Freelist of stack records within stack_pools.
|
|
*
|
|
*/
|
|
__guarded_by(&pool_lock) LIST_HEAD(free_stacks);
|
|
expected:
|
|
- man: |
|
|
.TH "var free_stacks" 9 "February 2026" "mock_tests" "Kernel API Manual"
|
|
.SH NAME
|
|
free_stacks \- Freelist of stack records within stack_pools.
|
|
.SH SYNOPSIS
|
|
__guarded_by(&pool_lock) LIST_HEAD(free_stacks);
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR
|
|
rst: |
|
|
.. c:macro:: free_stacks
|
|
|
|
``__guarded_by(&pool_lock) LIST_HEAD(free_stacks);``
|
|
|
|
Freelist of stack records within stack_pools.
|
|
- name: stack_pools
|
|
description: mock_tests/kdoc-drop-ctx-lock.c line 94
|
|
fname: mock_tests/kdoc-drop-ctx-lock.c
|
|
source: |
|
|
/**
|
|
* var stack_pools - Array of memory regions that store stack records.
|
|
*
|
|
*/
|
|
void **stack_pools __pt_guarded_by(&pool_lock);
|
|
expected:
|
|
- man: |
|
|
.TH "var stack_pools" 9 "February 2026" "mock_tests" "Kernel API Manual"
|
|
.SH NAME
|
|
stack_pools \- Array of memory regions that store stack records.
|
|
.SH SYNOPSIS
|
|
void **stack_pools __pt_guarded_by(&pool_lock);
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR
|
|
rst: |
|
|
.. c:macro:: stack_pools
|
|
|
|
``void **stack_pools __pt_guarded_by(&pool_lock);``
|
|
|
|
Array of memory regions that store stack records.
|
|
- name: prepare_report_consumer
|
|
description: mock_tests/kdoc-drop-ctx-lock.c line 103
|
|
fname: mock_tests/kdoc-drop-ctx-lock.c
|
|
source: |
|
|
/**
|
|
* prepare_report_consumer - prepare the report consumer
|
|
* @flags: flags
|
|
* @ai: not that AI
|
|
* @other_info: yes that
|
|
*/
|
|
bool prepare_report_consumer(unsigned long *flags,
|
|
const struct access_info *ai,
|
|
struct other_info *other_info)
|
|
__cond_acquires(true, &report_lock)
|
|
{
|
|
expected:
|
|
- man: |
|
|
.TH "prepare_report_consumer" 9 "February 2026" "mock_tests" "Kernel API Manual"
|
|
.SH NAME
|
|
prepare_report_consumer \- prepare the report consumer
|
|
.SH SYNOPSIS
|
|
.B "bool" prepare_report_consumer
|
|
.BI "(unsigned long *flags " ","
|
|
.BI "const struct access_info *ai " ","
|
|
.BI "struct other_info *other_info " ");"
|
|
.SH ARGUMENTS
|
|
.IP "flags" 12
|
|
flags
|
|
.IP "ai" 12
|
|
not that AI
|
|
.IP "other_info" 12
|
|
yes that
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR
|
|
rst: |
|
|
.. c:function:: bool prepare_report_consumer (unsigned long *flags, const struct access_info *ai, struct other_info *other_info)
|
|
|
|
prepare the report consumer
|
|
|
|
.. container:: kernelindent
|
|
|
|
**Parameters**
|
|
|
|
``unsigned long *flags``
|
|
flags
|
|
|
|
``const struct access_info *ai``
|
|
not that AI
|
|
|
|
``struct other_info *other_info``
|
|
yes that
|
|
- name: tcp_sigpool_start
|
|
description: mock_tests/kdoc-drop-ctx-lock.c line 117
|
|
fname: mock_tests/kdoc-drop-ctx-lock.c
|
|
source: |
|
|
/**
|
|
* tcp_sigpool_start - start a tcp message of @id, using @c
|
|
* @id: TCP message ID
|
|
* @c: the &tcp_sigpool to use
|
|
*/
|
|
int tcp_sigpool_start(unsigned int id, struct tcp_sigpool *c) __cond_acquires(0, RCU_BH)
|
|
{
|
|
expected:
|
|
- man: |
|
|
.TH "tcp_sigpool_start" 9 "February 2026" "mock_tests" "Kernel API Manual"
|
|
.SH NAME
|
|
tcp_sigpool_start \- start a tcp message of @id, using @c
|
|
.SH SYNOPSIS
|
|
.B "int" tcp_sigpool_start
|
|
.BI "(unsigned int id " ","
|
|
.BI "struct tcp_sigpool *c " ");"
|
|
.SH ARGUMENTS
|
|
.IP "id" 12
|
|
TCP message ID
|
|
.IP "c" 12
|
|
the \fItcp_sigpool\fP to use
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR
|
|
rst: |
|
|
.. c:function:: int tcp_sigpool_start (unsigned int id, struct tcp_sigpool *c)
|
|
|
|
start a tcp message of **id**, using **c**
|
|
|
|
.. container:: kernelindent
|
|
|
|
**Parameters**
|
|
|
|
``unsigned int id``
|
|
TCP message ID
|
|
|
|
``struct tcp_sigpool *c``
|
|
the :c:type:`tcp_sigpool` to use
|
|
- name: undo_report_consumer
|
|
description: mock_tests/kdoc-drop-ctx-lock.c line 129
|
|
fname: mock_tests/kdoc-drop-ctx-lock.c
|
|
source: |
|
|
/**
|
|
* undo_report_consumer - teardown a report consumer
|
|
* @flags: those flags
|
|
* @ai: not that AI
|
|
* @other_info: yes that
|
|
*/
|
|
bool undo_report_consumer(unsigned long *flags,
|
|
const struct access_info *ai,
|
|
struct other_info *other_info)
|
|
__cond_releases(true, &report_lock)
|
|
{
|
|
expected:
|
|
- man: |
|
|
.TH "undo_report_consumer" 9 "February 2026" "mock_tests" "Kernel API Manual"
|
|
.SH NAME
|
|
undo_report_consumer \- teardown a report consumer
|
|
.SH SYNOPSIS
|
|
.B "bool" undo_report_consumer
|
|
.BI "(unsigned long *flags " ","
|
|
.BI "const struct access_info *ai " ","
|
|
.BI "struct other_info *other_info " ");"
|
|
.SH ARGUMENTS
|
|
.IP "flags" 12
|
|
those flags
|
|
.IP "ai" 12
|
|
not that AI
|
|
.IP "other_info" 12
|
|
yes that
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR
|
|
rst: |
|
|
.. c:function:: bool undo_report_consumer (unsigned long *flags, const struct access_info *ai, struct other_info *other_info)
|
|
|
|
teardown a report consumer
|
|
|
|
.. container:: kernelindent
|
|
|
|
**Parameters**
|
|
|
|
``unsigned long *flags``
|
|
those flags
|
|
|
|
``const struct access_info *ai``
|
|
not that AI
|
|
|
|
``struct other_info *other_info``
|
|
yes that
|
|
- name: debugfs_enter_cancellation
|
|
description: mock_tests/kdoc-drop-ctx-lock.c line 143
|
|
fname: mock_tests/kdoc-drop-ctx-lock.c
|
|
source: |
|
|
/**
|
|
* debugfs_enter_cancellation - begin a cancellation operation on @file
|
|
* @file: the target file
|
|
* @cancellation: the operation to execute
|
|
*/
|
|
void debugfs_enter_cancellation(struct file *file,
|
|
struct debugfs_cancellation *cancellation) __acquires(cancellation)
|
|
{ }
|
|
expected:
|
|
- man: |
|
|
.TH "debugfs_enter_cancellation" 9 "February 2026" "mock_tests" "Kernel API Manual"
|
|
.SH NAME
|
|
debugfs_enter_cancellation \- begin a cancellation operation on @file
|
|
.SH SYNOPSIS
|
|
.B "void" debugfs_enter_cancellation
|
|
.BI "(struct file *file " ","
|
|
.BI "struct debugfs_cancellation *cancellation " ");"
|
|
.SH ARGUMENTS
|
|
.IP "file" 12
|
|
the target file
|
|
.IP "cancellation" 12
|
|
the operation to execute
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR
|
|
rst: |
|
|
.. c:function:: void debugfs_enter_cancellation (struct file *file, struct debugfs_cancellation *cancellation)
|
|
|
|
begin a cancellation operation on **file**
|
|
|
|
.. container:: kernelindent
|
|
|
|
**Parameters**
|
|
|
|
``struct file *file``
|
|
the target file
|
|
|
|
``struct debugfs_cancellation *cancellation``
|
|
the operation to execute
|
|
- name: debugfs_leave_cancellation
|
|
description: mock_tests/kdoc-drop-ctx-lock.c line 152
|
|
fname: mock_tests/kdoc-drop-ctx-lock.c
|
|
source: |
|
|
/**
|
|
* debugfs_leave_cancellation - wrapup the cancellation operation on @file
|
|
* @file: the target file
|
|
* @cancellation: the operation to wrapup
|
|
*/
|
|
void debugfs_leave_cancellation(struct file *file,
|
|
struct debugfs_cancellation *cancellation) __releases(cancellation)
|
|
{ }
|
|
expected:
|
|
- man: |
|
|
.TH "debugfs_leave_cancellation" 9 "February 2026" "mock_tests" "Kernel API Manual"
|
|
.SH NAME
|
|
debugfs_leave_cancellation \- wrapup the cancellation operation on @file
|
|
.SH SYNOPSIS
|
|
.B "void" debugfs_leave_cancellation
|
|
.BI "(struct file *file " ","
|
|
.BI "struct debugfs_cancellation *cancellation " ");"
|
|
.SH ARGUMENTS
|
|
.IP "file" 12
|
|
the target file
|
|
.IP "cancellation" 12
|
|
the operation to wrapup
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR
|
|
rst: |
|
|
.. c:function:: void debugfs_leave_cancellation (struct file *file, struct debugfs_cancellation *cancellation)
|
|
|
|
wrapup the cancellation operation on **file**
|
|
|
|
.. container:: kernelindent
|
|
|
|
**Parameters**
|
|
|
|
``struct file *file``
|
|
the target file
|
|
|
|
``struct debugfs_cancellation *cancellation``
|
|
the operation to wrapup
|
|
- name: acpi_os_acquire_lock
|
|
description: mock_tests/kdoc-drop-ctx-lock.c line 161
|
|
fname: mock_tests/kdoc-drop-ctx-lock.c
|
|
source: |
|
|
/**
|
|
* acpi_os_acquire_lock - Acquire a spinlock.
|
|
* @lockp: pointer to the spinlock_t.
|
|
*/
|
|
acpi_cpu_flags acpi_os_acquire_lock(acpi_spinlock lockp)
|
|
__acquires(lockp)
|
|
{
|
|
expected:
|
|
- man: |
|
|
.TH "acpi_os_acquire_lock" 9 "February 2026" "mock_tests" "Kernel API Manual"
|
|
.SH NAME
|
|
acpi_os_acquire_lock \- Acquire a spinlock.
|
|
.SH SYNOPSIS
|
|
.B "acpi_cpu_flags" acpi_os_acquire_lock
|
|
.BI "(acpi_spinlock lockp " ");"
|
|
.SH ARGUMENTS
|
|
.IP "lockp" 12
|
|
pointer to the spinlock_t.
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR
|
|
rst: |
|
|
.. c:function:: acpi_cpu_flags acpi_os_acquire_lock (acpi_spinlock lockp)
|
|
|
|
Acquire a spinlock.
|
|
|
|
.. container:: kernelindent
|
|
|
|
**Parameters**
|
|
|
|
``acpi_spinlock lockp``
|
|
pointer to the spinlock_t.
|
|
- name: acpi_os_release_lock
|
|
description: mock_tests/kdoc-drop-ctx-lock.c line 172
|
|
fname: mock_tests/kdoc-drop-ctx-lock.c
|
|
source: |
|
|
/**
|
|
* acpi_os_release_lock - Release a spinlock.
|
|
* @lockp: pointer to the spinlock_t.
|
|
* @not_used: these flags are not used.
|
|
*/
|
|
void acpi_os_release_lock(acpi_spinlock lockp, acpi_cpu_flags not_used)
|
|
__releases(lockp)
|
|
{
|
|
expected:
|
|
- man: |
|
|
.TH "acpi_os_release_lock" 9 "February 2026" "mock_tests" "Kernel API Manual"
|
|
.SH NAME
|
|
acpi_os_release_lock \- Release a spinlock.
|
|
.SH SYNOPSIS
|
|
.B "void" acpi_os_release_lock
|
|
.BI "(acpi_spinlock lockp " ","
|
|
.BI "acpi_cpu_flags not_used " ");"
|
|
.SH ARGUMENTS
|
|
.IP "lockp" 12
|
|
pointer to the spinlock_t.
|
|
.IP "not_used" 12
|
|
these flags are not used.
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR
|
|
rst: |
|
|
.. c:function:: void acpi_os_release_lock (acpi_spinlock lockp, acpi_cpu_flags not_used)
|
|
|
|
Release a spinlock.
|
|
|
|
.. container:: kernelindent
|
|
|
|
**Parameters**
|
|
|
|
``acpi_spinlock lockp``
|
|
pointer to the spinlock_t.
|
|
|
|
``acpi_cpu_flags not_used``
|
|
these flags are not used.
|
|
- name: tx
|
|
description: mock_tests/kdoc-drop-ctx-lock.c line 183
|
|
fname: mock_tests/kdoc-drop-ctx-lock.c
|
|
source: |
|
|
/**
|
|
* tx - transmit message ID @id
|
|
* @id: message ID to transmit
|
|
*/
|
|
int tx(int id) __must_hold(&txlock)
|
|
{
|
|
expected:
|
|
- man: |
|
|
.TH "tx" 9 "February 2026" "mock_tests" "Kernel API Manual"
|
|
.SH NAME
|
|
tx \- transmit message ID @id
|
|
.SH SYNOPSIS
|
|
.B "int" tx
|
|
.BI "(int id " ");"
|
|
.SH ARGUMENTS
|
|
.IP "id" 12
|
|
message ID to transmit
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR
|
|
rst: |
|
|
.. c:function:: int tx (int id)
|
|
|
|
transmit message ID **id**
|
|
|
|
.. container:: kernelindent
|
|
|
|
**Parameters**
|
|
|
|
``int id``
|
|
message ID to transmit
|
|
- name: contend_for_bm
|
|
description: mock_tests/kdoc-drop-ctx-lock.c line 192
|
|
fname: mock_tests/kdoc-drop-ctx-lock.c
|
|
source: |
|
|
/**
|
|
* contend_for_bm - try to become the bus master
|
|
* @card: the &fw_card (describes the bus)
|
|
*/
|
|
enum bm_contention_outcome contend_for_bm(struct fw_card *card)
|
|
__must_hold(&card->lock)
|
|
{
|
|
expected:
|
|
- man: |
|
|
.TH "contend_for_bm" 9 "February 2026" "mock_tests" "Kernel API Manual"
|
|
.SH NAME
|
|
contend_for_bm \- try to become the bus master
|
|
.SH SYNOPSIS
|
|
.B "enum bm_contention_outcome" contend_for_bm
|
|
.BI "(struct fw_card *card " ");"
|
|
.SH ARGUMENTS
|
|
.IP "card" 12
|
|
the \fIfw_card\fP (describes the bus)
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR
|
|
rst: |
|
|
.. c:function:: enum bm_contention_outcome contend_for_bm (struct fw_card *card)
|
|
|
|
try to become the bus master
|
|
|
|
.. container:: kernelindent
|
|
|
|
**Parameters**
|
|
|
|
``struct fw_card *card``
|
|
the :c:type:`fw_card` (describes the bus)
|
|
- name: prepare_report_producer
|
|
description: mock_tests/kdoc-drop-ctx-lock.c line 202
|
|
fname: mock_tests/kdoc-drop-ctx-lock.c
|
|
source: |
|
|
/**
|
|
* prepare_report_producer - prepare the report producer
|
|
* @flags: still flags
|
|
* @ai: some AI
|
|
* @other_info: Populate @other_info; requires that the provided
|
|
* @other_info not in use.
|
|
*/
|
|
void prepare_report_producer(unsigned long *flags,
|
|
const struct access_info *ai,
|
|
struct other_info *other_info)
|
|
__must_not_hold(&report_lock)
|
|
{ }
|
|
expected:
|
|
- man: |
|
|
.TH "prepare_report_producer" 9 "February 2026" "mock_tests" "Kernel API Manual"
|
|
.SH NAME
|
|
prepare_report_producer \- prepare the report producer
|
|
.SH SYNOPSIS
|
|
.B "void" prepare_report_producer
|
|
.BI "(unsigned long *flags " ","
|
|
.BI "const struct access_info *ai " ","
|
|
.BI "struct other_info *other_info " ");"
|
|
.SH ARGUMENTS
|
|
.IP "flags" 12
|
|
still flags
|
|
.IP "ai" 12
|
|
some AI
|
|
.IP "other_info" 12
|
|
Populate \fIother_info\fP; requires that the provided
|
|
\fIother_info\fP not in use.
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR
|
|
rst: |
|
|
.. c:function:: void prepare_report_producer (unsigned long *flags, const struct access_info *ai, struct other_info *other_info)
|
|
|
|
prepare the report producer
|
|
|
|
.. container:: kernelindent
|
|
|
|
**Parameters**
|
|
|
|
``unsigned long *flags``
|
|
still flags
|
|
|
|
``const struct access_info *ai``
|
|
some AI
|
|
|
|
``struct other_info *other_info``
|
|
Populate **other_info**; requires that the provided
|
|
**other_info** not in use.
|
|
- name: crypto_alg_lookup
|
|
description: mock_tests/kdoc-drop-ctx-lock.c line 215
|
|
fname: mock_tests/kdoc-drop-ctx-lock.c
|
|
source: |
|
|
/**
|
|
* __crypto_alg_lookup() - lookup the algorithm by name/type/mask
|
|
* @name: name to search for
|
|
* @type: type to search for
|
|
* @mask: mask to match
|
|
*/
|
|
struct crypto_alg *__crypto_alg_lookup(const char *name, u32 type,
|
|
u32 mask)
|
|
__must_hold_shared(&crypto_alg_sem)
|
|
{
|
|
expected:
|
|
- man: |
|
|
.TH "__crypto_alg_lookup" 9 "February 2026" "mock_tests" "Kernel API Manual"
|
|
.SH NAME
|
|
__crypto_alg_lookup \- lookup the algorithm by name/type/mask
|
|
.SH SYNOPSIS
|
|
.B "struct crypto_alg *" __crypto_alg_lookup
|
|
.BI "(const char *name " ","
|
|
.BI "u32 type " ","
|
|
.BI "u32 mask " ");"
|
|
.SH ARGUMENTS
|
|
.IP "name" 12
|
|
name to search for
|
|
.IP "type" 12
|
|
type to search for
|
|
.IP "mask" 12
|
|
mask to match
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR
|
|
rst: |
|
|
.. c:function:: struct crypto_alg * __crypto_alg_lookup (const char *name, u32 type, u32 mask)
|
|
|
|
lookup the algorithm by name/type/mask
|
|
|
|
.. container:: kernelindent
|
|
|
|
**Parameters**
|
|
|
|
``const char *name``
|
|
name to search for
|
|
|
|
``u32 type``
|
|
type to search for
|
|
|
|
``u32 mask``
|
|
mask to match
|
|
- name: down_read_trylock
|
|
description: mock_tests/kdoc-drop-ctx-lock.c line 228
|
|
fname: mock_tests/kdoc-drop-ctx-lock.c
|
|
source: |
|
|
/**
|
|
* down_read_trylock - trylock for reading
|
|
* @sem: the semaphore to try to lock
|
|
*
|
|
* Returns: 1 if successful, 0 if contention
|
|
*/
|
|
extern int down_read_trylock(struct rw_semaphore *sem) __cond_acquires_shared(true, sem);
|
|
expected:
|
|
- man: |
|
|
.TH "down_read_trylock" 9 "February 2026" "mock_tests" "Kernel API Manual"
|
|
.SH NAME
|
|
down_read_trylock \- trylock for reading
|
|
.SH SYNOPSIS
|
|
.B "int" down_read_trylock
|
|
.BI "(struct rw_semaphore *sem " ");"
|
|
.SH ARGUMENTS
|
|
.IP "sem" 12
|
|
the semaphore to try to lock
|
|
.SH "RETURN"
|
|
1 if successful, 0 if contention
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR
|
|
rst: |
|
|
.. c:function:: int down_read_trylock (struct rw_semaphore *sem)
|
|
|
|
trylock for reading
|
|
|
|
.. container:: kernelindent
|
|
|
|
**Parameters**
|
|
|
|
``struct rw_semaphore *sem``
|
|
the semaphore to try to lock
|
|
|
|
**Return**
|
|
|
|
1 if successful, 0 if contention
|
|
- name: tomoyo_read_lock
|
|
description: mock_tests/kdoc-drop-ctx-lock.c line 236
|
|
fname: mock_tests/kdoc-drop-ctx-lock.c
|
|
source: |
|
|
/**
|
|
* tomoyo_read_lock - Take lock for protecting policy.
|
|
*
|
|
* Returns: index number for tomoyo_read_unlock().
|
|
*/
|
|
int tomoyo_read_lock(void)
|
|
__acquires_shared(&tomoyo_ss)
|
|
{
|
|
expected:
|
|
- man: |
|
|
.TH "tomoyo_read_lock" 9 "February 2026" "mock_tests" "Kernel API Manual"
|
|
.SH NAME
|
|
tomoyo_read_lock \- Take lock for protecting policy.
|
|
.SH SYNOPSIS
|
|
.B "int" tomoyo_read_lock
|
|
.BI "(void " ");"
|
|
.SH ARGUMENTS
|
|
.IP "void" 12
|
|
no arguments
|
|
.SH "RETURN"
|
|
index number for \fBtomoyo_read_unlock\fP.
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR
|
|
rst: |
|
|
.. c:function:: int tomoyo_read_lock (void)
|
|
|
|
Take lock for protecting policy.
|
|
|
|
.. container:: kernelindent
|
|
|
|
**Parameters**
|
|
|
|
``void``
|
|
no arguments
|
|
|
|
**Return**
|
|
|
|
index number for tomoyo_read_unlock().
|
|
- name: tomoyo_read_unlock
|
|
description: mock_tests/kdoc-drop-ctx-lock.c line 247
|
|
fname: mock_tests/kdoc-drop-ctx-lock.c
|
|
source: |
|
|
/**
|
|
* tomoyo_read_unlock - Release lock for protecting policy.
|
|
*
|
|
* @idx: Index number returned by tomoyo_read_lock().
|
|
*/
|
|
void tomoyo_read_unlock(int idx)
|
|
__releases_shared(&tomoyo_ss)
|
|
{ }
|
|
expected:
|
|
- man: |
|
|
.TH "tomoyo_read_unlock" 9 "February 2026" "mock_tests" "Kernel API Manual"
|
|
.SH NAME
|
|
tomoyo_read_unlock \- Release lock for protecting policy.
|
|
.SH SYNOPSIS
|
|
.B "void" tomoyo_read_unlock
|
|
.BI "(int idx " ");"
|
|
.SH ARGUMENTS
|
|
.IP "idx" 12
|
|
Index number returned by \fBtomoyo_read_lock\fP.
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR
|
|
rst: |
|
|
.. c:function:: void tomoyo_read_unlock (int idx)
|
|
|
|
Release lock for protecting policy.
|
|
|
|
.. container:: kernelindent
|
|
|
|
**Parameters**
|
|
|
|
``int idx``
|
|
Index number returned by tomoyo_read_lock().
|
|
- name: c_stop
|
|
description: mock_tests/kdoc-drop-ctx-lock.c line 256
|
|
fname: mock_tests/kdoc-drop-ctx-lock.c
|
|
source: |
|
|
/**
|
|
* c_stop - stop the seq_file iteration
|
|
* @m: the &struct seq_file
|
|
* @p: handle
|
|
*/
|
|
void c_stop(struct seq_file *m, void *p)
|
|
__releases_shared(&crypto_alg_sem)
|
|
{ }
|
|
expected:
|
|
- man: |
|
|
.TH "c_stop" 9 "February 2026" "mock_tests" "Kernel API Manual"
|
|
.SH NAME
|
|
c_stop \- stop the seq_file iteration
|
|
.SH SYNOPSIS
|
|
.B "void" c_stop
|
|
.BI "(struct seq_file *m " ","
|
|
.BI "void *p " ");"
|
|
.SH ARGUMENTS
|
|
.IP "m" 12
|
|
the \fIstruct seq_file\fP
|
|
.IP "p" 12
|
|
handle
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR
|
|
rst: |
|
|
.. c:function:: void c_stop (struct seq_file *m, void *p)
|
|
|
|
stop the seq_file iteration
|
|
|
|
.. container:: kernelindent
|
|
|
|
**Parameters**
|
|
|
|
``struct seq_file *m``
|
|
the :c:type:`struct seq_file <seq_file>`
|
|
|
|
``void *p``
|
|
handle
|
|
- name: spin_lock
|
|
description: mock_tests/kdoc-drop-ctx-lock.c line 265
|
|
fname: mock_tests/kdoc-drop-ctx-lock.c
|
|
source: |
|
|
/**
|
|
* spin_lock - spin until the @lock is acquired
|
|
* @lock: the spinlock
|
|
*/
|
|
void spin_lock(spinlock_t *lock)
|
|
__acquires(lock) __no_context_analysis
|
|
{ }
|
|
expected:
|
|
- man: |
|
|
.TH "spin_lock" 9 "February 2026" "mock_tests" "Kernel API Manual"
|
|
.SH NAME
|
|
spin_lock \- spin until the @lock is acquired
|
|
.SH SYNOPSIS
|
|
.B "void" spin_lock
|
|
.BI "(spinlock_t *lock " ");"
|
|
.SH ARGUMENTS
|
|
.IP "lock" 12
|
|
the spinlock
|
|
.SH "SEE ALSO"
|
|
.PP
|
|
Kernel file \fBmock_tests/kdoc-drop-ctx-lock.c\fR
|
|
rst: |
|
|
.. c:function:: void spin_lock (spinlock_t *lock)
|
|
|
|
spin until the **lock** is acquired
|
|
|
|
.. container:: kernelindent
|
|
|
|
**Parameters**
|
|
|
|
``spinlock_t *lock``
|
|
the spinlock
|