summaryrefslogtreecommitdiff
path: root/Documentation/ABI/testing/sysfs-uevent
blob: aa39f8d7bcdff3c7b789e69752ec65a30bff7cc9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
What:           /sys/.../uevent
Date:           May 2017
KernelVersion:  4.13
Contact:        Linux kernel mailing list <linux-kernel@vger.kernel.org>
Description:
                Enable passing additional variables for synthetic uevents that
                are generated by writing /sys/.../uevent file.

                Recognized extended format is ACTION [UUID [KEY=VALUE ...].

                The ACTION is compulsory - it is the name of the uevent action
                ("add", "change", "remove"). There is no change compared to
                previous functionality here. The rest of the extended format
                is optional.

                You need to pass UUID first before any KEY=VALUE pairs.
                The UUID must be in "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
                format where 'x' is a hex digit. The UUID is considered to be
                a transaction identifier so it's possible to use the same UUID
                value for one or more synthetic uevents in which case we
                logically group these uevents together for any userspace
                listeners. The UUID value appears in uevent as
                "SYNTH_UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" environment
                variable.

                If UUID is not passed in, the generated synthetic uevent gains
                "SYNTH_UUID=0" environment variable automatically.

                The KEY=VALUE pairs can contain alphanumeric characters only.
                It's possible to define zero or more pairs - each pair is then
                delimited by a space character ' '. Each pair appears in
                synthetic uevent as "SYNTH_ARG_KEY=VALUE". That means the KEY
                name gains "SYNTH_ARG_" prefix to avoid possible collisions
                with existing variables.

                Example of valid sequence written to the uevent file:

                    add fe4d7c9d-b8c6-4a70-9ef1-3d8a58d18eed A=1 B=abc

                This generates synthetic uevent including these variables:

                    ACTION=add
                    SYNTH_ARG_A=1
                    SYNTH_ARG_B=abc
                    SYNTH_UUID=fe4d7c9d-b8c6-4a70-9ef1-3d8a58d18eed
Users:
                udev, userspace tools generating synthetic uevents