1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2 /* Copyright(c) Advanced Micro Devices, Inc */
3 
4 /*
5  * fwctl interface info for pds_fwctl
6  */
7 
8 #ifndef _UAPI_FWCTL_PDS_H_
9 #define _UAPI_FWCTL_PDS_H_
10 
11 #include <linux/types.h>
12 
13 /**
14  * struct fwctl_info_pds
15  * @uctx_caps:  bitmap of firmware capabilities
16  *
17  * Return basic information about the FW interface available.
18  */
19 struct fwctl_info_pds {
20 	__u32 uctx_caps;
21 };
22 
23 /**
24  * enum pds_fwctl_capabilities
25  * @PDS_FWCTL_QUERY_CAP: firmware can be queried for information
26  * @PDS_FWCTL_SEND_CAP:  firmware can be sent commands
27  */
28 enum pds_fwctl_capabilities {
29 	PDS_FWCTL_QUERY_CAP = 0,
30 	PDS_FWCTL_SEND_CAP,
31 };
32 
33 /**
34  * struct fwctl_rpc_pds
35  * @in.op:       requested operation code
36  * @in.ep:       firmware endpoint to operate on
37  * @in.rsvd:     reserved
38  * @in.len:      length of payload data
39  * @in.payload:  address of payload buffer
40  * @in:          rpc in parameters
41  * @out.retval:  operation result value
42  * @out.rsvd:    reserved
43  * @out.len:     length of result data buffer
44  * @out.payload: address of payload data buffer
45  * @out:         rpc out parameters
46  */
47 struct fwctl_rpc_pds {
48 	struct {
49 		__u32 op;
50 		__u32 ep;
51 		__u32 rsvd;
52 		__u32 len;
53 		__aligned_u64 payload;
54 	} in;
55 	struct {
56 		__u32 retval;
57 		__u32 rsvd[2];
58 		__u32 len;
59 		__aligned_u64 payload;
60 	} out;
61 };
62 #endif /* _UAPI_FWCTL_PDS_H_ */
63