xref: /linux/include/uapi/linux/nsm.h (revision f0b7a0d1d46625db5b0e631c05ae96d78eda6c70)
1*b9873755SAlexander Graf /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2*b9873755SAlexander Graf /*
3*b9873755SAlexander Graf  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
4*b9873755SAlexander Graf  */
5*b9873755SAlexander Graf 
6*b9873755SAlexander Graf #ifndef __UAPI_LINUX_NSM_H
7*b9873755SAlexander Graf #define __UAPI_LINUX_NSM_H
8*b9873755SAlexander Graf 
9*b9873755SAlexander Graf #include <linux/ioctl.h>
10*b9873755SAlexander Graf #include <linux/types.h>
11*b9873755SAlexander Graf 
12*b9873755SAlexander Graf #define NSM_MAGIC		0x0A
13*b9873755SAlexander Graf 
14*b9873755SAlexander Graf #define NSM_REQUEST_MAX_SIZE	0x1000
15*b9873755SAlexander Graf #define NSM_RESPONSE_MAX_SIZE	0x3000
16*b9873755SAlexander Graf 
17*b9873755SAlexander Graf struct nsm_iovec {
18*b9873755SAlexander Graf 	__u64 addr; /* Virtual address of target buffer */
19*b9873755SAlexander Graf 	__u64 len;  /* Length of target buffer */
20*b9873755SAlexander Graf };
21*b9873755SAlexander Graf 
22*b9873755SAlexander Graf /* Raw NSM message. Only available with CAP_SYS_ADMIN. */
23*b9873755SAlexander Graf struct nsm_raw {
24*b9873755SAlexander Graf 	/* Request from user */
25*b9873755SAlexander Graf 	struct nsm_iovec request;
26*b9873755SAlexander Graf 	/* Response to user */
27*b9873755SAlexander Graf 	struct nsm_iovec response;
28*b9873755SAlexander Graf };
29*b9873755SAlexander Graf #define NSM_IOCTL_RAW		_IOWR(NSM_MAGIC, 0x0, struct nsm_raw)
30*b9873755SAlexander Graf 
31*b9873755SAlexander Graf #endif /* __UAPI_LINUX_NSM_H */
32