~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/netlink/genetlink-c.yaml

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/netlink/genetlink-c.yaml (Architecture alpha) and /Documentation/netlink/genetlink-c.yaml (Architecture mips)


  1 # SPDX-License-Identifier: ((GPL-2.0 WITH Linu      1 # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
  2 %YAML 1.2                                           2 %YAML 1.2
  3 ---                                                 3 ---
  4 $id: http://kernel.org/schemas/netlink/genetli      4 $id: http://kernel.org/schemas/netlink/genetlink-c.yaml#
  5 $schema: https://json-schema.org/draft-07/sche      5 $schema: https://json-schema.org/draft-07/schema
  6                                                     6 
  7 # Common defines                                    7 # Common defines
  8 $defs:                                              8 $defs:
  9   uint:                                             9   uint:
 10     type: integer                                  10     type: integer
 11     minimum: 0                                     11     minimum: 0
 12   len-or-define:                                   12   len-or-define:
 13     type: [ string, integer ]                      13     type: [ string, integer ]
 14     pattern: ^[0-9A-Za-z_-]+( - 1)?$               14     pattern: ^[0-9A-Za-z_-]+( - 1)?$
 15     minimum: 0                                     15     minimum: 0
 16   len-or-limit:                                    16   len-or-limit:
 17     # literal int or limit based on fixed-widt     17     # literal int or limit based on fixed-width type e.g. u8-min, u16-max, etc.
 18     type: [ string, integer ]                      18     type: [ string, integer ]
 19     pattern: ^[su](8|16|32|64)-(min|max)$          19     pattern: ^[su](8|16|32|64)-(min|max)$
 20     minimum: 0                                     20     minimum: 0
 21                                                    21 
 22 # Schema for specs                                 22 # Schema for specs
 23 title: Protocol                                    23 title: Protocol
 24 description: Specification of a genetlink prot     24 description: Specification of a genetlink protocol
 25 type: object                                       25 type: object
 26 required: [ name, doc, attribute-sets, operati     26 required: [ name, doc, attribute-sets, operations ]
 27 additionalProperties: False                        27 additionalProperties: False
 28 properties:                                        28 properties:
 29   name:                                            29   name:
 30     description: Name of the genetlink family.     30     description: Name of the genetlink family.
 31     type: string                                   31     type: string
 32   doc:                                             32   doc:
 33     type: string                                   33     type: string
 34   protocol:                                        34   protocol:
 35     description: Schema compatibility level. D     35     description: Schema compatibility level. Default is "genetlink".
 36     enum: [ genetlink, genetlink-c ]               36     enum: [ genetlink, genetlink-c ]
 37   uapi-header:                                     37   uapi-header:
 38     description: Path to the uAPI header, defa     38     description: Path to the uAPI header, default is linux/${family-name}.h
 39     type: string                                   39     type: string
 40   # Start genetlink-c                              40   # Start genetlink-c
 41   c-family-name:                                   41   c-family-name:
 42     description: Name of the define for the fa     42     description: Name of the define for the family name.
 43     type: string                                   43     type: string
 44   c-version-name:                                  44   c-version-name:
 45     description: Name of the define for the ve     45     description: Name of the define for the version of the family.
 46     type: string                                   46     type: string
 47   max-by-define:                                   47   max-by-define:
 48     description: Makes the number of attribute     48     description: Makes the number of attributes and commands be specified by a define, not an enum value.
 49     type: boolean                                  49     type: boolean
 50   cmd-max-name:                                    50   cmd-max-name:
 51     description: Name of the define for the la     51     description: Name of the define for the last operation in the list.
 52     type: string                                   52     type: string
 53   cmd-cnt-name:                                    53   cmd-cnt-name:
 54     description: The explicit name for constan     54     description: The explicit name for constant holding the count of operations (last operation + 1).
 55     type: string                                   55     type: string
 56   # End genetlink-c                                56   # End genetlink-c
 57                                                    57 
 58   definitions:                                     58   definitions:
 59     description: List of type and constant def     59     description: List of type and constant definitions (enums, flags, defines).
 60     type: array                                    60     type: array
 61     items:                                         61     items:
 62       type: object                                 62       type: object
 63       required: [ type, name ]                     63       required: [ type, name ]
 64       additionalProperties: False                  64       additionalProperties: False
 65       properties:                                  65       properties:
 66         name:                                      66         name:
 67           type: string                             67           type: string
 68         header:                                    68         header:
 69           description: For C-compatible langua     69           description: For C-compatible languages, header which already defines this value.
 70           type: string                             70           type: string
 71         type:                                      71         type:
 72           enum: [ const, enum, flags ]             72           enum: [ const, enum, flags ]
 73         doc:                                       73         doc:
 74           type: string                             74           type: string
 75         # For const                                75         # For const
 76         value:                                     76         value:
 77           description: For const - the value.      77           description: For const - the value.
 78           type: [ string, integer ]                78           type: [ string, integer ]
 79         # For enum and flags                       79         # For enum and flags
 80         value-start:                               80         value-start:
 81           description: For enum or flags the l     81           description: For enum or flags the literal initializer for the first value.
 82           type: [ string, integer ]                82           type: [ string, integer ]
 83         entries:                                   83         entries:
 84           description: For enum or flags array     84           description: For enum or flags array of values.
 85           type: array                              85           type: array
 86           items:                                   86           items:
 87             oneOf:                                 87             oneOf:
 88               - type: string                       88               - type: string
 89               - type: object                       89               - type: object
 90                 required: [ name ]                 90                 required: [ name ]
 91                 additionalProperties: False        91                 additionalProperties: False
 92                 properties:                        92                 properties:
 93                   name:                            93                   name:
 94                     type: string                   94                     type: string
 95                   value:                           95                   value:
 96                     type: integer                  96                     type: integer
 97                   doc:                             97                   doc:
 98                     type: string                   98                     type: string
 99         render-max:                                99         render-max:
100           description: Render the max members     100           description: Render the max members for this enum.
101           type: boolean                           101           type: boolean
102         # Start genetlink-c                       102         # Start genetlink-c
103         enum-name:                                103         enum-name:
104           description: Name for enum, if empty    104           description: Name for enum, if empty no name will be used.
105           type: [ string, "null" ]                105           type: [ string, "null" ]
106         name-prefix:                              106         name-prefix:
107           description: For enum the prefix of     107           description: For enum the prefix of the values, optional.
108           type: string                            108           type: string
109         # End genetlink-c                         109         # End genetlink-c
110                                                   110 
111   attribute-sets:                                 111   attribute-sets:
112     description: Definition of attribute space    112     description: Definition of attribute spaces for this family.
113     type: array                                   113     type: array
114     items:                                        114     items:
115       description: Definition of a single attr    115       description: Definition of a single attribute space.
116       type: object                                116       type: object
117       required: [ name, attributes ]              117       required: [ name, attributes ]
118       additionalProperties: False                 118       additionalProperties: False
119       properties:                                 119       properties:
120         name:                                     120         name:
121           description: |                          121           description: |
122             Name used when referring to this s    122             Name used when referring to this space in other definitions, not used outside of the spec.
123           type: string                            123           type: string
124         name-prefix:                              124         name-prefix:
125           description: |                          125           description: |
126             Prefix for the C enum name of the     126             Prefix for the C enum name of the attributes. Default family[name]-set[name]-a-
127           type: string                            127           type: string
128         enum-name:                                128         enum-name:
129           description: |                          129           description: |
130             Name for the enum type of the attr    130             Name for the enum type of the attribute, if empty no name will be used.
131           type: [ string, "null" ]                131           type: [ string, "null" ]
132         doc:                                      132         doc:
133           description: Documentation of the sp    133           description: Documentation of the space.
134           type: string                            134           type: string
135         subset-of:                                135         subset-of:
136           description: |                          136           description: |
137             Name of another space which this i    137             Name of another space which this is a logical part of. Sub-spaces can be used to define
138             a limited group of attributes whic    138             a limited group of attributes which are used in a nest.
139           type: string                            139           type: string
140         # Start genetlink-c                       140         # Start genetlink-c
141         attr-cnt-name:                            141         attr-cnt-name:
142           description: The explicit name for c    142           description: The explicit name for constant holding the count of attributes (last attr + 1).
143           type: string                            143           type: string
144         attr-max-name:                            144         attr-max-name:
145           description: The explicit name for l    145           description: The explicit name for last member of attribute enum.
146           type: string                            146           type: string
147         # End genetlink-c                         147         # End genetlink-c
148         attributes:                               148         attributes:
149           description: List of attributes in t    149           description: List of attributes in the space.
150           type: array                             150           type: array
151           items:                                  151           items:
152             type: object                          152             type: object
153             required: [ name ]                    153             required: [ name ]
154             additionalProperties: False           154             additionalProperties: False
155             properties:                           155             properties:
156               name:                               156               name:
157                 type: string                      157                 type: string
158               type: &attr-type                    158               type: &attr-type
159                 enum: [ unused, pad, flag, bin    159                 enum: [ unused, pad, flag, binary,
160                         uint, sint, u8, u16, u    160                         uint, sint, u8, u16, u32, u64, s32, s64,
161                         string, nest, indexed-    161                         string, nest, indexed-array, nest-type-value ]
162               doc:                                162               doc:
163                 description: Documentation of     163                 description: Documentation of the attribute.
164                 type: string                      164                 type: string
165               value:                              165               value:
166                 description: Value for the enu    166                 description: Value for the enum item representing this attribute in the uAPI.
167                 $ref: '#/$defs/uint'              167                 $ref: '#/$defs/uint'
168               type-value:                         168               type-value:
169                 description: Name of the value    169                 description: Name of the value extracted from the type of a nest-type-value attribute.
170                 type: array                       170                 type: array
171                 items:                            171                 items:
172                   type: string                    172                   type: string
173               byte-order:                         173               byte-order:
174                 enum: [ little-endian, big-end    174                 enum: [ little-endian, big-endian ]
175               multi-attr:                         175               multi-attr:
176                 type: boolean                     176                 type: boolean
177               nested-attributes:                  177               nested-attributes:
178                 description: Name of the space    178                 description: Name of the space (sub-space) used inside the attribute.
179                 type: string                      179                 type: string
180               enum:                               180               enum:
181                 description: Name of the enum     181                 description: Name of the enum type used for the attribute.
182                 type: string                      182                 type: string
183               enum-as-flags:                      183               enum-as-flags:
184                 description: |                    184                 description: |
185                   Treat the enum as flags. In     185                   Treat the enum as flags. In most cases enum is either used as flags or as values.
186                   Sometimes, however, both for    186                   Sometimes, however, both forms are necessary, in which case header contains the enum
187                   form while specific attribut    187                   form while specific attributes may request to convert the values into a bitfield.
188                 type: boolean                     188                 type: boolean
189               checks:                             189               checks:
190                 description: Kernel input vali    190                 description: Kernel input validation.
191                 type: object                      191                 type: object
192                 additionalProperties: False       192                 additionalProperties: False
193                 properties:                       193                 properties:
194                   flags-mask:                     194                   flags-mask:
195                     description: Name of the f    195                     description: Name of the flags constant on which to base mask (unsigned scalar types only).
196                     type: string                  196                     type: string
197                   min:                            197                   min:
198                     description: Min value for    198                     description: Min value for an integer attribute.
199                     $ref: '#/$defs/len-or-limi    199                     $ref: '#/$defs/len-or-limit'
200                   max:                            200                   max:
201                     description: Max value for    201                     description: Max value for an integer attribute.
202                     $ref: '#/$defs/len-or-limi    202                     $ref: '#/$defs/len-or-limit'
203                   min-len:                        203                   min-len:
204                     description: Min length fo    204                     description: Min length for a binary attribute.
205                     $ref: '#/$defs/len-or-defi    205                     $ref: '#/$defs/len-or-define'
206                   max-len:                        206                   max-len:
207                     description: Max length fo    207                     description: Max length for a string or a binary attribute.
208                     $ref: '#/$defs/len-or-defi    208                     $ref: '#/$defs/len-or-define'
209                   exact-len:                      209                   exact-len:
210                     description: Exact length     210                     description: Exact length for a string or a binary attribute.
211                     $ref: '#/$defs/len-or-defi    211                     $ref: '#/$defs/len-or-define'
212                   unterminated-ok:                212                   unterminated-ok:
213                     description: |                213                     description: |
214                       For string attributes, d    214                       For string attributes, do not check whether attribute
215                       contains the terminating    215                       contains the terminating null character.
216                     type: boolean                 216                     type: boolean
217               sub-type: *attr-type                217               sub-type: *attr-type
218               display-hint: &display-hint         218               display-hint: &display-hint
219                 description: |                    219                 description: |
220                   Optional format indicator th    220                   Optional format indicator that is intended only for choosing
221                   the right formatting mechani    221                   the right formatting mechanism when displaying values of this
222                   type.                           222                   type.
223                 enum: [ hex, mac, fddi, ipv4,     223                 enum: [ hex, mac, fddi, ipv4, ipv6, uuid ]
224               # Start genetlink-c                 224               # Start genetlink-c
225               name-prefix:                        225               name-prefix:
226                 type: string                      226                 type: string
227               # End genetlink-c                   227               # End genetlink-c
228                                                   228 
229       # Make sure name-prefix does not appear     229       # Make sure name-prefix does not appear in subsets (subsets inherit naming)
230       dependencies:                               230       dependencies:
231         name-prefix:                              231         name-prefix:
232           not:                                    232           not:
233             required: [ subset-of ]               233             required: [ subset-of ]
234         subset-of:                                234         subset-of:
235           not:                                    235           not:
236             required: [ name-prefix ]             236             required: [ name-prefix ]
237                                                   237 
238       # type property is only required if not     238       # type property is only required if not in subset definition
239       if:                                         239       if:
240         properties:                               240         properties:
241           subset-of:                              241           subset-of:
242             not:                                  242             not:
243               type: string                        243               type: string
244       then:                                       244       then:
245         properties:                               245         properties:
246           attributes:                             246           attributes:
247             items:                                247             items:
248               required: [ type ]                  248               required: [ type ]
249                                                   249 
250   operations:                                     250   operations:
251     description: Operations supported by the p    251     description: Operations supported by the protocol.
252     type: object                                  252     type: object
253     required: [ list ]                            253     required: [ list ]
254     additionalProperties: False                   254     additionalProperties: False
255     properties:                                   255     properties:
256       enum-model:                                 256       enum-model:
257         description: |                            257         description: |
258           The model of assigning values to the    258           The model of assigning values to the operations.
259           "unified" is the recommended model w    259           "unified" is the recommended model where all message types belong
260           to a single enum.                       260           to a single enum.
261           "directional" has the messages sent     261           "directional" has the messages sent to the kernel and from the kernel
262           enumerated separately.                  262           enumerated separately.
263         enum: [ unified ]                         263         enum: [ unified ]
264       name-prefix:                                264       name-prefix:
265         description: |                            265         description: |
266           Prefix for the C enum name of the co    266           Prefix for the C enum name of the command. The name is formed by concatenating
267           the prefix with the upper case name     267           the prefix with the upper case name of the command, with dashes replaced by underscores.
268         type: string                              268         type: string
269       enum-name:                                  269       enum-name:
270         description: |                            270         description: |
271           Name for the enum type with commands    271           Name for the enum type with commands, if empty no name will be used.
272         type: [ string, "null" ]                  272         type: [ string, "null" ]
273       async-prefix:                               273       async-prefix:
274         description: Same as name-prefix but u    274         description: Same as name-prefix but used to render notifications and events to separate enum.
275         type: string                              275         type: string
276       async-enum:                                 276       async-enum:
277         description: |                            277         description: |
278           Name for the enum type with commands    278           Name for the enum type with commands, if empty no name will be used.
279         type: [ string, "null" ]                  279         type: [ string, "null" ]
280       list:                                       280       list:
281         description: List of commands             281         description: List of commands
282         type: array                               282         type: array
283         items:                                    283         items:
284           type: object                            284           type: object
285           additionalProperties: False             285           additionalProperties: False
286           required: [ name, doc ]                 286           required: [ name, doc ]
287           properties:                             287           properties:
288             name:                                 288             name:
289               description: Name of the operati    289               description: Name of the operation, also defining its C enum value in uAPI.
290               type: string                        290               type: string
291             doc:                                  291             doc:
292               description: Documentation for t    292               description: Documentation for the command.
293               type: string                        293               type: string
294             value:                                294             value:
295               description: Value for the enum     295               description: Value for the enum in the uAPI.
296               $ref: '#/$defs/uint'                296               $ref: '#/$defs/uint'
297             attribute-set:                        297             attribute-set:
298               description: |                      298               description: |
299                 Attribute space from which att    299                 Attribute space from which attributes directly in the requests and replies
300                 to this command are defined.      300                 to this command are defined.
301               type: string                        301               type: string
302             flags: &cmd_flags                     302             flags: &cmd_flags
303               description: Command flags.         303               description: Command flags.
304               type: array                         304               type: array
305               items:                              305               items:
306                 enum: [ admin-perm ]              306                 enum: [ admin-perm ]
307             dont-validate:                        307             dont-validate:
308               description: Kernel attribute va    308               description: Kernel attribute validation flags.
309               type: array                         309               type: array
310               items:                              310               items:
311                 enum: [ strict, dump, dump-str    311                 enum: [ strict, dump, dump-strict ]
312             config-cond:                          312             config-cond:
313               description: |                      313               description: |
314                 Name of the kernel config opti    314                 Name of the kernel config option gating the presence of
315                 the operation, without the 'CO    315                 the operation, without the 'CONFIG_' prefix.
316               type: string                        316               type: string
317             do: &subop-type                       317             do: &subop-type
318               description: Main command handle    318               description: Main command handler.
319               type: object                        319               type: object
320               additionalProperties: False         320               additionalProperties: False
321               properties:                         321               properties:
322                 request: &subop-attr-list         322                 request: &subop-attr-list
323                   description: Definition of t    323                   description: Definition of the request message for a given command.
324                   type: object                    324                   type: object
325                   additionalProperties: False     325                   additionalProperties: False
326                   properties:                     326                   properties:
327                     attributes:                   327                     attributes:
328                       description: |              328                       description: |
329                         Names of attributes fr    329                         Names of attributes from the attribute-set (not full attribute
330                         definitions, just name    330                         definitions, just names).
331                       type: array                 331                       type: array
332                       items:                      332                       items:
333                         type: string              333                         type: string
334                 reply: *subop-attr-list           334                 reply: *subop-attr-list
335                 pre:                              335                 pre:
336                   description: Hook for a func    336                   description: Hook for a function to run before the main callback (pre_doit or start).
337                   type: string                    337                   type: string
338                 post:                             338                 post:
339                   description: Hook for a func    339                   description: Hook for a function to run after the main callback (post_doit or done).
340                   type: string                    340                   type: string
341             dump: *subop-type                     341             dump: *subop-type
342             notify:                               342             notify:
343               description: Name of the command    343               description: Name of the command sharing the reply type with this notification.
344               type: string                        344               type: string
345             event:                                345             event:
346               type: object                        346               type: object
347               additionalProperties: False         347               additionalProperties: False
348               properties:                         348               properties:
349                 attributes:                       349                 attributes:
350                   description: Explicit list o    350                   description: Explicit list of the attributes for the notification.
351                   type: array                     351                   type: array
352                   items:                          352                   items:
353                     type: string                  353                     type: string
354             mcgrp:                                354             mcgrp:
355               description: Name of the multica    355               description: Name of the multicast group generating given notification.
356               type: string                        356               type: string
357   mcast-groups:                                   357   mcast-groups:
358     description: List of multicast groups.        358     description: List of multicast groups.
359     type: object                                  359     type: object
360     required: [ list ]                            360     required: [ list ]
361     additionalProperties: False                   361     additionalProperties: False
362     properties:                                   362     properties:
363       list:                                       363       list:
364         description: List of groups.              364         description: List of groups.
365         type: array                               365         type: array
366         items:                                    366         items:
367           type: object                            367           type: object
368           required: [ name ]                      368           required: [ name ]
369           additionalProperties: False             369           additionalProperties: False
370           properties:                             370           properties:
371             name:                                 371             name:
372               description: |                      372               description: |
373                 The name for the group, used t    373                 The name for the group, used to form the define and the value of the define.
374               type: string                        374               type: string
375             # Start genetlink-c                   375             # Start genetlink-c
376             c-define-name:                        376             c-define-name:
377               description: Override for the na    377               description: Override for the name of the define in C uAPI.
378               type: string                        378               type: string
379             # End genetlink-c                     379             # End genetlink-c
380             flags: *cmd_flags                     380             flags: *cmd_flags
381                                                   381 
382   kernel-family:                                  382   kernel-family:
383     description: Additional global attributes     383     description: Additional global attributes used for kernel C code generation.
384     type: object                                  384     type: object
385     additionalProperties: False                   385     additionalProperties: False
386     properties:                                   386     properties:
387       headers:                                    387       headers:
388         description: |                            388         description: |
389           List of extra headers which should b    389           List of extra headers which should be included in the source
390           of the generated code.                  390           of the generated code.
391         type: array                               391         type: array
392         items:                                    392         items:
393           type: string                            393           type: string
394       sock-priv:                                  394       sock-priv:
395         description: |                            395         description: |
396           Literal name of the type which is us    396           Literal name of the type which is used within the kernel
397           to store the socket state. The type     397           to store the socket state. The type / structure is internal
398           to the kernel, and is not defined in    398           to the kernel, and is not defined in the spec.
399         type: string                              399         type: string
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php