Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

docs: get rid of :c:type explicit declarations for structs

The :c:type:`foo` only works properly with structs before
Sphinx 3.x.

On Sphinx 3.x, structs should now be declared using the
.. c:struct, and referenced via :c:struct tag.

As we now have the automarkup.py macro, that automatically
convert:
struct foo

into cross-references, let's get rid of that, solving
several warnings when building docs with Sphinx 3.x.

Reviewed-by: André Almeida <andrealmeid@collabora.com> # blk-mq.rst
Reviewed-by: Takashi Iwai <tiwai@suse.de> # sound
Reviewed-by: Mike Rapoport <rppt@linux.ibm.com>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>

+86 -86
+4 -4
Documentation/block/blk-mq.rst
··· 63 63 ~~~~~~~~~~~~~~~~~~~~~~~ 64 64 65 65 The block IO subsystem adds requests in the software staging queues 66 - (represented by struct :c:type:`blk_mq_ctx`) in case that they weren't sent 66 + (represented by struct blk_mq_ctx) in case that they weren't sent 67 67 directly to the driver. A request is one or more BIOs. They arrived at the 68 - block layer through the data structure struct :c:type:`bio`. The block layer 69 - will then build a new structure from it, the struct :c:type:`request` that will 68 + block layer through the data structure struct bio. The block layer 69 + will then build a new structure from it, the struct request that will 70 70 be used to communicate with the device driver. Each queue has its own lock and 71 71 the number of queues is defined by a per-CPU or per-node basis. 72 72 ··· 102 102 Hardware dispatch queues 103 103 ~~~~~~~~~~~~~~~~~~~~~~~~ 104 104 105 - The hardware queue (represented by struct :c:type:`blk_mq_hw_ctx`) is a struct 105 + The hardware queue (represented by struct blk_mq_hw_ctx) is a struct 106 106 used by device drivers to map the device submission queues (or device DMA ring 107 107 buffer), and are the last step of the block layer submission code before the 108 108 low level device driver taking ownership of the request. To run this queue, the
+4 -4
Documentation/block/inline-encryption.rst
··· 52 52 Design 53 53 ====== 54 54 55 - We add a :c:type:`struct bio_crypt_ctx` to :c:type:`struct bio` that can 55 + We add a struct bio_crypt_ctx to struct bio that can 56 56 represent an encryption context, because we need to be able to pass this 57 57 encryption context from the upper layers (like the fs layer) to the 58 58 device driver to act upon. ··· 85 85 ================================================================= 86 86 87 87 We add a pointer to a ``bi_crypt_context`` and ``keyslot`` to 88 - :c:type:`struct request`. These will be referred to as the ``crypto fields`` 88 + struct request. These will be referred to as the ``crypto fields`` 89 89 for the request. This ``keyslot`` is the keyslot into which the 90 90 ``bi_crypt_context`` has been programmed in the KSM of the ``request_queue`` 91 91 that this request is being sent to. ··· 118 118 If a ``request queue``'s inline encryption hardware claimed to support the 119 119 encryption context specified with a bio, then it will not be handled by the 120 120 ``blk-crypto-fallback``. We will eventually reach a point in blk-mq when a 121 - :c:type:`struct request` needs to be allocated for that bio. At that point, 121 + struct request needs to be allocated for that bio. At that point, 122 122 blk-mq tries to program the encryption context into the ``request_queue``'s 123 123 keyslot_manager, and obtain a keyslot, which it stores in its newly added 124 124 ``keyslot`` field. This keyslot is released when the request is completed. ··· 188 188 The device driver also needs to tell the KSM how to actually manipulate the 189 189 IE hardware in the device to do things like programming the crypto key into 190 190 the IE hardware into a particular keyslot. All this is achieved through the 191 - :c:type:`struct blk_ksm_ll_ops` field in the KSM that the device driver 191 + struct blk_ksm_ll_ops field in the KSM that the device driver 192 192 must fill up after initing the ``blk_keyslot_manager``. 193 193 194 194 The KSM also handles runtime power management for the device when applicable
+2 -2
Documentation/driver-api/fpga/fpga-bridge.rst
··· 4 4 API to implement a new FPGA bridge 5 5 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 6 6 7 - * struct :c:type:`fpga_bridge` — The FPGA Bridge structure 8 - * struct :c:type:`fpga_bridge_ops` — Low level Bridge driver ops 7 + * struct fpga_bridge — The FPGA Bridge structure 8 + * struct fpga_bridge_ops — Low level Bridge driver ops 9 9 * devm_fpga_bridge_create() — Allocate and init a bridge struct 10 10 * fpga_bridge_register() — Register a bridge 11 11 * fpga_bridge_unregister() — Unregister a bridge
+2 -2
Documentation/driver-api/fpga/fpga-mgr.rst
··· 102 102 ---------------------------------------------- 103 103 104 104 * ``fpga_mgr_states`` — Values for :c:member:`fpga_manager->state`. 105 - * struct :c:type:`fpga_manager` — the FPGA manager struct 106 - * struct :c:type:`fpga_manager_ops` — Low level FPGA manager driver ops 105 + * struct fpga_manager — the FPGA manager struct 106 + * struct fpga_manager_ops — Low level FPGA manager driver ops 107 107 * devm_fpga_mgr_create() — Allocate and init a manager struct 108 108 * fpga_mgr_register() — Register an FPGA manager 109 109 * fpga_mgr_unregister() — Unregister an FPGA manager
+1 -1
Documentation/driver-api/fpga/fpga-region.rst
··· 45 45 API to add a new FPGA region 46 46 ---------------------------- 47 47 48 - * struct :c:type:`fpga_region` — The FPGA region struct 48 + * struct fpga_region — The FPGA region struct 49 49 * devm_fpga_region_create() — Allocate and init a region struct 50 50 * fpga_region_register() — Register an FPGA region 51 51 * fpga_region_unregister() — Unregister an FPGA region
+1 -1
Documentation/driver-api/iio/buffers.rst
··· 2 2 Buffers 3 3 ======= 4 4 5 - * struct :c:type:`iio_buffer` — general buffer structure 5 + * struct iio_buffer — general buffer structure 6 6 * :c:func:`iio_validate_scan_mask_onehot` — Validates that exactly one channel 7 7 is selected 8 8 * :c:func:`iio_buffer_get` — Grab a reference to the buffer
+3 -3
Documentation/driver-api/iio/core.rst
··· 10 10 Industrial I/O Devices 11 11 ---------------------- 12 12 13 - * struct :c:type:`iio_dev` - industrial I/O device 13 + * struct iio_dev - industrial I/O device 14 14 * iio_device_alloc() - allocate an :c:type:`iio_dev` from a driver 15 15 * iio_device_free() - free an :c:type:`iio_dev` from a driver 16 16 * iio_device_register() - register a device with the IIO subsystem ··· 66 66 IIO device channels 67 67 =================== 68 68 69 - struct :c:type:`iio_chan_spec` - specification of a single channel 69 + struct iio_chan_spec - specification of a single channel 70 70 71 71 An IIO device channel is a representation of a data channel. An IIO device can 72 72 have one or multiple channels. For example: ··· 77 77 * an accelerometer can have up to 3 channels representing acceleration on X, Y 78 78 and Z axes. 79 79 80 - An IIO channel is described by the struct :c:type:`iio_chan_spec`. 80 + An IIO channel is described by the struct iio_chan_spec. 81 81 A thermometer driver for the temperature sensor in the example above would 82 82 have to describe its channel as follows:: 83 83
+1 -1
Documentation/driver-api/iio/hw-consumer.rst
··· 8 8 :file:`drivers/iio/buffer/hw-consumer.c` 9 9 10 10 11 - * struct :c:type:`iio_hw_consumer` — Hardware consumer structure 11 + * struct iio_hw_consumer — Hardware consumer structure 12 12 * :c:func:`iio_hw_consumer_alloc` — Allocate IIO hardware consumer 13 13 * :c:func:`iio_hw_consumer_free` — Free IIO hardware consumer 14 14 * :c:func:`iio_hw_consumer_enable` — Enable IIO hardware consumer
+1 -1
Documentation/driver-api/iio/triggered-buffers.rst
··· 10 10 * :c:func:`iio_triggered_buffer_setup` — Setup triggered buffer and pollfunc 11 11 * :c:func:`iio_triggered_buffer_cleanup` — Free resources allocated by 12 12 :c:func:`iio_triggered_buffer_setup` 13 - * struct :c:type:`iio_buffer_setup_ops` — buffer setup related callbacks 13 + * struct iio_buffer_setup_ops — buffer setup related callbacks 14 14 15 15 A typical triggered buffer setup looks like this:: 16 16
+2 -2
Documentation/driver-api/iio/triggers.rst
··· 2 2 Triggers 3 3 ======== 4 4 5 - * struct :c:type:`iio_trigger` — industrial I/O trigger device 5 + * struct iio_trigger — industrial I/O trigger device 6 6 * :c:func:`devm_iio_trigger_alloc` — Resource-managed iio_trigger_alloc 7 7 * :c:func:`devm_iio_trigger_register` — Resource-managed iio_trigger_register 8 8 iio_trigger_unregister ··· 63 63 IIO trigger ops 64 64 =============== 65 65 66 - * struct :c:type:`iio_trigger_ops` — operations structure for an iio_trigger. 66 + * struct iio_trigger_ops — operations structure for an iio_trigger. 67 67 68 68 Notice that a trigger has a set of operations attached: 69 69
+2 -2
Documentation/driver-api/media/dtv-frontend.rst
··· 125 125 detect a channel, as defined at enum :c:func:`dvbfe_algo`. 126 126 127 127 The algorithm to be used is obtained via ``.get_frontend_algo``. If the driver 128 - doesn't fill its field at struct :c:type:`dvb_frontend_ops`, it will default to 128 + doesn't fill its field at struct dvb_frontend_ops, it will default to 129 129 ``DVBFE_ALGO_SW``, meaning that the dvb-core will do a zigzag when tuning, 130 130 e. g. it will try first to use the specified center frequency ``f``, 131 131 then, it will do ``f`` + |delta|, ``f`` - |delta|, ``f`` + 2 x |delta|, ··· 140 140 a third type (``DVBFE_ALGO_CUSTOM``), in order to allow the driver to 141 141 define its own hardware-assisted algorithm. Very few hardware need to 142 142 use it nowadays. Using ``DVBFE_ALGO_CUSTOM`` require to provide other 143 - function callbacks at struct :c:type:`dvb_frontend_ops`. 143 + function callbacks at struct dvb_frontend_ops. 144 144 145 145 Attaching frontend driver to the bridge driver 146 146 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+12 -12
Documentation/driver-api/media/mc-core.rst
··· 36 36 Media device 37 37 ^^^^^^^^^^^^ 38 38 39 - A media device is represented by a struct :c:type:`media_device` 39 + A media device is represented by a struct media_device 40 40 instance, defined in ``include/media/media-device.h``. 41 41 Allocation of the structure is handled by the media device driver, usually by 42 42 embedding the :c:type:`media_device` instance in a larger driver-specific ··· 49 49 Entities 50 50 ^^^^^^^^ 51 51 52 - Entities are represented by a struct :c:type:`media_entity` 52 + Entities are represented by a struct media_entity 53 53 instance, defined in ``include/media/media-entity.h``. The structure is usually 54 54 embedded into a higher-level structure, such as 55 55 :c:type:`v4l2_subdev` or :c:type:`video_device` ··· 67 67 ^^^^^^^^^^ 68 68 69 69 Interfaces are represented by a 70 - struct :c:type:`media_interface` instance, defined in 70 + struct media_interface instance, defined in 71 71 ``include/media/media-entity.h``. Currently, only one type of interface is 72 72 defined: a device node. Such interfaces are represented by a 73 - struct :c:type:`media_intf_devnode`. 73 + struct media_intf_devnode. 74 74 75 75 Drivers initialize and create device node interfaces by calling 76 76 :c:func:`media_devnode_create()` ··· 79 79 80 80 Pads 81 81 ^^^^ 82 - Pads are represented by a struct :c:type:`media_pad` instance, 82 + Pads are represented by a struct media_pad instance, 83 83 defined in ``include/media/media-entity.h``. Each entity stores its pads in 84 84 a pads array managed by the entity driver. Drivers usually embed the array in 85 85 a driver-specific structure. ··· 87 87 Pads are identified by their entity and their 0-based index in the pads 88 88 array. 89 89 90 - Both information are stored in the struct :c:type:`media_pad`, 91 - making the struct :c:type:`media_pad` pointer the canonical way 90 + Both information are stored in the struct media_pad, 91 + making the struct media_pad pointer the canonical way 92 92 to store and pass link references. 93 93 94 94 Pads have flags that describe the pad capabilities and state. ··· 104 104 Links 105 105 ^^^^^ 106 106 107 - Links are represented by a struct :c:type:`media_link` instance, 107 + Links are represented by a struct media_link instance, 108 108 defined in ``include/media/media-entity.h``. There are two types of links: 109 109 110 110 **1. pad to pad links**: ··· 187 187 188 188 Due to the wide differences between drivers regarding power management 189 189 needs, the media controller does not implement power management. However, 190 - the struct :c:type:`media_entity` includes a ``use_count`` 190 + the struct media_entity includes a ``use_count`` 191 191 field that media drivers 192 192 can use to track the number of users of every entity for power management 193 193 needs. ··· 213 213 The function will mark all entities connected to the given entity through 214 214 enabled links, either directly or indirectly, as streaming. 215 215 216 - The struct :c:type:`media_pipeline` instance pointed to by 216 + The struct media_pipeline instance pointed to by 217 217 the pipe argument will be stored in every entity in the pipeline. 218 - Drivers should embed the struct :c:type:`media_pipeline` 218 + Drivers should embed the struct media_pipeline 219 219 in higher-level pipeline structures and can then access the 220 - pipeline through the struct :c:type:`media_entity` 220 + pipeline through the struct media_entity 221 221 pipe field. 222 222 223 223 Calls to :c:func:`media_pipeline_start()` can be nested.
+1 -1
Documentation/driver-api/media/v4l2-controls.rst
··· 27 27 life as easy as possible for the driver developer. 28 28 29 29 Note that the control framework relies on the presence of a struct 30 - :c:type:`v4l2_device` for V4L2 drivers and struct :c:type:`v4l2_subdev` for 30 + :c:type:`v4l2_device` for V4L2 drivers and struct v4l2_subdev for 31 31 sub-device drivers. 32 32 33 33
+4 -4
Documentation/driver-api/media/v4l2-dev.rst
··· 67 67 file operation is called this lock will be taken by the core and released 68 68 afterwards. See the next section for more details. 69 69 70 - - :c:type:`video_device`->queue: a pointer to the struct :c:type:`vb2_queue` 70 + - :c:type:`video_device`->queue: a pointer to the struct vb2_queue 71 71 associated with this device node. 72 72 If queue is not ``NULL``, and queue->lock is not ``NULL``, then queue->lock 73 73 is used for the queuing ioctls (``VIDIOC_REQBUFS``, ``CREATE_BUFS``, ··· 81 81 82 82 - :c:type:`video_device`->prio: keeps track of the priorities. Used to 83 83 implement ``VIDIOC_G_PRIORITY`` and ``VIDIOC_S_PRIORITY``. 84 - If left to ``NULL``, then it will use the struct :c:type:`v4l2_prio_state` 84 + If left to ``NULL``, then it will use the struct v4l2_prio_state 85 85 in :c:type:`v4l2_device`. If you want to have a separate priority state per 86 86 (group of) device node(s), then you can point it to your own struct 87 87 :c:type:`v4l2_prio_state`. ··· 95 95 but it is used by both a raw video PCI device (cx8800) and a MPEG PCI device 96 96 (cx8802). Since the :c:type:`v4l2_device` cannot be associated with two PCI 97 97 devices at the same time it is setup without a parent device. But when the 98 - struct :c:type:`video_device` is initialized you **do** know which parent 98 + struct video_device is initialized you **do** know which parent 99 99 PCI device to use and so you set ``dev_device`` to the correct PCI device. 100 100 101 101 If you use :c:type:`v4l2_ioctl_ops`, then you should set ··· 138 138 ------------------ 139 139 140 140 The V4L core provides optional locking services. The main service is the 141 - lock field in struct :c:type:`video_device`, which is a pointer to a mutex. 141 + lock field in struct video_device, which is a pointer to a mutex. 142 142 If you set this pointer, then that will be used by unlocked_ioctl to 143 143 serialize all ioctls. 144 144
+3 -3
Documentation/driver-api/media/v4l2-device.rst
··· 3 3 V4L2 device instance 4 4 -------------------- 5 5 6 - Each device instance is represented by a struct :c:type:`v4l2_device`. 6 + Each device instance is represented by a struct v4l2_device. 7 7 Very simple devices can just allocate this struct, but most of the time you 8 8 would embed this struct inside a larger struct. 9 9 ··· 18 18 19 19 Drivers that want integration with the media device framework need to set 20 20 dev->driver_data manually to point to the driver-specific device structure 21 - that embed the struct :c:type:`v4l2_device` instance. This is achieved by a 21 + that embed the struct v4l2_device instance. This is achieved by a 22 22 ``dev_set_drvdata()`` call before registering the V4L2 device instance. 23 - They must also set the struct :c:type:`v4l2_device` mdev field to point to a 23 + They must also set the struct v4l2_device mdev field to point to a 24 24 properly initialized and registered :c:type:`media_device` instance. 25 25 26 26 If :c:type:`v4l2_dev <v4l2_device>`\ ->name is empty then it will be set to a
+5 -5
Documentation/driver-api/media/v4l2-event.rst
··· 44 44 45 45 So to summarize: 46 46 47 - - struct :c:type:`v4l2_fh` has two lists: one of the ``subscribed`` events, 47 + - struct v4l2_fh has two lists: one of the ``subscribed`` events, 48 48 and one of the ``available`` events. 49 49 50 - - struct :c:type:`v4l2_subscribed_event` has a ringbuffer of raised 50 + - struct v4l2_subscribed_event has a ringbuffer of raised 51 51 (pending) events of that particular type. 52 52 53 - - If struct :c:type:`v4l2_subscribed_event` is associated with a specific 53 + - If struct v4l2_subscribed_event is associated with a specific 54 54 object, then that object will have an internal list of 55 - struct :c:type:`v4l2_subscribed_event` so it knows who subscribed an 55 + struct v4l2_subscribed_event so it knows who subscribed an 56 56 event to that object. 57 57 58 - Furthermore, the internal struct :c:type:`v4l2_subscribed_event` has 58 + Furthermore, the internal struct v4l2_subscribed_event has 59 59 ``merge()`` and ``replace()`` callbacks which drivers can set. These 60 60 callbacks are called when a new event is raised and there is no more room. 61 61
+8 -8
Documentation/driver-api/media/v4l2-fh.rst
··· 3 3 V4L2 File handlers 4 4 ------------------ 5 5 6 - struct :c:type:`v4l2_fh` provides a way to easily keep file handle specific 6 + struct v4l2_fh provides a way to easily keep file handle specific 7 7 data that is used by the V4L2 framework. 8 8 9 9 .. attention:: 10 - New drivers must use struct :c:type:`v4l2_fh` 10 + New drivers must use struct v4l2_fh 11 11 since it is also used to implement priority handling 12 12 (:ref:`VIDIOC_G_PRIORITY`). 13 13 ··· 16 16 by testing the ``V4L2_FL_USES_V4L2_FH`` bit in :c:type:`video_device`->flags. 17 17 This bit is set whenever :c:func:`v4l2_fh_init` is called. 18 18 19 - struct :c:type:`v4l2_fh` is allocated as a part of the driver's own file handle 19 + struct v4l2_fh is allocated as a part of the driver's own file handle 20 20 structure and ``file->private_data`` is set to it in the driver's ``open()`` 21 21 function by the driver. 22 22 23 - In many cases the struct :c:type:`v4l2_fh` will be embedded in a larger 23 + In many cases the struct v4l2_fh will be embedded in a larger 24 24 structure. In that case you should call: 25 25 26 26 #) :c:func:`v4l2_fh_init` and :c:func:`v4l2_fh_add` in ``open()`` ··· 102 102 memory can be freed. 103 103 104 104 105 - If struct :c:type:`v4l2_fh` is not embedded, then you can use these helper functions: 105 + If struct v4l2_fh is not embedded, then you can use these helper functions: 106 106 107 107 :c:func:`v4l2_fh_open <v4l2_fh_open>` 108 108 (struct file \*filp) 109 109 110 - - This allocates a struct :c:type:`v4l2_fh`, initializes it and adds it to 111 - the struct :c:type:`video_device` associated with the file struct. 110 + - This allocates a struct v4l2_fh, initializes it and adds it to 111 + the struct video_device associated with the file struct. 112 112 113 113 :c:func:`v4l2_fh_release <v4l2_fh_release>` 114 114 (struct file \*filp) 115 115 116 - - This deletes it from the struct :c:type:`video_device` associated with the 116 + - This deletes it from the struct video_device associated with the 117 117 file struct, uninitialised the :c:type:`v4l2_fh` and frees it. 118 118 119 119 These two functions can be plugged into the v4l2_file_operation's ``open()``
+1 -1
Documentation/driver-api/media/v4l2-subdev.rst
··· 110 110 err = media_entity_pads_init(&sd->entity, npads, pads); 111 111 112 112 The pads array must have been previously initialized. There is no need to 113 - manually set the struct :c:type:`media_entity` function and name fields, but the 113 + manually set the struct media_entity function and name fields, but the 114 114 revision field must be initialized if needed. 115 115 116 116 A reference to the entity will be automatically acquired/released when the
+2 -2
Documentation/driver-api/regulator.rst
··· 116 116 allows error conditions to be reported to the core. 117 117 118 118 Registration should be triggered by explicit setup done by the platform, 119 - supplying a struct :c:type:`regulator_init_data` for the regulator 119 + supplying a struct regulator_init_data for the regulator 120 120 containing constraint and supply information. 121 121 122 122 Machine interface ··· 144 144 consumers are rated for. 145 145 146 146 This is done at driver registration time` by providing a 147 - struct :c:type:`regulation_constraints`. 147 + struct regulation_constraints. 148 148 149 149 The constraints may also specify an initial configuration for the 150 150 regulator in the constraints, which is particularly useful for use with
+1 -1
Documentation/driver-api/usb/URB.rst
··· 47 47 The URB structure 48 48 ================= 49 49 50 - Some of the fields in struct :c:type:`urb` are:: 50 + Some of the fields in struct urb are:: 51 51 52 52 struct urb 53 53 {
+5 -5
Documentation/driver-api/usb/gadget.rst
··· 176 176 177 177 Gadget drivers declare themselves through a struct 178 178 :c:type:`usb_gadget_driver`, which is responsible for most parts of enumeration 179 - for a struct :c:type:`usb_gadget`. The response to a set_configuration usually 180 - involves enabling one or more of the struct :c:type:`usb_ep` objects exposed by 181 - the gadget, and submitting one or more struct :c:type:`usb_request` buffers to 179 + for a struct usb_gadget. The response to a set_configuration usually 180 + involves enabling one or more of the struct usb_ep objects exposed by 181 + the gadget, and submitting one or more struct usb_request buffers to 182 182 transfer data. Understand those four data types, and their operations, 183 183 and you will understand how this API works. 184 184 ··· 339 339 necessarily sharing a given configuration). There is however an optional 340 340 framework which makes it easier to reuse and combine functions. 341 341 342 - Devices using this framework provide a struct :c:type:`usb_composite_driver`, 343 - which in turn provides one or more struct :c:type:`usb_configuration` 342 + Devices using this framework provide a struct usb_composite_driver, 343 + which in turn provides one or more struct usb_configuration 344 344 instances. Each such configuration includes at least one struct 345 345 :c:type:`usb_function`, which packages a user visible role such as "network 346 346 link" or "mass storage device". Management functions may also exist,
+1 -1
Documentation/driver-api/usb/hotplug.rst
··· 122 122 Most USB device drivers should pass these tables to the USB subsystem as 123 123 well as to the module management subsystem. Not all, though: some driver 124 124 frameworks connect using interfaces layered over USB, and so they won't 125 - need such a struct :c:type:`usb_driver`. 125 + need such a struct usb_driver. 126 126 127 127 Drivers that connect directly to the USB subsystem should be declared 128 128 something like this::
+1 -1
Documentation/filesystems/fsverity.rst
··· 84 84 -------------------- 85 85 86 86 The FS_IOC_ENABLE_VERITY ioctl enables fs-verity on a file. It takes 87 - in a pointer to a :c:type:`struct fsverity_enable_arg`, defined as 87 + in a pointer to a struct fsverity_enable_arg, defined as 88 88 follows:: 89 89 90 90 struct fsverity_enable_arg {
+11 -11
Documentation/sound/designs/tracepoints.rst
··· 34 34 interaction between applications and ALSA PCM core. Once decided, runtime of 35 35 the PCM substream keeps the parameters. 36 36 37 - The parameters are described in :c:type:`struct snd_pcm_hw_params`. This 37 + The parameters are described in struct snd_pcm_hw_params. This 38 38 structure includes several types of parameters. Applications set preferable 39 39 value to these parameters, then execute ioctl(2) with SNDRV_PCM_IOCTL_HW_REFINE 40 40 or SNDRV_PCM_IOCTL_HW_PARAMS. The former is used just for refining available 41 41 set of parameters. The latter is used for an actual decision of the parameters. 42 42 43 - The :c:type:`struct snd_pcm_hw_params` structure has below members: 43 + The struct snd_pcm_hw_params structure has below members: 44 44 45 45 ``flags`` 46 46 Configurable. ALSA PCM core and some drivers handle this flag to select 47 47 convenient parameters or change their behaviour. 48 48 ``masks`` 49 49 Configurable. This type of parameter is described in 50 - :c:type:`struct snd_mask` and represent mask values. As of PCM protocol 50 + struct snd_mask and represent mask values. As of PCM protocol 51 51 v2.0.13, three types are defined. 52 52 53 53 - SNDRV_PCM_HW_PARAM_ACCESS ··· 55 55 - SNDRV_PCM_HW_PARAM_SUBFORMAT 56 56 ``intervals`` 57 57 Configurable. This type of parameter is described in 58 - :c:type:`struct snd_interval` and represent values with a range. As of 58 + struct snd_interval and represent values with a range. As of 59 59 PCM protocol v2.0.13, twelve types are defined. 60 60 61 61 - SNDRV_PCM_HW_PARAM_SAMPLE_BITS ··· 78 78 are going to be changed. 79 79 ``cmask`` 80 80 Read-only. After returning from ioctl(2), buffer in user space for 81 - :c:type:`struct snd_pcm_hw_params` includes result of each operation. 81 + struct snd_pcm_hw_params includes result of each operation. 82 82 This mask represents which mask/interval parameter is actually changed. 83 83 ``info`` 84 84 Read-only. This represents hardware/driver capabilities as bit flags ··· 110 110 value to this parameter but some drivers intentionally set zero with 111 111 a care of hardware design or data transmission protocol. 112 112 113 - ALSA PCM core handles buffer of :c:type:`struct snd_pcm_hw_params` when 113 + ALSA PCM core handles buffer of struct snd_pcm_hw_params when 114 114 applications execute ioctl(2) with SNDRV_PCM_HW_REFINE or SNDRV_PCM_HW_PARAMS. 115 115 Parameters in the buffer are changed according to 116 - :c:type:`struct snd_pcm_hardware` and rules of constraints in the runtime. The 116 + struct snd_pcm_hardware and rules of constraints in the runtime. The 117 117 structure describes capabilities of handled hardware. The rules describes 118 118 dependencies on which a parameter is decided according to several parameters. 119 119 A rule has a callback function, and drivers can register arbitrary functions ··· 121 121 runtime as a default. 122 122 123 123 Each driver can join in the interaction as long as it prepared for two stuffs 124 - in a callback of :c:type:`struct snd_pcm_ops.open`. 124 + in a callback of struct snd_pcm_ops.open. 125 125 126 126 1. In the callback, drivers are expected to change a member of 127 - :c:type:`struct snd_pcm_hardware` type in the runtime, according to 127 + struct snd_pcm_hardware type in the runtime, according to 128 128 capacities of corresponding hardware. 129 129 2. In the same callback, drivers are also expected to register additional rules 130 130 of constraints into the runtime when several parameters have dependencies 131 131 due to hardware design. 132 132 133 133 The driver can refers to result of the interaction in a callback of 134 - :c:type:`struct snd_pcm_ops.hw_params`, however it should not change the 134 + struct snd_pcm_ops.hw_params, however it should not change the 135 135 content. 136 136 137 137 Tracepoints in this category are designed to trace changes of the ··· 163 163 type, the fields represent hexadecimal dump of content of the parameter. For 164 164 parameters of interval type, the fields represent values of each member of 165 165 ``empty``, ``integer``, ``openmin``, ``min``, ``max``, ``openmax`` in 166 - :c:type:`struct snd_interval` in this order. 166 + struct snd_interval in this order. 167 167 168 168 Tracepoints in drivers 169 169 ======================
+1 -1
Documentation/sphinx/parse-headers.pl
··· 110 110 ) { 111 111 my $s = $1; 112 112 113 - $structs{$s} = "struct :c:type:`$s`\\ "; 113 + $structs{$s} = "struct $s\\ "; 114 114 next; 115 115 } 116 116 }
+1 -1
Documentation/vm/ksm.rst
··· 26 26 27 27 If a KSM page is shared between less than ``max_page_sharing`` VMAs, 28 28 the node of the stable tree that represents such KSM page points to a 29 - list of :c:type:`struct rmap_item` and the ``page->mapping`` of the 29 + list of struct rmap_item and the ``page->mapping`` of the 30 30 KSM page points to the stable tree node. 31 31 32 32 When the sharing passes this threshold, KSM adds a second dimension to
+3 -3
Documentation/vm/memory-model.rst
··· 24 24 although it is still in use by several architectures. 25 25 26 26 All the memory models track the status of physical page frames using 27 - :c:type:`struct page` arranged in one or more arrays. 27 + struct page arranged in one or more arrays. 28 28 29 29 Regardless of the selected memory model, there exists one-to-one 30 30 mapping between the physical page frame number (PFN) and the ··· 111 111 the memory map for larger systems. 112 112 113 113 The SPARSEMEM model presents the physical memory as a collection of 114 - sections. A section is represented with :c:type:`struct mem_section` 114 + sections. A section is represented with struct mem_section 115 115 that contains `section_mem_map` that is, logically, a pointer to an 116 116 array of struct pages. However, it is stored with some other magic 117 117 that aids the sections management. The section size and maximal number ··· 172 172 173 173 The virtually mapped memory map allows storing `struct page` objects 174 174 for persistent memory devices in pre-allocated storage on those 175 - devices. This storage is represented with :c:type:`struct vmem_altmap` 175 + devices. This storage is represented with struct vmem_altmap 176 176 that is eventually passed to vmemmap_populate() through a long chain 177 177 of function calls. The vmemmap_populate() implementation may use the 178 178 `vmem_altmap` along with :c:func:`vmemmap_alloc_block_buf` helper to
+1 -1
mm/ksm.c
··· 81 81 * different KSM page copy of that content 82 82 * 83 83 * Internally, the regular nodes, "dups" and "chains" are represented 84 - * using the same :c:type:`struct stable_node` structure. 84 + * using the same struct stable_node structure. 85 85 * 86 86 * In addition to the stable tree, KSM uses a second data structure called the 87 87 * unstable tree: this tree holds pointers to pages which have been found to
+2 -2
mm/memblock.c
··· 48 48 * boot regardless of the possible restrictions and memory hot(un)plug; 49 49 * the ``physmem`` type is only available on some architectures. 50 50 * 51 - * Each region is represented by :c:type:`struct memblock_region` that 51 + * Each region is represented by struct memblock_region that 52 52 * defines the region extents, its attributes and NUMA node id on NUMA 53 53 * systems. Every memory type is described by the :c:type:`struct 54 54 * memblock_type` which contains an array of memory regions along with 55 55 * the allocator metadata. The "memory" and "reserved" types are nicely 56 - * wrapped with :c:type:`struct memblock`. This structure is statically 56 + * wrapped with struct memblock. This structure is statically 57 57 * initialized at build time. The region arrays are initially sized to 58 58 * %INIT_MEMBLOCK_REGIONS for "memory" and %INIT_MEMBLOCK_RESERVED_REGIONS 59 59 * for "reserved". The region array for "physmem" is initially sized to