xref: /linux/Documentation/ABI/testing/sysfs-uevent (revision c532de5a67a70f8533d495f8f2aaa9a0491c3ad0)
1What:           /sys/.../uevent
2Date:           May 2017
3KernelVersion:  4.13
4Contact:        Linux kernel mailing list <linux-kernel@vger.kernel.org>
5Description:
6                Enable passing additional variables for synthetic uevents that
7                are generated by writing /sys/.../uevent file.
8
9                Recognized extended format is::
10
11			ACTION [UUID [KEY=VALUE ...]
12
13                The ACTION is compulsory - it is the name of the uevent
14                action (``add``, ``change``, ``remove``). There is no change
15                compared to previous functionality here. The rest of the
16                extended format is optional.
17
18                You need to pass UUID first before any KEY=VALUE pairs.
19                The UUID must be in ``xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx``
20                format where 'x' is a hex digit. The UUID is considered to be
21                a transaction identifier so it's possible to use the same UUID
22                value for one or more synthetic uevents in which case we
23                logically group these uevents together for any userspace
24                listeners. The UUID value appears in uevent as
25                ``SYNTH_UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`` environment
26                variable.
27
28                If UUID is not passed in, the generated synthetic uevent gains
29                ``SYNTH_UUID=0`` environment variable automatically.
30
31                The KEY=VALUE pairs can contain alphanumeric characters only.
32
33                It's possible to define zero or more pairs - each pair is then
34                delimited by a space character ' '. Each pair appears in
35                synthetic uevent as ``SYNTH_ARG_KEY=VALUE``. That means the KEY
36                name gains ``SYNTH_ARG_`` prefix to avoid possible collisions
37                with existing variables.
38
39                Example of valid sequence written to the uevent file::
40
41                    add fe4d7c9d-b8c6-4a70-9ef1-3d8a58d18eed A=1 B=abc
42
43                This generates synthetic uevent including these variables::
44
45                    ACTION=add
46                    SYNTH_ARG_A=1
47                    SYNTH_ARG_B=abc
48                    SYNTH_UUID=fe4d7c9d-b8c6-4a70-9ef1-3d8a58d18eed
49
50Users:
51                udev, userspace tools generating synthetic uevents
52