@@ -39,6 +39,14 @@ DIAG_IOCSREG.
This command takes a packed struct user_reg as an argument::
+ enum user_reg_flag {
+ /* Event will not delete upon last reference closing */
+ USER_EVENT_REG_PERSIST = 1U << 0,
+
+ /* This value or above is currently non-ABI */
+ USER_EVENT_REG_MAX = 1U << 1,
+ };
+
struct user_reg {
/* Input: Size of the user_reg structure being used */
__u32 size;
@@ -49,7 +57,7 @@ This command takes a packed struct user_reg as an argument::
/* Input: Enable size in bytes at address */
__u8 enable_size;
- /* Input: Flags for future use, set to 0 */
+ /* Input: Flags can be any of the above user_reg_flag values */
__u16 flags;
/* Input: Address to update when enabled */
@@ -73,10 +81,13 @@ The struct user_reg requires all the above inputs to be set appropriately.
This must be 4 (32-bit) or 8 (64-bit). 64-bit values are only allowed to be
used on 64-bit kernels, however, 32-bit can be used on all kernels.
-+ flags: The flags to use, if any. For the initial version this must be 0.
- Callers should first attempt to use flags and retry without flags to ensure
- support for lower versions of the kernel. If a flag is not supported -EINVAL
- is returned.
++ flags: The flags to use, if any. Callers should first attempt to use flags
+ and retry without flags to ensure support for lower versions of the kernel.
+ If a flag is not supported -EINVAL is returned.
+
+ **USER_EVENT_REG_PERSIST**
+ When the last reference is closed for the event, the event will continue
+ to exist until a delete IOCTL is issued by a user.
+ enable_addr: The address of the value to use to reflect event status. This
must be naturally aligned and write accessible within the user program.
There is now a flag for user_events to use when registering events to have events continue to exist upon the last reference put. Add the new flag, USER_EVENT_REG_PERSIST, to user_events documentation files to let people know when to use it. Signed-off-by: Beau Belgrave <beaub@linux.microsoft.com> --- Documentation/trace/user_events.rst | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-)