Lines Matching +full:subset +full:- +full:of
1 # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
3 ---
4 $id: http://kernel.org/schemas/netlink/genetlink-legacy.yaml#
5 $schema: https://json-schema.org/draft-07/schema
12 len-or-define:
14 pattern: ^[0-9A-Za-z_-]+( - 1)?$
16 len-or-limit:
17 # literal int or limit based on fixed-width type e.g. u8-min, u16-max, etc.
19 pattern: ^[su](8|16|32|64)-(min|max)$
24 description: Specification of a genetlink protocol
26 required: [ name, doc, attribute-sets, operations ]
30 description: Name of the genetlink family.
36 enum: [ genetlink, genetlink-c, genetlink-legacy ] # Trim
37 uapi-header:
38 description: Path to the uAPI header, default is linux/${family-name}.h
40 # Start genetlink-c
41 c-family-name:
42 description: Name of the define for the family name.
44 c-version-name:
45 description: Name of the define for the version of the family.
47 max-by-define:
48 …description: Makes the number of attributes and commands be specified by a define, not an enum val…
50 cmd-max-name:
51 description: Name of the define for the last operation in the list.
53 cmd-cnt-name:
54 … description: The explicit name for constant holding the count of operations (last operation + 1).
56 # End genetlink-c
57 # Start genetlink-legacy
58 kernel-policy:
60 … Defines if the input policy in the kernel is global, per-operation, or split per operation type.
62 enum: [ split, per-op, global ]
67 # End genetlink-legacy
70 description: List of type and constant definitions (enums, flags, defines).
80 description: For C-compatible languages, header which already defines this value.
88 description: For const - the value.
91 value-start:
95 description: For enum or flags array of values.
99 - type: string
100 - type: object
110 render-max:
113 # Start genetlink-c
114 enum-name:
117 name-prefix:
118 description: For enum the prefix of the values, optional.
120 # End genetlink-c
121 # Start genetlink-legacy
123 description: List of struct members. Only scalars and strings members allowed.
136 $ref: '#/$defs/len-or-define'
137 byte-order:
138 enum: [ little-endian, big-endian ]
143 description: Name of the enum type used for the attribute.
145 display-hint: &display-hint
148 the right formatting mechanism when displaying values of this
151 # End genetlink-legacy
153 attribute-sets:
154 description: Definition of attribute spaces for this family.
157 description: Definition of a single attribute space.
164 … Name used when referring to this space in other definitions, not used outside of the spec.
166 name-prefix:
168 Prefix for the C enum name of the attributes. Default family[name]-set[name]-a-
170 enum-name:
172 Name for the enum type of the attribute, if empty no name will be used.
175 description: Documentation of the space.
177 subset-of:
179 Name of another space which this is a logical part of. Sub-spaces can be used to define
180 a limited group of attributes which are used in a nest.
182 # Start genetlink-c
183 attr-cnt-name:
184 … description: The explicit name for constant holding the count of attributes (last attr + 1).
186 attr-max-name:
187 description: The explicit name for last member of attribute enum.
189 # End genetlink-c
191 description: List of attributes in the space.
200 type: &attr-type
204 string, nest, indexed-array, nest-type-value ]
206 description: Documentation of the attribute.
211 type-value:
212 … description: Name of the value extracted from the type of a nest-type-value attribute.
216 byte-order:
217 enum: [ little-endian, big-endian ]
218 multi-attr:
220 nested-attributes:
221 description: Name of the space (sub-space) used inside the attribute.
224 description: Name of the enum type used for the attribute.
226 enum-as-flags:
237 flags-mask:
238 … description: Name of the flags constant on which to base mask (unsigned scalar types only).
242 $ref: '#/$defs/len-or-limit'
245 $ref: '#/$defs/len-or-limit'
246 min-len:
248 $ref: '#/$defs/len-or-define'
249 max-len:
251 $ref: '#/$defs/len-or-define'
252 exact-len:
254 $ref: '#/$defs/len-or-define'
255 unterminated-ok:
260 sub-type: *attr-type
261 display-hint: *display-hint
262 # Start genetlink-c
263 name-prefix:
265 # End genetlink-c
266 # Start genetlink-legacy
268 description: Name of the struct type used for the attribute.
270 # End genetlink-legacy
272 # Make sure name-prefix does not appear in subsets (subsets inherit naming)
274 name-prefix:
276 required: [ subset-of ]
277 subset-of:
279 required: [ name-prefix ]
281 # type property is only required if not in subset definition
284 subset-of:
299 enum-model:
301 The model of assigning values to the operations.
307 name-prefix:
309 Prefix for the C enum name of the command. The name is formed by concatenating
310 the prefix with the upper case name of the command, with dashes replaced by underscores.
312 enum-name:
316 async-prefix:
317 … description: Same as name-prefix but used to render notifications and events to separate enum.
319 async-enum:
323 # Start genetlink-legacy
324 fixed-header: &fixed-header
326 Name of the structure defining the optional fixed-length protocol
330 # End genetlink-legacy
332 description: List of commands
340 description: Name of the operation, also defining its C enum value in uAPI.
348 attribute-set:
357 enum: [ admin-perm, uns-admin-perm ]
358 dont-validate:
362 enum: [ strict, dump, dump-strict ]
363 config-cond:
365 Name of the kernel config option gating the presence of
368 # Start genetlink-legacy
369 fixed-header: *fixed-header
370 # End genetlink-legacy
371 do: &subop-type
376 request: &subop-attr-list
377 description: Definition of the request message for a given command.
383 Names of attributes from the attribute-set (not full attribute
388 # Start genetlink-legacy
391 ID of this message if value for request and response differ,
394 # End genetlink-legacy
395 reply: *subop-attr-list
402 dump: *subop-type
404 description: Name of the command sharing the reply type with this notification.
411 description: Explicit list of the attributes for the notification.
416 description: Name of the multicast group generating given notification.
418 mcast-groups:
419 description: List of multicast groups.
425 description: List of groups.
434 The name for the group, used to form the define and the value of the define.
436 # Start genetlink-c
437 c-define-name:
438 description: Override for the name of the define in C uAPI.
440 # End genetlink-c
443 kernel-family:
450 List of extra headers which should be included in the source
451 of the generated code.
455 sock-priv:
457 Literal name of the type which is used within the kernel