Merge drm-upstream/drm-next into drm-intel-next-queued
Need MST sideband message transaction to power up/down nodes. Signed-off-by: Jani Nikula <jani.nikula@intel.com>
This commit is contained in:
34
include/uapi/asm-generic/hugetlb_encode.h
Normal file
34
include/uapi/asm-generic/hugetlb_encode.h
Normal file
@@ -0,0 +1,34 @@
|
||||
#ifndef _ASM_GENERIC_HUGETLB_ENCODE_H_
|
||||
#define _ASM_GENERIC_HUGETLB_ENCODE_H_
|
||||
|
||||
/*
|
||||
* Several system calls take a flag to request "hugetlb" huge pages.
|
||||
* Without further specification, these system calls will use the
|
||||
* system's default huge page size. If a system supports multiple
|
||||
* huge page sizes, the desired huge page size can be specified in
|
||||
* bits [26:31] of the flag arguments. The value in these 6 bits
|
||||
* will encode the log2 of the huge page size.
|
||||
*
|
||||
* The following definitions are associated with this huge page size
|
||||
* encoding in flag arguments. System call specific header files
|
||||
* that use this encoding should include this file. They can then
|
||||
* provide definitions based on these with their own specific prefix.
|
||||
* for example:
|
||||
* #define MAP_HUGE_SHIFT HUGETLB_FLAG_ENCODE_SHIFT
|
||||
*/
|
||||
|
||||
#define HUGETLB_FLAG_ENCODE_SHIFT 26
|
||||
#define HUGETLB_FLAG_ENCODE_MASK 0x3f
|
||||
|
||||
#define HUGETLB_FLAG_ENCODE_64KB (16 << HUGETLB_FLAG_ENCODE_SHIFT)
|
||||
#define HUGETLB_FLAG_ENCODE_512KB (19 << HUGETLB_FLAG_ENCODE_SHIFT)
|
||||
#define HUGETLB_FLAG_ENCODE_1MB (20 << HUGETLB_FLAG_ENCODE_SHIFT)
|
||||
#define HUGETLB_FLAG_ENCODE_2MB (21 << HUGETLB_FLAG_ENCODE_SHIFT)
|
||||
#define HUGETLB_FLAG_ENCODE_8MB (23 << HUGETLB_FLAG_ENCODE_SHIFT)
|
||||
#define HUGETLB_FLAG_ENCODE_16MB (24 << HUGETLB_FLAG_ENCODE_SHIFT)
|
||||
#define HUGETLB_FLAG_ENCODE_256MB (28 << HUGETLB_FLAG_ENCODE_SHIFT)
|
||||
#define HUGETLB_FLAG_ENCODE_1GB (30 << HUGETLB_FLAG_ENCODE_SHIFT)
|
||||
#define HUGETLB_FLAG_ENCODE_2GB (31 << HUGETLB_FLAG_ENCODE_SHIFT)
|
||||
#define HUGETLB_FLAG_ENCODE_16GB (34 << HUGETLB_FLAG_ENCODE_SHIFT)
|
||||
|
||||
#endif /* _ASM_GENERIC_HUGETLB_ENCODE_H_ */
|
||||
@@ -58,20 +58,12 @@
|
||||
overrides the coredump filter bits */
|
||||
#define MADV_DODUMP 17 /* Clear the MADV_DONTDUMP flag */
|
||||
|
||||
#define MADV_WIPEONFORK 18 /* Zero memory on fork, child only */
|
||||
#define MADV_KEEPONFORK 19 /* Undo MADV_WIPEONFORK */
|
||||
|
||||
/* compatibility flags */
|
||||
#define MAP_FILE 0
|
||||
|
||||
/*
|
||||
* When MAP_HUGETLB is set bits [26:31] encode the log2 of the huge page size.
|
||||
* This gives us 6 bits, which is enough until someone invents 128 bit address
|
||||
* spaces.
|
||||
*
|
||||
* Assume these are all power of twos.
|
||||
* When 0 use the default page size.
|
||||
*/
|
||||
#define MAP_HUGE_SHIFT 26
|
||||
#define MAP_HUGE_MASK 0x3f
|
||||
|
||||
#define PKEY_DISABLE_ACCESS 0x1
|
||||
#define PKEY_DISABLE_WRITE 0x2
|
||||
#define PKEY_ACCESS_MASK (PKEY_DISABLE_ACCESS |\
|
||||
|
||||
@@ -151,29 +151,6 @@ typedef struct siginfo {
|
||||
#define si_arch _sifields._sigsys._arch
|
||||
#endif
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#define __SI_MASK 0xffff0000u
|
||||
#define __SI_KILL (0 << 16)
|
||||
#define __SI_TIMER (1 << 16)
|
||||
#define __SI_POLL (2 << 16)
|
||||
#define __SI_FAULT (3 << 16)
|
||||
#define __SI_CHLD (4 << 16)
|
||||
#define __SI_RT (5 << 16)
|
||||
#define __SI_MESGQ (6 << 16)
|
||||
#define __SI_SYS (7 << 16)
|
||||
#define __SI_CODE(T,N) ((T) | ((N) & 0xffff))
|
||||
#else /* __KERNEL__ */
|
||||
#define __SI_KILL 0
|
||||
#define __SI_TIMER 0
|
||||
#define __SI_POLL 0
|
||||
#define __SI_FAULT 0
|
||||
#define __SI_CHLD 0
|
||||
#define __SI_RT 0
|
||||
#define __SI_MESGQ 0
|
||||
#define __SI_SYS 0
|
||||
#define __SI_CODE(T,N) (N)
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
/*
|
||||
* si_code values
|
||||
* Digital reserves positive values for kernel-generated signals.
|
||||
@@ -181,8 +158,8 @@ typedef struct siginfo {
|
||||
#define SI_USER 0 /* sent by kill, sigsend, raise */
|
||||
#define SI_KERNEL 0x80 /* sent by the kernel from somewhere */
|
||||
#define SI_QUEUE -1 /* sent by sigqueue */
|
||||
#define SI_TIMER __SI_CODE(__SI_TIMER,-2) /* sent by timer expiration */
|
||||
#define SI_MESGQ __SI_CODE(__SI_MESGQ,-3) /* sent by real time mesq state change */
|
||||
#define SI_TIMER -2 /* sent by timer expiration */
|
||||
#define SI_MESGQ -3 /* sent by real time mesq state change */
|
||||
#define SI_ASYNCIO -4 /* sent by AIO completion */
|
||||
#define SI_SIGIO -5 /* sent by queued SIGIO */
|
||||
#define SI_TKILL -6 /* sent by tkill system call */
|
||||
@@ -194,86 +171,86 @@ typedef struct siginfo {
|
||||
/*
|
||||
* SIGILL si_codes
|
||||
*/
|
||||
#define ILL_ILLOPC (__SI_FAULT|1) /* illegal opcode */
|
||||
#define ILL_ILLOPN (__SI_FAULT|2) /* illegal operand */
|
||||
#define ILL_ILLADR (__SI_FAULT|3) /* illegal addressing mode */
|
||||
#define ILL_ILLTRP (__SI_FAULT|4) /* illegal trap */
|
||||
#define ILL_PRVOPC (__SI_FAULT|5) /* privileged opcode */
|
||||
#define ILL_PRVREG (__SI_FAULT|6) /* privileged register */
|
||||
#define ILL_COPROC (__SI_FAULT|7) /* coprocessor error */
|
||||
#define ILL_BADSTK (__SI_FAULT|8) /* internal stack error */
|
||||
#define ILL_ILLOPC 1 /* illegal opcode */
|
||||
#define ILL_ILLOPN 2 /* illegal operand */
|
||||
#define ILL_ILLADR 3 /* illegal addressing mode */
|
||||
#define ILL_ILLTRP 4 /* illegal trap */
|
||||
#define ILL_PRVOPC 5 /* privileged opcode */
|
||||
#define ILL_PRVREG 6 /* privileged register */
|
||||
#define ILL_COPROC 7 /* coprocessor error */
|
||||
#define ILL_BADSTK 8 /* internal stack error */
|
||||
#define NSIGILL 8
|
||||
|
||||
/*
|
||||
* SIGFPE si_codes
|
||||
*/
|
||||
#define FPE_INTDIV (__SI_FAULT|1) /* integer divide by zero */
|
||||
#define FPE_INTOVF (__SI_FAULT|2) /* integer overflow */
|
||||
#define FPE_FLTDIV (__SI_FAULT|3) /* floating point divide by zero */
|
||||
#define FPE_FLTOVF (__SI_FAULT|4) /* floating point overflow */
|
||||
#define FPE_FLTUND (__SI_FAULT|5) /* floating point underflow */
|
||||
#define FPE_FLTRES (__SI_FAULT|6) /* floating point inexact result */
|
||||
#define FPE_FLTINV (__SI_FAULT|7) /* floating point invalid operation */
|
||||
#define FPE_FLTSUB (__SI_FAULT|8) /* subscript out of range */
|
||||
#define FPE_INTDIV 1 /* integer divide by zero */
|
||||
#define FPE_INTOVF 2 /* integer overflow */
|
||||
#define FPE_FLTDIV 3 /* floating point divide by zero */
|
||||
#define FPE_FLTOVF 4 /* floating point overflow */
|
||||
#define FPE_FLTUND 5 /* floating point underflow */
|
||||
#define FPE_FLTRES 6 /* floating point inexact result */
|
||||
#define FPE_FLTINV 7 /* floating point invalid operation */
|
||||
#define FPE_FLTSUB 8 /* subscript out of range */
|
||||
#define NSIGFPE 8
|
||||
|
||||
/*
|
||||
* SIGSEGV si_codes
|
||||
*/
|
||||
#define SEGV_MAPERR (__SI_FAULT|1) /* address not mapped to object */
|
||||
#define SEGV_ACCERR (__SI_FAULT|2) /* invalid permissions for mapped object */
|
||||
#define SEGV_BNDERR (__SI_FAULT|3) /* failed address bound checks */
|
||||
#define SEGV_PKUERR (__SI_FAULT|4) /* failed protection key checks */
|
||||
#define SEGV_MAPERR 1 /* address not mapped to object */
|
||||
#define SEGV_ACCERR 2 /* invalid permissions for mapped object */
|
||||
#define SEGV_BNDERR 3 /* failed address bound checks */
|
||||
#define SEGV_PKUERR 4 /* failed protection key checks */
|
||||
#define NSIGSEGV 4
|
||||
|
||||
/*
|
||||
* SIGBUS si_codes
|
||||
*/
|
||||
#define BUS_ADRALN (__SI_FAULT|1) /* invalid address alignment */
|
||||
#define BUS_ADRERR (__SI_FAULT|2) /* non-existent physical address */
|
||||
#define BUS_OBJERR (__SI_FAULT|3) /* object specific hardware error */
|
||||
#define BUS_ADRALN 1 /* invalid address alignment */
|
||||
#define BUS_ADRERR 2 /* non-existent physical address */
|
||||
#define BUS_OBJERR 3 /* object specific hardware error */
|
||||
/* hardware memory error consumed on a machine check: action required */
|
||||
#define BUS_MCEERR_AR (__SI_FAULT|4)
|
||||
#define BUS_MCEERR_AR 4
|
||||
/* hardware memory error detected in process but not consumed: action optional*/
|
||||
#define BUS_MCEERR_AO (__SI_FAULT|5)
|
||||
#define BUS_MCEERR_AO 5
|
||||
#define NSIGBUS 5
|
||||
|
||||
/*
|
||||
* SIGTRAP si_codes
|
||||
*/
|
||||
#define TRAP_BRKPT (__SI_FAULT|1) /* process breakpoint */
|
||||
#define TRAP_TRACE (__SI_FAULT|2) /* process trace trap */
|
||||
#define TRAP_BRANCH (__SI_FAULT|3) /* process taken branch trap */
|
||||
#define TRAP_HWBKPT (__SI_FAULT|4) /* hardware breakpoint/watchpoint */
|
||||
#define TRAP_BRKPT 1 /* process breakpoint */
|
||||
#define TRAP_TRACE 2 /* process trace trap */
|
||||
#define TRAP_BRANCH 3 /* process taken branch trap */
|
||||
#define TRAP_HWBKPT 4 /* hardware breakpoint/watchpoint */
|
||||
#define NSIGTRAP 4
|
||||
|
||||
/*
|
||||
* SIGCHLD si_codes
|
||||
*/
|
||||
#define CLD_EXITED (__SI_CHLD|1) /* child has exited */
|
||||
#define CLD_KILLED (__SI_CHLD|2) /* child was killed */
|
||||
#define CLD_DUMPED (__SI_CHLD|3) /* child terminated abnormally */
|
||||
#define CLD_TRAPPED (__SI_CHLD|4) /* traced child has trapped */
|
||||
#define CLD_STOPPED (__SI_CHLD|5) /* child has stopped */
|
||||
#define CLD_CONTINUED (__SI_CHLD|6) /* stopped child has continued */
|
||||
#define CLD_EXITED 1 /* child has exited */
|
||||
#define CLD_KILLED 2 /* child was killed */
|
||||
#define CLD_DUMPED 3 /* child terminated abnormally */
|
||||
#define CLD_TRAPPED 4 /* traced child has trapped */
|
||||
#define CLD_STOPPED 5 /* child has stopped */
|
||||
#define CLD_CONTINUED 6 /* stopped child has continued */
|
||||
#define NSIGCHLD 6
|
||||
|
||||
/*
|
||||
* SIGPOLL si_codes
|
||||
* SIGPOLL (or any other signal without signal specific si_codes) si_codes
|
||||
*/
|
||||
#define POLL_IN (__SI_POLL|1) /* data input available */
|
||||
#define POLL_OUT (__SI_POLL|2) /* output buffers available */
|
||||
#define POLL_MSG (__SI_POLL|3) /* input message available */
|
||||
#define POLL_ERR (__SI_POLL|4) /* i/o error */
|
||||
#define POLL_PRI (__SI_POLL|5) /* high priority input available */
|
||||
#define POLL_HUP (__SI_POLL|6) /* device disconnected */
|
||||
#define POLL_IN 1 /* data input available */
|
||||
#define POLL_OUT 2 /* output buffers available */
|
||||
#define POLL_MSG 3 /* input message available */
|
||||
#define POLL_ERR 4 /* i/o error */
|
||||
#define POLL_PRI 5 /* high priority input available */
|
||||
#define POLL_HUP 6 /* device disconnected */
|
||||
#define NSIGPOLL 6
|
||||
|
||||
/*
|
||||
* SIGSYS si_codes
|
||||
*/
|
||||
#define SYS_SECCOMP (__SI_SYS|1) /* seccomp triggered */
|
||||
#define NSIGSYS 1
|
||||
#define SYS_SECCOMP 1 /* seccomp triggered */
|
||||
#define NSIGSYS 1
|
||||
|
||||
/*
|
||||
* sigevent definitions
|
||||
|
||||
@@ -104,4 +104,6 @@
|
||||
|
||||
#define SO_PEERGROUPS 59
|
||||
|
||||
#define SO_ZEROCOPY 60
|
||||
|
||||
#endif /* __ASM_GENERIC_SOCKET_H */
|
||||
|
||||
@@ -87,6 +87,8 @@ extern "C" {
|
||||
#define AMDGPU_GEM_CREATE_SHADOW (1 << 4)
|
||||
/* Flag that allocating the BO should use linear VRAM */
|
||||
#define AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS (1 << 5)
|
||||
/* Flag that BO is always valid in this VM */
|
||||
#define AMDGPU_GEM_CREATE_VM_ALWAYS_VALID (1 << 6)
|
||||
|
||||
struct drm_amdgpu_gem_create_in {
|
||||
/** the requested memory size */
|
||||
|
||||
@@ -749,9 +749,9 @@ struct drm_format_modifier {
|
||||
* If the number formats grew to 128, and formats 98-102 are
|
||||
* supported with the modifier:
|
||||
*
|
||||
* 0x0000003c00000000 0000000000000000
|
||||
* 0x0000007c00000000 0000000000000000
|
||||
* ^
|
||||
* |__offset = 64, formats = 0x3c00000000
|
||||
* |__offset = 64, formats = 0x7c00000000
|
||||
*
|
||||
*/
|
||||
__u64 formats;
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
#define __LINUX__AIO_ABI_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/fs.h>
|
||||
#include <asm/byteorder.h>
|
||||
|
||||
typedef __kernel_ulong_t aio_context_t;
|
||||
@@ -62,14 +63,6 @@ struct io_event {
|
||||
__s64 res2; /* secondary result */
|
||||
};
|
||||
|
||||
#if defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN)
|
||||
#define PADDED(x,y) x, y
|
||||
#elif defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN)
|
||||
#define PADDED(x,y) y, x
|
||||
#else
|
||||
#error edit for your odd byteorder.
|
||||
#endif
|
||||
|
||||
/*
|
||||
* we always use a 64bit off_t when communicating
|
||||
* with userland. its up to libraries to do the
|
||||
@@ -79,8 +72,16 @@ struct io_event {
|
||||
struct iocb {
|
||||
/* these are internal to the kernel/libc. */
|
||||
__u64 aio_data; /* data to be returned in event's data */
|
||||
__u32 PADDED(aio_key, aio_rw_flags);
|
||||
/* the kernel sets aio_key to the req # */
|
||||
|
||||
#if defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN)
|
||||
__u32 aio_key; /* the kernel sets aio_key to the req # */
|
||||
__kernel_rwf_t aio_rw_flags; /* RWF_* flags */
|
||||
#elif defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN)
|
||||
__kernel_rwf_t aio_rw_flags; /* RWF_* flags */
|
||||
__u32 aio_key; /* the kernel sets aio_key to the req # */
|
||||
#else
|
||||
#error edit for your odd byteorder.
|
||||
#endif
|
||||
|
||||
/* common fields */
|
||||
__u16 aio_lio_opcode; /* see IOCB_CMD_ above */
|
||||
|
||||
@@ -132,6 +132,7 @@ enum {
|
||||
|
||||
/* struct binder_fd_array_object - object describing an array of fds in a buffer
|
||||
* @hdr: common header structure
|
||||
* @pad: padding to ensure correct alignment
|
||||
* @num_fds: number of file descriptors in the buffer
|
||||
* @parent: index in offset array to buffer holding the fd array
|
||||
* @parent_offset: start offset of fd array in the buffer
|
||||
@@ -152,6 +153,7 @@ enum {
|
||||
*/
|
||||
struct binder_fd_array_object {
|
||||
struct binder_object_header hdr;
|
||||
__u32 pad;
|
||||
binder_size_t num_fds;
|
||||
binder_size_t parent;
|
||||
binder_size_t parent_offset;
|
||||
@@ -184,6 +186,19 @@ struct binder_version {
|
||||
#define BINDER_CURRENT_PROTOCOL_VERSION 8
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Use with BINDER_GET_NODE_DEBUG_INFO, driver reads ptr, writes to all fields.
|
||||
* Set ptr to NULL for the first call to get the info for the first node, and
|
||||
* then repeat the call passing the previously returned value to get the next
|
||||
* nodes. ptr will be 0 when there are no more nodes.
|
||||
*/
|
||||
struct binder_node_debug_info {
|
||||
binder_uintptr_t ptr;
|
||||
binder_uintptr_t cookie;
|
||||
__u32 has_strong_ref;
|
||||
__u32 has_weak_ref;
|
||||
};
|
||||
|
||||
#define BINDER_WRITE_READ _IOWR('b', 1, struct binder_write_read)
|
||||
#define BINDER_SET_IDLE_TIMEOUT _IOW('b', 3, __s64)
|
||||
#define BINDER_SET_MAX_THREADS _IOW('b', 5, __u32)
|
||||
@@ -191,6 +206,7 @@ struct binder_version {
|
||||
#define BINDER_SET_CONTEXT_MGR _IOW('b', 7, __s32)
|
||||
#define BINDER_THREAD_EXIT _IOW('b', 8, __s32)
|
||||
#define BINDER_VERSION _IOWR('b', 9, struct binder_version)
|
||||
#define BINDER_GET_NODE_DEBUG_INFO _IOWR('b', 11, struct binder_node_debug_info)
|
||||
|
||||
/*
|
||||
* NOTE: Two special error codes you should check for when calling
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
#define AUTOFS_DEVICE_NAME "autofs"
|
||||
|
||||
#define AUTOFS_DEV_IOCTL_VERSION_MAJOR 1
|
||||
#define AUTOFS_DEV_IOCTL_VERSION_MINOR 0
|
||||
#define AUTOFS_DEV_IOCTL_VERSION_MINOR 1
|
||||
|
||||
#define AUTOFS_DEV_IOCTL_SIZE sizeof(struct autofs_dev_ioctl)
|
||||
|
||||
|
||||
@@ -155,8 +155,6 @@ enum {
|
||||
};
|
||||
|
||||
#define AUTOFS_IOC_EXPIRE_MULTI _IOW(AUTOFS_IOCTL, AUTOFS_IOC_EXPIRE_MULTI_CMD, int)
|
||||
#define AUTOFS_IOC_EXPIRE_INDIRECT AUTOFS_IOC_EXPIRE_MULTI
|
||||
#define AUTOFS_IOC_EXPIRE_DIRECT AUTOFS_IOC_EXPIRE_MULTI
|
||||
#define AUTOFS_IOC_PROTOSUBVER _IOR(AUTOFS_IOCTL, AUTOFS_IOC_PROTOSUBVER_CMD, int)
|
||||
#define AUTOFS_IOC_ASKUMOUNT _IOR(AUTOFS_IOCTL, AUTOFS_IOC_ASKUMOUNT_CMD, int)
|
||||
|
||||
|
||||
@@ -52,6 +52,7 @@ enum blktrace_act {
|
||||
__BLK_TA_REMAP, /* bio was remapped */
|
||||
__BLK_TA_ABORT, /* request aborted */
|
||||
__BLK_TA_DRV_DATA, /* driver-specific binary data */
|
||||
__BLK_TA_CGROUP = 1 << 8, /* from a cgroup*/
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -61,6 +62,7 @@ enum blktrace_notify {
|
||||
__BLK_TN_PROCESS = 0, /* establish pid/name mapping */
|
||||
__BLK_TN_TIMESTAMP, /* include system clock */
|
||||
__BLK_TN_MESSAGE, /* Character string message */
|
||||
__BLK_TN_CGROUP = __BLK_TA_CGROUP, /* from a cgroup */
|
||||
};
|
||||
|
||||
|
||||
@@ -107,6 +109,7 @@ struct blk_io_trace {
|
||||
__u32 cpu; /* on what cpu did it happen */
|
||||
__u16 error; /* completion error */
|
||||
__u16 pdu_len; /* length of data after this trace */
|
||||
/* cgroup id will be stored here if exists */
|
||||
};
|
||||
|
||||
/*
|
||||
|
||||
@@ -30,9 +30,14 @@
|
||||
#define BPF_FROM_LE BPF_TO_LE
|
||||
#define BPF_FROM_BE BPF_TO_BE
|
||||
|
||||
/* jmp encodings */
|
||||
#define BPF_JNE 0x50 /* jump != */
|
||||
#define BPF_JLT 0xa0 /* LT is unsigned, '<' */
|
||||
#define BPF_JLE 0xb0 /* LE is unsigned, '<=' */
|
||||
#define BPF_JSGT 0x60 /* SGT is signed '>', GT in x86 */
|
||||
#define BPF_JSGE 0x70 /* SGE is signed '>=', GE in x86 */
|
||||
#define BPF_JSLT 0xc0 /* SLT is signed, '<' */
|
||||
#define BPF_JSLE 0xd0 /* SLE is signed, '<=' */
|
||||
#define BPF_CALL 0x80 /* function call */
|
||||
#define BPF_EXIT 0x90 /* function return */
|
||||
|
||||
@@ -104,6 +109,8 @@ enum bpf_map_type {
|
||||
BPF_MAP_TYPE_LPM_TRIE,
|
||||
BPF_MAP_TYPE_ARRAY_OF_MAPS,
|
||||
BPF_MAP_TYPE_HASH_OF_MAPS,
|
||||
BPF_MAP_TYPE_DEVMAP,
|
||||
BPF_MAP_TYPE_SOCKMAP,
|
||||
};
|
||||
|
||||
enum bpf_prog_type {
|
||||
@@ -121,6 +128,7 @@ enum bpf_prog_type {
|
||||
BPF_PROG_TYPE_LWT_OUT,
|
||||
BPF_PROG_TYPE_LWT_XMIT,
|
||||
BPF_PROG_TYPE_SOCK_OPS,
|
||||
BPF_PROG_TYPE_SK_SKB,
|
||||
};
|
||||
|
||||
enum bpf_attach_type {
|
||||
@@ -128,6 +136,8 @@ enum bpf_attach_type {
|
||||
BPF_CGROUP_INET_EGRESS,
|
||||
BPF_CGROUP_INET_SOCK_CREATE,
|
||||
BPF_CGROUP_SOCK_OPS,
|
||||
BPF_SK_SKB_STREAM_PARSER,
|
||||
BPF_SK_SKB_STREAM_VERDICT,
|
||||
__MAX_BPF_ATTACH_TYPE
|
||||
};
|
||||
|
||||
@@ -153,6 +163,7 @@ enum bpf_attach_type {
|
||||
#define BPF_NOEXIST 1 /* create new element if it didn't exist */
|
||||
#define BPF_EXIST 2 /* update existing element */
|
||||
|
||||
/* flags for BPF_MAP_CREATE command */
|
||||
#define BPF_F_NO_PREALLOC (1U << 0)
|
||||
/* Instead of having one common LRU list in the
|
||||
* BPF_MAP_TYPE_LRU_[PERCPU_]HASH map, use a percpu LRU list
|
||||
@@ -161,6 +172,8 @@ enum bpf_attach_type {
|
||||
* across different LRU lists.
|
||||
*/
|
||||
#define BPF_F_NO_COMMON_LRU (1U << 1)
|
||||
/* Specify numa node during map creation */
|
||||
#define BPF_F_NUMA_NODE (1U << 2)
|
||||
|
||||
union bpf_attr {
|
||||
struct { /* anonymous struct used by BPF_MAP_CREATE command */
|
||||
@@ -168,8 +181,13 @@ union bpf_attr {
|
||||
__u32 key_size; /* size of key in bytes */
|
||||
__u32 value_size; /* size of value in bytes */
|
||||
__u32 max_entries; /* max number of entries in a map */
|
||||
__u32 map_flags; /* prealloc or not */
|
||||
__u32 map_flags; /* BPF_MAP_CREATE related
|
||||
* flags defined above.
|
||||
*/
|
||||
__u32 inner_map_fd; /* fd pointing to the inner map */
|
||||
__u32 numa_node; /* numa node (effective only if
|
||||
* BPF_F_NUMA_NODE is set).
|
||||
*/
|
||||
};
|
||||
|
||||
struct { /* anonymous struct used by BPF_MAP_*_ELEM commands */
|
||||
@@ -344,9 +362,20 @@ union bpf_attr {
|
||||
* int bpf_redirect(ifindex, flags)
|
||||
* redirect to another netdev
|
||||
* @ifindex: ifindex of the net device
|
||||
* @flags: bit 0 - if set, redirect to ingress instead of egress
|
||||
* other bits - reserved
|
||||
* Return: TC_ACT_REDIRECT
|
||||
* @flags:
|
||||
* cls_bpf:
|
||||
* bit 0 - if set, redirect to ingress instead of egress
|
||||
* other bits - reserved
|
||||
* xdp_bpf:
|
||||
* all bits - reserved
|
||||
* Return: cls_bpf: TC_ACT_REDIRECT on success or TC_ACT_SHOT on error
|
||||
* xdp_bfp: XDP_REDIRECT on success or XDP_ABORT on error
|
||||
* int bpf_redirect_map(map, key, flags)
|
||||
* redirect to endpoint in map
|
||||
* @map: pointer to dev map
|
||||
* @key: index in map to lookup
|
||||
* @flags: --
|
||||
* Return: XDP_REDIRECT on success or XDP_ABORT on error
|
||||
*
|
||||
* u32 bpf_get_route_realm(skb)
|
||||
* retrieve a dst's tclassid
|
||||
@@ -539,6 +568,20 @@ union bpf_attr {
|
||||
* @mode: operation mode (enum bpf_adj_room_mode)
|
||||
* @flags: reserved for future use
|
||||
* Return: 0 on success or negative error code
|
||||
*
|
||||
* int bpf_sk_redirect_map(map, key, flags)
|
||||
* Redirect skb to a sock in map using key as a lookup key for the
|
||||
* sock in map.
|
||||
* @map: pointer to sockmap
|
||||
* @key: key to lookup sock in map
|
||||
* @flags: reserved for future use
|
||||
* Return: SK_REDIRECT
|
||||
*
|
||||
* int bpf_sock_map_update(skops, map, key, flags)
|
||||
* @skops: pointer to bpf_sock_ops
|
||||
* @map: pointer to sockmap to update
|
||||
* @key: key to insert/update sock in map
|
||||
* @flags: same flags as map update elem
|
||||
*/
|
||||
#define __BPF_FUNC_MAPPER(FN) \
|
||||
FN(unspec), \
|
||||
@@ -591,7 +634,10 @@ union bpf_attr {
|
||||
FN(get_socket_uid), \
|
||||
FN(set_hash), \
|
||||
FN(setsockopt), \
|
||||
FN(skb_adjust_room),
|
||||
FN(skb_adjust_room), \
|
||||
FN(redirect_map), \
|
||||
FN(sk_redirect_map), \
|
||||
FN(sock_map_update), \
|
||||
|
||||
/* integer value in 'imm' field of BPF_CALL instruction selects which helper
|
||||
* function eBPF program intends to call
|
||||
@@ -668,6 +714,15 @@ struct __sk_buff {
|
||||
__u32 data;
|
||||
__u32 data_end;
|
||||
__u32 napi_id;
|
||||
|
||||
/* accessed by BPF_PROG_TYPE_sk_skb types */
|
||||
__u32 family;
|
||||
__u32 remote_ip4; /* Stored in network byte order */
|
||||
__u32 local_ip4; /* Stored in network byte order */
|
||||
__u32 remote_ip6[4]; /* Stored in network byte order */
|
||||
__u32 local_ip6[4]; /* Stored in network byte order */
|
||||
__u32 remote_port; /* Stored in network byte order */
|
||||
__u32 local_port; /* stored in host byte order */
|
||||
};
|
||||
|
||||
struct bpf_tunnel_key {
|
||||
@@ -703,20 +758,23 @@ struct bpf_sock {
|
||||
__u32 family;
|
||||
__u32 type;
|
||||
__u32 protocol;
|
||||
__u32 mark;
|
||||
__u32 priority;
|
||||
};
|
||||
|
||||
#define XDP_PACKET_HEADROOM 256
|
||||
|
||||
/* User return codes for XDP prog type.
|
||||
* A valid XDP program must return one of these defined values. All other
|
||||
* return codes are reserved for future use. Unknown return codes will result
|
||||
* in packet drop.
|
||||
* return codes are reserved for future use. Unknown return codes will
|
||||
* result in packet drops and a warning via bpf_warn_invalid_xdp_action().
|
||||
*/
|
||||
enum xdp_action {
|
||||
XDP_ABORTED = 0,
|
||||
XDP_DROP,
|
||||
XDP_PASS,
|
||||
XDP_TX,
|
||||
XDP_REDIRECT,
|
||||
};
|
||||
|
||||
/* user accessible metadata for XDP packet hook
|
||||
@@ -727,6 +785,12 @@ struct xdp_md {
|
||||
__u32 data_end;
|
||||
};
|
||||
|
||||
enum sk_action {
|
||||
SK_ABORTED = 0,
|
||||
SK_DROP,
|
||||
SK_REDIRECT,
|
||||
};
|
||||
|
||||
#define BPF_TAG_SIZE 8
|
||||
|
||||
struct bpf_prog_info {
|
||||
|
||||
@@ -255,13 +255,7 @@ struct btrfs_ioctl_fs_info_args {
|
||||
#define BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL (1ULL << 1)
|
||||
#define BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS (1ULL << 2)
|
||||
#define BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO (1ULL << 3)
|
||||
/*
|
||||
* some patches floated around with a second compression method
|
||||
* lets save that incompat here for when they do get in
|
||||
* Note we don't actually support it, we're just reserving the
|
||||
* number
|
||||
*/
|
||||
#define BTRFS_FEATURE_INCOMPAT_COMPRESS_LZOv2 (1ULL << 4)
|
||||
#define BTRFS_FEATURE_INCOMPAT_COMPRESS_ZSTD (1ULL << 4)
|
||||
|
||||
/*
|
||||
* older kernels tried to do bigger metadata blocks, but the
|
||||
|
||||
@@ -60,9 +60,13 @@ typedef struct __user_cap_data_struct {
|
||||
#define VFS_CAP_U32_2 2
|
||||
#define XATTR_CAPS_SZ_2 (sizeof(__le32)*(1 + 2*VFS_CAP_U32_2))
|
||||
|
||||
#define XATTR_CAPS_SZ XATTR_CAPS_SZ_2
|
||||
#define VFS_CAP_U32 VFS_CAP_U32_2
|
||||
#define VFS_CAP_REVISION VFS_CAP_REVISION_2
|
||||
#define VFS_CAP_REVISION_3 0x03000000
|
||||
#define VFS_CAP_U32_3 2
|
||||
#define XATTR_CAPS_SZ_3 (sizeof(__le32)*(2 + 2*VFS_CAP_U32_3))
|
||||
|
||||
#define XATTR_CAPS_SZ XATTR_CAPS_SZ_3
|
||||
#define VFS_CAP_U32 VFS_CAP_U32_3
|
||||
#define VFS_CAP_REVISION VFS_CAP_REVISION_3
|
||||
|
||||
struct vfs_cap_data {
|
||||
__le32 magic_etc; /* Little endian */
|
||||
@@ -72,6 +76,18 @@ struct vfs_cap_data {
|
||||
} data[VFS_CAP_U32];
|
||||
};
|
||||
|
||||
/*
|
||||
* same as vfs_cap_data but with a rootid at the end
|
||||
*/
|
||||
struct vfs_ns_cap_data {
|
||||
__le32 magic_etc;
|
||||
struct {
|
||||
__le32 permitted; /* Little endian */
|
||||
__le32 inheritable; /* Little endian */
|
||||
} data[VFS_CAP_U32];
|
||||
__le32 rootid;
|
||||
};
|
||||
|
||||
#ifndef __KERNEL__
|
||||
|
||||
/*
|
||||
|
||||
@@ -895,6 +895,7 @@ static inline void cec_ops_report_features(const struct cec_msg *msg,
|
||||
*cec_version = msg->msg[2];
|
||||
*all_device_types = msg->msg[3];
|
||||
*rc_profile = p;
|
||||
*dev_features = NULL;
|
||||
while (p < &msg->msg[14] && (*p & CEC_OP_FEAT_EXT))
|
||||
p++;
|
||||
if (!(*p & CEC_OP_FEAT_EXT)) {
|
||||
|
||||
@@ -318,6 +318,7 @@ static inline int cec_is_unconfigured(__u16 log_addr_mask)
|
||||
#define CEC_MODE_FOLLOWER (0x1 << 4)
|
||||
#define CEC_MODE_EXCL_FOLLOWER (0x2 << 4)
|
||||
#define CEC_MODE_EXCL_FOLLOWER_PASSTHRU (0x3 << 4)
|
||||
#define CEC_MODE_MONITOR_PIN (0xd << 4)
|
||||
#define CEC_MODE_MONITOR (0xe << 4)
|
||||
#define CEC_MODE_MONITOR_ALL (0xf << 4)
|
||||
#define CEC_MODE_FOLLOWER_MSK 0xf0
|
||||
@@ -338,6 +339,8 @@ static inline int cec_is_unconfigured(__u16 log_addr_mask)
|
||||
#define CEC_CAP_MONITOR_ALL (1 << 5)
|
||||
/* Hardware can use CEC only if the HDMI HPD pin is high. */
|
||||
#define CEC_CAP_NEEDS_HPD (1 << 6)
|
||||
/* Hardware can monitor CEC pin transitions */
|
||||
#define CEC_CAP_MONITOR_PIN (1 << 7)
|
||||
|
||||
/**
|
||||
* struct cec_caps - CEC capabilities structure.
|
||||
@@ -405,8 +408,11 @@ struct cec_log_addrs {
|
||||
* didn't empty the message queue in time
|
||||
*/
|
||||
#define CEC_EVENT_LOST_MSGS 2
|
||||
#define CEC_EVENT_PIN_CEC_LOW 3
|
||||
#define CEC_EVENT_PIN_CEC_HIGH 4
|
||||
|
||||
#define CEC_EVENT_FL_INITIAL_STATE (1 << 0)
|
||||
#define CEC_EVENT_FL_DROPPED_EVENTS (1 << 1)
|
||||
|
||||
/**
|
||||
* struct cec_event_state_change - used when the CEC adapter changes state.
|
||||
@@ -419,7 +425,7 @@ struct cec_event_state_change {
|
||||
};
|
||||
|
||||
/**
|
||||
* struct cec_event_lost_msgs - tells you how many messages were lost due.
|
||||
* struct cec_event_lost_msgs - tells you how many messages were lost.
|
||||
* @lost_msgs: how many messages were lost.
|
||||
*/
|
||||
struct cec_event_lost_msgs {
|
||||
|
||||
@@ -226,4 +226,22 @@ enum devlink_dpipe_action_type {
|
||||
DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY,
|
||||
};
|
||||
|
||||
enum devlink_dpipe_field_ethernet_id {
|
||||
DEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC,
|
||||
};
|
||||
|
||||
enum devlink_dpipe_field_ipv4_id {
|
||||
DEVLINK_DPIPE_FIELD_IPV4_DST_IP,
|
||||
};
|
||||
|
||||
enum devlink_dpipe_field_ipv6_id {
|
||||
DEVLINK_DPIPE_FIELD_IPV6_DST_IP,
|
||||
};
|
||||
|
||||
enum devlink_dpipe_header_id {
|
||||
DEVLINK_DPIPE_HEADER_ETHERNET,
|
||||
DEVLINK_DPIPE_HEADER_IPV4,
|
||||
DEVLINK_DPIPE_HEADER_IPV6,
|
||||
};
|
||||
|
||||
#endif /* _UAPI_LINUX_DEVLINK_H_ */
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#define _DLM_NETLINK_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/dlmconstants.h>
|
||||
|
||||
enum {
|
||||
DLM_STATUS_WAITING = 1,
|
||||
|
||||
@@ -24,67 +24,131 @@
|
||||
#ifndef _DVBCA_H_
|
||||
#define _DVBCA_H_
|
||||
|
||||
/* slot interface types and info */
|
||||
/**
|
||||
* struct ca_slot_info - CA slot interface types and info.
|
||||
*
|
||||
* @num: slot number.
|
||||
* @type: slot type.
|
||||
* @flags: flags applicable to the slot.
|
||||
*
|
||||
* This struct stores the CA slot information.
|
||||
*
|
||||
* @type can be:
|
||||
*
|
||||
* - %CA_CI - CI high level interface;
|
||||
* - %CA_CI_LINK - CI link layer level interface;
|
||||
* - %CA_CI_PHYS - CI physical layer level interface;
|
||||
* - %CA_DESCR - built-in descrambler;
|
||||
* - %CA_SC -simple smart card interface.
|
||||
*
|
||||
* @flags can be:
|
||||
*
|
||||
* - %CA_CI_MODULE_PRESENT - module (or card) inserted;
|
||||
* - %CA_CI_MODULE_READY - module is ready for usage.
|
||||
*/
|
||||
|
||||
typedef struct ca_slot_info {
|
||||
int num; /* slot number */
|
||||
|
||||
int type; /* CA interface this slot supports */
|
||||
#define CA_CI 1 /* CI high level interface */
|
||||
#define CA_CI_LINK 2 /* CI link layer level interface */
|
||||
#define CA_CI_PHYS 4 /* CI physical layer level interface */
|
||||
#define CA_DESCR 8 /* built-in descrambler */
|
||||
#define CA_SC 128 /* simple smart card interface */
|
||||
struct ca_slot_info {
|
||||
int num;
|
||||
int type;
|
||||
#define CA_CI 1
|
||||
#define CA_CI_LINK 2
|
||||
#define CA_CI_PHYS 4
|
||||
#define CA_DESCR 8
|
||||
#define CA_SC 128
|
||||
|
||||
unsigned int flags;
|
||||
#define CA_CI_MODULE_PRESENT 1 /* module (or card) inserted */
|
||||
#define CA_CI_MODULE_PRESENT 1
|
||||
#define CA_CI_MODULE_READY 2
|
||||
} ca_slot_info_t;
|
||||
};
|
||||
|
||||
|
||||
/* descrambler types and info */
|
||||
|
||||
typedef struct ca_descr_info {
|
||||
unsigned int num; /* number of available descramblers (keys) */
|
||||
unsigned int type; /* type of supported scrambling system */
|
||||
/**
|
||||
* struct ca_descr_info - descrambler types and info.
|
||||
*
|
||||
* @num: number of available descramblers (keys).
|
||||
* @type: type of supported scrambling system.
|
||||
*
|
||||
* Identifies the number of descramblers and their type.
|
||||
*
|
||||
* @type can be:
|
||||
*
|
||||
* - %CA_ECD - European Common Descrambler (ECD) hardware;
|
||||
* - %CA_NDS - Videoguard (NDS) hardware;
|
||||
* - %CA_DSS - Distributed Sample Scrambling (DSS) hardware.
|
||||
*/
|
||||
struct ca_descr_info {
|
||||
unsigned int num;
|
||||
unsigned int type;
|
||||
#define CA_ECD 1
|
||||
#define CA_NDS 2
|
||||
#define CA_DSS 4
|
||||
} ca_descr_info_t;
|
||||
};
|
||||
|
||||
typedef struct ca_caps {
|
||||
unsigned int slot_num; /* total number of CA card and module slots */
|
||||
unsigned int slot_type; /* OR of all supported types */
|
||||
unsigned int descr_num; /* total number of descrambler slots (keys) */
|
||||
unsigned int descr_type; /* OR of all supported types */
|
||||
} ca_caps_t;
|
||||
/**
|
||||
* struct ca_caps - CA slot interface capabilities.
|
||||
*
|
||||
* @slot_num: total number of CA card and module slots.
|
||||
* @slot_type: bitmap with all supported types as defined at
|
||||
* &struct ca_slot_info (e. g. %CA_CI, %CA_CI_LINK, etc).
|
||||
* @descr_num: total number of descrambler slots (keys)
|
||||
* @descr_type: bitmap with all supported types as defined at
|
||||
* &struct ca_descr_info (e. g. %CA_ECD, %CA_NDS, etc).
|
||||
*/
|
||||
struct ca_caps {
|
||||
unsigned int slot_num;
|
||||
unsigned int slot_type;
|
||||
unsigned int descr_num;
|
||||
unsigned int descr_type;
|
||||
};
|
||||
|
||||
/* a message to/from a CI-CAM */
|
||||
typedef struct ca_msg {
|
||||
/**
|
||||
* struct ca_msg - a message to/from a CI-CAM
|
||||
*
|
||||
* @index: unused
|
||||
* @type: unused
|
||||
* @length: length of the message
|
||||
* @msg: message
|
||||
*
|
||||
* This struct carries a message to be send/received from a CI CA module.
|
||||
*/
|
||||
struct ca_msg {
|
||||
unsigned int index;
|
||||
unsigned int type;
|
||||
unsigned int length;
|
||||
unsigned char msg[256];
|
||||
} ca_msg_t;
|
||||
};
|
||||
|
||||
typedef struct ca_descr {
|
||||
/**
|
||||
* struct ca_descr - CA descrambler control words info
|
||||
*
|
||||
* @index: CA Descrambler slot
|
||||
* @parity: control words parity, where 0 means even and 1 means odd
|
||||
* @cw: CA Descrambler control words
|
||||
*/
|
||||
struct ca_descr {
|
||||
unsigned int index;
|
||||
unsigned int parity; /* 0 == even, 1 == odd */
|
||||
unsigned int parity;
|
||||
unsigned char cw[8];
|
||||
} ca_descr_t;
|
||||
|
||||
typedef struct ca_pid {
|
||||
unsigned int pid;
|
||||
int index; /* -1 == disable*/
|
||||
} ca_pid_t;
|
||||
};
|
||||
|
||||
#define CA_RESET _IO('o', 128)
|
||||
#define CA_GET_CAP _IOR('o', 129, ca_caps_t)
|
||||
#define CA_GET_SLOT_INFO _IOR('o', 130, ca_slot_info_t)
|
||||
#define CA_GET_DESCR_INFO _IOR('o', 131, ca_descr_info_t)
|
||||
#define CA_GET_MSG _IOR('o', 132, ca_msg_t)
|
||||
#define CA_SEND_MSG _IOW('o', 133, ca_msg_t)
|
||||
#define CA_SET_DESCR _IOW('o', 134, ca_descr_t)
|
||||
#define CA_SET_PID _IOW('o', 135, ca_pid_t)
|
||||
#define CA_GET_CAP _IOR('o', 129, struct ca_caps)
|
||||
#define CA_GET_SLOT_INFO _IOR('o', 130, struct ca_slot_info)
|
||||
#define CA_GET_DESCR_INFO _IOR('o', 131, struct ca_descr_info)
|
||||
#define CA_GET_MSG _IOR('o', 132, struct ca_msg)
|
||||
#define CA_SEND_MSG _IOW('o', 133, struct ca_msg)
|
||||
#define CA_SET_DESCR _IOW('o', 134, struct ca_descr)
|
||||
|
||||
#if !defined(__KERNEL__)
|
||||
|
||||
/* This is needed for legacy userspace support */
|
||||
typedef struct ca_slot_info ca_slot_info_t;
|
||||
typedef struct ca_descr_info ca_descr_info_t;
|
||||
typedef struct ca_caps ca_caps_t;
|
||||
typedef struct ca_msg ca_msg_t;
|
||||
typedef struct ca_descr ca_descr_t;
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -32,28 +32,74 @@
|
||||
|
||||
#define DMX_FILTER_SIZE 16
|
||||
|
||||
enum dmx_output
|
||||
{
|
||||
DMX_OUT_DECODER, /* Streaming directly to decoder. */
|
||||
DMX_OUT_TAP, /* Output going to a memory buffer */
|
||||
/* (to be retrieved via the read command).*/
|
||||
DMX_OUT_TS_TAP, /* Output multiplexed into a new TS */
|
||||
/* (to be retrieved by reading from the */
|
||||
/* logical DVR device). */
|
||||
DMX_OUT_TSDEMUX_TAP /* Like TS_TAP but retrieved from the DMX device */
|
||||
/**
|
||||
* enum dmx_output - Output for the demux.
|
||||
*
|
||||
* @DMX_OUT_DECODER:
|
||||
* Streaming directly to decoder.
|
||||
* @DMX_OUT_TAP:
|
||||
* Output going to a memory buffer (to be retrieved via the read command).
|
||||
* Delivers the stream output to the demux device on which the ioctl
|
||||
* is called.
|
||||
* @DMX_OUT_TS_TAP:
|
||||
* Output multiplexed into a new TS (to be retrieved by reading from the
|
||||
* logical DVR device). Routes output to the logical DVR device
|
||||
* ``/dev/dvb/adapter?/dvr?``, which delivers a TS multiplexed from all
|
||||
* filters for which @DMX_OUT_TS_TAP was specified.
|
||||
* @DMX_OUT_TSDEMUX_TAP:
|
||||
* Like @DMX_OUT_TS_TAP but retrieved from the DMX device.
|
||||
*/
|
||||
enum dmx_output {
|
||||
DMX_OUT_DECODER,
|
||||
DMX_OUT_TAP,
|
||||
DMX_OUT_TS_TAP,
|
||||
DMX_OUT_TSDEMUX_TAP
|
||||
};
|
||||
|
||||
typedef enum dmx_output dmx_output_t;
|
||||
|
||||
typedef enum dmx_input
|
||||
{
|
||||
DMX_IN_FRONTEND, /* Input from a front-end device. */
|
||||
DMX_IN_DVR /* Input from the logical DVR device. */
|
||||
} dmx_input_t;
|
||||
/**
|
||||
* enum dmx_input - Input from the demux.
|
||||
*
|
||||
* @DMX_IN_FRONTEND: Input from a front-end device.
|
||||
* @DMX_IN_DVR: Input from the logical DVR device.
|
||||
*/
|
||||
enum dmx_input {
|
||||
DMX_IN_FRONTEND,
|
||||
DMX_IN_DVR
|
||||
};
|
||||
|
||||
/**
|
||||
* enum dmx_ts_pes - type of the PES filter.
|
||||
*
|
||||
* @DMX_PES_AUDIO0: first audio PID. Also referred as @DMX_PES_AUDIO.
|
||||
* @DMX_PES_VIDEO0: first video PID. Also referred as @DMX_PES_VIDEO.
|
||||
* @DMX_PES_TELETEXT0: first teletext PID. Also referred as @DMX_PES_TELETEXT.
|
||||
* @DMX_PES_SUBTITLE0: first subtitle PID. Also referred as @DMX_PES_SUBTITLE.
|
||||
* @DMX_PES_PCR0: first Program Clock Reference PID.
|
||||
* Also referred as @DMX_PES_PCR.
|
||||
*
|
||||
* @DMX_PES_AUDIO1: second audio PID.
|
||||
* @DMX_PES_VIDEO1: second video PID.
|
||||
* @DMX_PES_TELETEXT1: second teletext PID.
|
||||
* @DMX_PES_SUBTITLE1: second subtitle PID.
|
||||
* @DMX_PES_PCR1: second Program Clock Reference PID.
|
||||
*
|
||||
* @DMX_PES_AUDIO2: third audio PID.
|
||||
* @DMX_PES_VIDEO2: third video PID.
|
||||
* @DMX_PES_TELETEXT2: third teletext PID.
|
||||
* @DMX_PES_SUBTITLE2: third subtitle PID.
|
||||
* @DMX_PES_PCR2: third Program Clock Reference PID.
|
||||
*
|
||||
* @DMX_PES_AUDIO3: fourth audio PID.
|
||||
* @DMX_PES_VIDEO3: fourth video PID.
|
||||
* @DMX_PES_TELETEXT3: fourth teletext PID.
|
||||
* @DMX_PES_SUBTITLE3: fourth subtitle PID.
|
||||
* @DMX_PES_PCR3: fourth Program Clock Reference PID.
|
||||
*
|
||||
* @DMX_PES_OTHER: any other PID.
|
||||
*/
|
||||
|
||||
typedef enum dmx_ts_pes
|
||||
{
|
||||
enum dmx_ts_pes {
|
||||
DMX_PES_AUDIO0,
|
||||
DMX_PES_VIDEO0,
|
||||
DMX_PES_TELETEXT0,
|
||||
@@ -79,7 +125,7 @@ typedef enum dmx_ts_pes
|
||||
DMX_PES_PCR3,
|
||||
|
||||
DMX_PES_OTHER
|
||||
} dmx_pes_type_t;
|
||||
};
|
||||
|
||||
#define DMX_PES_AUDIO DMX_PES_AUDIO0
|
||||
#define DMX_PES_VIDEO DMX_PES_VIDEO0
|
||||
@@ -88,56 +134,80 @@ typedef enum dmx_ts_pes
|
||||
#define DMX_PES_PCR DMX_PES_PCR0
|
||||
|
||||
|
||||
typedef struct dmx_filter
|
||||
{
|
||||
|
||||
/**
|
||||
* struct dmx_filter - Specifies a section header filter.
|
||||
*
|
||||
* @filter: bit array with bits to be matched at the section header.
|
||||
* @mask: bits that are valid at the filter bit array.
|
||||
* @mode: mode of match: if bit is zero, it will match if equal (positive
|
||||
* match); if bit is one, it will match if the bit is negated.
|
||||
*
|
||||
* Note: All arrays in this struct have a size of DMX_FILTER_SIZE (16 bytes).
|
||||
*/
|
||||
struct dmx_filter {
|
||||
__u8 filter[DMX_FILTER_SIZE];
|
||||
__u8 mask[DMX_FILTER_SIZE];
|
||||
__u8 mode[DMX_FILTER_SIZE];
|
||||
} dmx_filter_t;
|
||||
};
|
||||
|
||||
|
||||
struct dmx_sct_filter_params
|
||||
{
|
||||
__u16 pid;
|
||||
dmx_filter_t filter;
|
||||
__u32 timeout;
|
||||
__u32 flags;
|
||||
/**
|
||||
* struct dmx_sct_filter_params - Specifies a section filter.
|
||||
*
|
||||
* @pid: PID to be filtered.
|
||||
* @filter: section header filter, as defined by &struct dmx_filter.
|
||||
* @timeout: maximum time to filter, in milliseconds.
|
||||
* @flags: extra flags for the section filter.
|
||||
*
|
||||
* Carries the configuration for a MPEG-TS section filter.
|
||||
*
|
||||
* The @flags can be:
|
||||
*
|
||||
* - %DMX_CHECK_CRC - only deliver sections where the CRC check succeeded;
|
||||
* - %DMX_ONESHOT - disable the section filter after one section
|
||||
* has been delivered;
|
||||
* - %DMX_IMMEDIATE_START - Start filter immediately without requiring a
|
||||
* :ref:`DMX_START`.
|
||||
*/
|
||||
struct dmx_sct_filter_params {
|
||||
__u16 pid;
|
||||
struct dmx_filter filter;
|
||||
__u32 timeout;
|
||||
__u32 flags;
|
||||
#define DMX_CHECK_CRC 1
|
||||
#define DMX_ONESHOT 2
|
||||
#define DMX_IMMEDIATE_START 4
|
||||
#define DMX_KERNEL_CLIENT 0x8000
|
||||
};
|
||||
|
||||
|
||||
struct dmx_pes_filter_params
|
||||
{
|
||||
__u16 pid;
|
||||
dmx_input_t input;
|
||||
dmx_output_t output;
|
||||
dmx_pes_type_t pes_type;
|
||||
__u32 flags;
|
||||
/**
|
||||
* struct dmx_pes_filter_params - Specifies Packetized Elementary Stream (PES)
|
||||
* filter parameters.
|
||||
*
|
||||
* @pid: PID to be filtered.
|
||||
* @input: Demux input, as specified by &enum dmx_input.
|
||||
* @output: Demux output, as specified by &enum dmx_output.
|
||||
* @pes_type: Type of the pes filter, as specified by &enum dmx_pes_type.
|
||||
* @flags: Demux PES flags.
|
||||
*/
|
||||
struct dmx_pes_filter_params {
|
||||
__u16 pid;
|
||||
enum dmx_input input;
|
||||
enum dmx_output output;
|
||||
enum dmx_ts_pes pes_type;
|
||||
__u32 flags;
|
||||
};
|
||||
|
||||
typedef struct dmx_caps {
|
||||
__u32 caps;
|
||||
int num_decoders;
|
||||
} dmx_caps_t;
|
||||
|
||||
typedef enum dmx_source {
|
||||
DMX_SOURCE_FRONT0 = 0,
|
||||
DMX_SOURCE_FRONT1,
|
||||
DMX_SOURCE_FRONT2,
|
||||
DMX_SOURCE_FRONT3,
|
||||
DMX_SOURCE_DVR0 = 16,
|
||||
DMX_SOURCE_DVR1,
|
||||
DMX_SOURCE_DVR2,
|
||||
DMX_SOURCE_DVR3
|
||||
} dmx_source_t;
|
||||
|
||||
/**
|
||||
* struct dmx_stc - Stores System Time Counter (STC) information.
|
||||
*
|
||||
* @num: input data: number of the STC, from 0 to N.
|
||||
* @base: output: divisor for STC to get 90 kHz clock.
|
||||
* @stc: output: stc in @base * 90 kHz units.
|
||||
*/
|
||||
struct dmx_stc {
|
||||
unsigned int num; /* input : which STC? 0..N */
|
||||
unsigned int base; /* output: divisor for stc to get 90 kHz clock */
|
||||
__u64 stc; /* output: stc in 'base'*90 kHz units */
|
||||
unsigned int num;
|
||||
unsigned int base;
|
||||
__u64 stc;
|
||||
};
|
||||
|
||||
#define DMX_START _IO('o', 41)
|
||||
@@ -146,10 +216,18 @@ struct dmx_stc {
|
||||
#define DMX_SET_PES_FILTER _IOW('o', 44, struct dmx_pes_filter_params)
|
||||
#define DMX_SET_BUFFER_SIZE _IO('o', 45)
|
||||
#define DMX_GET_PES_PIDS _IOR('o', 47, __u16[5])
|
||||
#define DMX_GET_CAPS _IOR('o', 48, dmx_caps_t)
|
||||
#define DMX_SET_SOURCE _IOW('o', 49, dmx_source_t)
|
||||
#define DMX_GET_STC _IOWR('o', 50, struct dmx_stc)
|
||||
#define DMX_ADD_PID _IOW('o', 51, __u16)
|
||||
#define DMX_REMOVE_PID _IOW('o', 52, __u16)
|
||||
|
||||
#if !defined(__KERNEL__)
|
||||
|
||||
/* This is needed for legacy userspace support */
|
||||
typedef enum dmx_output dmx_output_t;
|
||||
typedef enum dmx_input dmx_input_t;
|
||||
typedef enum dmx_ts_pes dmx_pes_type_t;
|
||||
typedef struct dmx_filter dmx_filter_t;
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* _UAPI_DVBDMX_H_ */
|
||||
|
||||
@@ -28,13 +28,46 @@
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
enum fe_type {
|
||||
FE_QPSK,
|
||||
FE_QAM,
|
||||
FE_OFDM,
|
||||
FE_ATSC
|
||||
};
|
||||
|
||||
/**
|
||||
* enum fe_caps - Frontend capabilities
|
||||
*
|
||||
* @FE_IS_STUPID: There's something wrong at the
|
||||
* frontend, and it can't report its
|
||||
* capabilities.
|
||||
* @FE_CAN_INVERSION_AUTO: Can auto-detect frequency spectral
|
||||
* band inversion
|
||||
* @FE_CAN_FEC_1_2: Supports FEC 1/2
|
||||
* @FE_CAN_FEC_2_3: Supports FEC 2/3
|
||||
* @FE_CAN_FEC_3_4: Supports FEC 3/4
|
||||
* @FE_CAN_FEC_4_5: Supports FEC 4/5
|
||||
* @FE_CAN_FEC_5_6: Supports FEC 5/6
|
||||
* @FE_CAN_FEC_6_7: Supports FEC 6/7
|
||||
* @FE_CAN_FEC_7_8: Supports FEC 7/8
|
||||
* @FE_CAN_FEC_8_9: Supports FEC 8/9
|
||||
* @FE_CAN_FEC_AUTO: Can auto-detect FEC
|
||||
* @FE_CAN_QPSK: Supports QPSK modulation
|
||||
* @FE_CAN_QAM_16: Supports 16-QAM modulation
|
||||
* @FE_CAN_QAM_32: Supports 32-QAM modulation
|
||||
* @FE_CAN_QAM_64: Supports 64-QAM modulation
|
||||
* @FE_CAN_QAM_128: Supports 128-QAM modulation
|
||||
* @FE_CAN_QAM_256: Supports 256-QAM modulation
|
||||
* @FE_CAN_QAM_AUTO: Can auto-detect QAM modulation
|
||||
* @FE_CAN_TRANSMISSION_MODE_AUTO: Can auto-detect transmission mode
|
||||
* @FE_CAN_BANDWIDTH_AUTO: Can auto-detect bandwidth
|
||||
* @FE_CAN_GUARD_INTERVAL_AUTO: Can auto-detect guard interval
|
||||
* @FE_CAN_HIERARCHY_AUTO: Can auto-detect hierarchy
|
||||
* @FE_CAN_8VSB: Supports 8-VSB modulation
|
||||
* @FE_CAN_16VSB: Supporta 16-VSB modulation
|
||||
* @FE_HAS_EXTENDED_CAPS: Unused
|
||||
* @FE_CAN_MULTISTREAM: Supports multistream filtering
|
||||
* @FE_CAN_TURBO_FEC: Supports "turbo FEC" modulation
|
||||
* @FE_CAN_2G_MODULATION: Supports "2nd generation" modulation,
|
||||
* e. g. DVB-S2, DVB-T2, DVB-C2
|
||||
* @FE_NEEDS_BENDING: Unused
|
||||
* @FE_CAN_RECOVER: Can recover from a cable unplug
|
||||
* automatically
|
||||
* @FE_CAN_MUTE_TS: Can stop spurious TS data output
|
||||
*/
|
||||
enum fe_caps {
|
||||
FE_IS_STUPID = 0,
|
||||
FE_CAN_INVERSION_AUTO = 0x1,
|
||||
@@ -60,15 +93,55 @@ enum fe_caps {
|
||||
FE_CAN_HIERARCHY_AUTO = 0x100000,
|
||||
FE_CAN_8VSB = 0x200000,
|
||||
FE_CAN_16VSB = 0x400000,
|
||||
FE_HAS_EXTENDED_CAPS = 0x800000, /* We need more bitspace for newer APIs, indicate this. */
|
||||
FE_CAN_MULTISTREAM = 0x4000000, /* frontend supports multistream filtering */
|
||||
FE_CAN_TURBO_FEC = 0x8000000, /* frontend supports "turbo fec modulation" */
|
||||
FE_CAN_2G_MODULATION = 0x10000000, /* frontend supports "2nd generation modulation" (DVB-S2) */
|
||||
FE_NEEDS_BENDING = 0x20000000, /* not supported anymore, don't use (frontend requires frequency bending) */
|
||||
FE_CAN_RECOVER = 0x40000000, /* frontend can recover from a cable unplug automatically */
|
||||
FE_CAN_MUTE_TS = 0x80000000 /* frontend can stop spurious TS data output */
|
||||
FE_HAS_EXTENDED_CAPS = 0x800000,
|
||||
FE_CAN_MULTISTREAM = 0x4000000,
|
||||
FE_CAN_TURBO_FEC = 0x8000000,
|
||||
FE_CAN_2G_MODULATION = 0x10000000,
|
||||
FE_NEEDS_BENDING = 0x20000000,
|
||||
FE_CAN_RECOVER = 0x40000000,
|
||||
FE_CAN_MUTE_TS = 0x80000000
|
||||
};
|
||||
|
||||
/*
|
||||
* DEPRECATED: Should be kept just due to backward compatibility.
|
||||
*/
|
||||
enum fe_type {
|
||||
FE_QPSK,
|
||||
FE_QAM,
|
||||
FE_OFDM,
|
||||
FE_ATSC
|
||||
};
|
||||
|
||||
/**
|
||||
* struct dvb_frontend_info - Frontend properties and capabilities
|
||||
*
|
||||
* @name: Name of the frontend
|
||||
* @type: **DEPRECATED**.
|
||||
* Should not be used on modern programs,
|
||||
* as a frontend may have more than one type.
|
||||
* In order to get the support types of a given
|
||||
* frontend, use :c:type:`DTV_ENUM_DELSYS`
|
||||
* instead.
|
||||
* @frequency_min: Minimal frequency supported by the frontend.
|
||||
* @frequency_max: Minimal frequency supported by the frontend.
|
||||
* @frequency_stepsize: All frequencies are multiple of this value.
|
||||
* @frequency_tolerance: Frequency tolerance.
|
||||
* @symbol_rate_min: Minimal symbol rate, in bauds
|
||||
* (for Cable/Satellite systems).
|
||||
* @symbol_rate_max: Maximal symbol rate, in bauds
|
||||
* (for Cable/Satellite systems).
|
||||
* @symbol_rate_tolerance: Maximal symbol rate tolerance, in ppm
|
||||
* (for Cable/Satellite systems).
|
||||
* @notifier_delay: **DEPRECATED**. Not used by any driver.
|
||||
* @caps: Capabilities supported by the frontend,
|
||||
* as specified in &enum fe_caps.
|
||||
*
|
||||
* .. note:
|
||||
*
|
||||
* #. The frequencies are specified in Hz for Terrestrial and Cable
|
||||
* systems.
|
||||
* #. The frequencies are specified in kHz for Satellite systems.
|
||||
*/
|
||||
struct dvb_frontend_info {
|
||||
char name[128];
|
||||
enum fe_type type; /* DEPRECATED. Use DTV_ENUM_DELSYS instead */
|
||||
@@ -78,55 +151,105 @@ struct dvb_frontend_info {
|
||||
__u32 frequency_tolerance;
|
||||
__u32 symbol_rate_min;
|
||||
__u32 symbol_rate_max;
|
||||
__u32 symbol_rate_tolerance; /* ppm */
|
||||
__u32 symbol_rate_tolerance;
|
||||
__u32 notifier_delay; /* DEPRECATED */
|
||||
enum fe_caps caps;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Check out the DiSEqC bus spec available on http://www.eutelsat.org/ for
|
||||
* the meaning of this struct...
|
||||
* struct dvb_diseqc_master_cmd - DiSEqC master command
|
||||
*
|
||||
* @msg:
|
||||
* DiSEqC message to be sent. It contains a 3 bytes header with:
|
||||
* framing + address + command, and an optional argument
|
||||
* of up to 3 bytes of data.
|
||||
* @msg_len:
|
||||
* Length of the DiSEqC message. Valid values are 3 to 6.
|
||||
*
|
||||
* Check out the DiSEqC bus spec available on http://www.eutelsat.org/ for
|
||||
* the possible messages that can be used.
|
||||
*/
|
||||
struct dvb_diseqc_master_cmd {
|
||||
__u8 msg [6]; /* { framing, address, command, data [3] } */
|
||||
__u8 msg_len; /* valid values are 3...6 */
|
||||
__u8 msg[6];
|
||||
__u8 msg_len;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct dvb_diseqc_slave_reply - DiSEqC received data
|
||||
*
|
||||
* @msg:
|
||||
* DiSEqC message buffer to store a message received via DiSEqC.
|
||||
* It contains one byte header with: framing and
|
||||
* an optional argument of up to 3 bytes of data.
|
||||
* @msg_len:
|
||||
* Length of the DiSEqC message. Valid values are 0 to 4,
|
||||
* where 0 means no message.
|
||||
* @timeout:
|
||||
* Return from ioctl after timeout ms with errorcode when
|
||||
* no message was received.
|
||||
*
|
||||
* Check out the DiSEqC bus spec available on http://www.eutelsat.org/ for
|
||||
* the possible messages that can be used.
|
||||
*/
|
||||
struct dvb_diseqc_slave_reply {
|
||||
__u8 msg [4]; /* { framing, data [3] } */
|
||||
__u8 msg_len; /* valid values are 0...4, 0 means no msg */
|
||||
int timeout; /* return from ioctl after timeout ms with */
|
||||
}; /* errorcode when no message was received */
|
||||
__u8 msg[4];
|
||||
__u8 msg_len;
|
||||
int timeout;
|
||||
};
|
||||
|
||||
/**
|
||||
* enum fe_sec_voltage - DC Voltage used to feed the LNBf
|
||||
*
|
||||
* @SEC_VOLTAGE_13: Output 13V to the LNBf
|
||||
* @SEC_VOLTAGE_18: Output 18V to the LNBf
|
||||
* @SEC_VOLTAGE_OFF: Don't feed the LNBf with a DC voltage
|
||||
*/
|
||||
enum fe_sec_voltage {
|
||||
SEC_VOLTAGE_13,
|
||||
SEC_VOLTAGE_18,
|
||||
SEC_VOLTAGE_OFF
|
||||
};
|
||||
|
||||
/**
|
||||
* enum fe_sec_tone_mode - Type of tone to be send to the LNBf.
|
||||
* @SEC_TONE_ON: Sends a 22kHz tone burst to the antenna.
|
||||
* @SEC_TONE_OFF: Don't send a 22kHz tone to the antenna (except
|
||||
* if the ``FE_DISEQC_*`` ioctls are called).
|
||||
*/
|
||||
enum fe_sec_tone_mode {
|
||||
SEC_TONE_ON,
|
||||
SEC_TONE_OFF
|
||||
};
|
||||
|
||||
/**
|
||||
* enum fe_sec_mini_cmd - Type of mini burst to be sent
|
||||
*
|
||||
* @SEC_MINI_A: Sends a mini-DiSEqC 22kHz '0' Tone Burst to select
|
||||
* satellite-A
|
||||
* @SEC_MINI_B: Sends a mini-DiSEqC 22kHz '1' Data Burst to select
|
||||
* satellite-B
|
||||
*/
|
||||
enum fe_sec_mini_cmd {
|
||||
SEC_MINI_A,
|
||||
SEC_MINI_B
|
||||
};
|
||||
|
||||
/**
|
||||
* enum fe_status - enumerates the possible frontend status
|
||||
* @FE_HAS_SIGNAL: found something above the noise level
|
||||
* @FE_HAS_CARRIER: found a DVB signal
|
||||
* @FE_HAS_VITERBI: FEC is stable
|
||||
* @FE_HAS_SYNC: found sync bytes
|
||||
* @FE_HAS_LOCK: everything's working
|
||||
* @FE_TIMEDOUT: no lock within the last ~2 seconds
|
||||
* @FE_REINIT: frontend was reinitialized, application is recommended
|
||||
* to reset DiSEqC, tone and parameters
|
||||
* enum fe_status - Enumerates the possible frontend status.
|
||||
* @FE_NONE: The frontend doesn't have any kind of lock.
|
||||
* That's the initial frontend status
|
||||
* @FE_HAS_SIGNAL: Has found something above the noise level.
|
||||
* @FE_HAS_CARRIER: Has found a signal.
|
||||
* @FE_HAS_VITERBI: FEC inner coding (Viterbi, LDPC or other inner code).
|
||||
* is stable.
|
||||
* @FE_HAS_SYNC: Synchronization bytes was found.
|
||||
* @FE_HAS_LOCK: Digital TV were locked and everything is working.
|
||||
* @FE_TIMEDOUT: Fo lock within the last about 2 seconds.
|
||||
* @FE_REINIT: Frontend was reinitialized, application is recommended
|
||||
* to reset DiSEqC, tone and parameters.
|
||||
*/
|
||||
enum fe_status {
|
||||
FE_NONE = 0x00,
|
||||
FE_HAS_SIGNAL = 0x01,
|
||||
FE_HAS_CARRIER = 0x02,
|
||||
FE_HAS_VITERBI = 0x04,
|
||||
@@ -136,12 +259,45 @@ enum fe_status {
|
||||
FE_REINIT = 0x40,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum fe_spectral_inversion - Type of inversion band
|
||||
*
|
||||
* @INVERSION_OFF: Don't do spectral band inversion.
|
||||
* @INVERSION_ON: Do spectral band inversion.
|
||||
* @INVERSION_AUTO: Autodetect spectral band inversion.
|
||||
*
|
||||
* This parameter indicates if spectral inversion should be presumed or
|
||||
* not. In the automatic setting (``INVERSION_AUTO``) the hardware will try
|
||||
* to figure out the correct setting by itself. If the hardware doesn't
|
||||
* support, the %dvb_frontend will try to lock at the carrier first with
|
||||
* inversion off. If it fails, it will try to enable inversion.
|
||||
*/
|
||||
enum fe_spectral_inversion {
|
||||
INVERSION_OFF,
|
||||
INVERSION_ON,
|
||||
INVERSION_AUTO
|
||||
};
|
||||
|
||||
/**
|
||||
* enum fe_code_rate - Type of Forward Error Correction (FEC)
|
||||
*
|
||||
*
|
||||
* @FEC_NONE: No Forward Error Correction Code
|
||||
* @FEC_1_2: Forward Error Correction Code 1/2
|
||||
* @FEC_2_3: Forward Error Correction Code 2/3
|
||||
* @FEC_3_4: Forward Error Correction Code 3/4
|
||||
* @FEC_4_5: Forward Error Correction Code 4/5
|
||||
* @FEC_5_6: Forward Error Correction Code 5/6
|
||||
* @FEC_6_7: Forward Error Correction Code 6/7
|
||||
* @FEC_7_8: Forward Error Correction Code 7/8
|
||||
* @FEC_8_9: Forward Error Correction Code 8/9
|
||||
* @FEC_AUTO: Autodetect Error Correction Code
|
||||
* @FEC_3_5: Forward Error Correction Code 3/5
|
||||
* @FEC_9_10: Forward Error Correction Code 9/10
|
||||
* @FEC_2_5: Forward Error Correction Code 2/5
|
||||
*
|
||||
* Please note that not all FEC types are supported by a given standard.
|
||||
*/
|
||||
enum fe_code_rate {
|
||||
FEC_NONE = 0,
|
||||
FEC_1_2,
|
||||
@@ -158,6 +314,26 @@ enum fe_code_rate {
|
||||
FEC_2_5,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum fe_modulation - Type of modulation/constellation
|
||||
* @QPSK: QPSK modulation
|
||||
* @QAM_16: 16-QAM modulation
|
||||
* @QAM_32: 32-QAM modulation
|
||||
* @QAM_64: 64-QAM modulation
|
||||
* @QAM_128: 128-QAM modulation
|
||||
* @QAM_256: 256-QAM modulation
|
||||
* @QAM_AUTO: Autodetect QAM modulation
|
||||
* @VSB_8: 8-VSB modulation
|
||||
* @VSB_16: 16-VSB modulation
|
||||
* @PSK_8: 8-PSK modulation
|
||||
* @APSK_16: 16-APSK modulation
|
||||
* @APSK_32: 32-APSK modulation
|
||||
* @DQPSK: DQPSK modulation
|
||||
* @QAM_4_NR: 4-QAM-NR modulation
|
||||
*
|
||||
* Please note that not all modulations are supported by a given standard.
|
||||
*
|
||||
*/
|
||||
enum fe_modulation {
|
||||
QPSK,
|
||||
QAM_16,
|
||||
@@ -175,6 +351,32 @@ enum fe_modulation {
|
||||
QAM_4_NR,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum fe_transmit_mode - Transmission mode
|
||||
*
|
||||
* @TRANSMISSION_MODE_AUTO:
|
||||
* Autodetect transmission mode. The hardware will try to find the
|
||||
* correct FFT-size (if capable) to fill in the missing parameters.
|
||||
* @TRANSMISSION_MODE_1K:
|
||||
* Transmission mode 1K
|
||||
* @TRANSMISSION_MODE_2K:
|
||||
* Transmission mode 2K
|
||||
* @TRANSMISSION_MODE_8K:
|
||||
* Transmission mode 8K
|
||||
* @TRANSMISSION_MODE_4K:
|
||||
* Transmission mode 4K
|
||||
* @TRANSMISSION_MODE_16K:
|
||||
* Transmission mode 16K
|
||||
* @TRANSMISSION_MODE_32K:
|
||||
* Transmission mode 32K
|
||||
* @TRANSMISSION_MODE_C1:
|
||||
* Single Carrier (C=1) transmission mode (DTMB only)
|
||||
* @TRANSMISSION_MODE_C3780:
|
||||
* Multi Carrier (C=3780) transmission mode (DTMB only)
|
||||
*
|
||||
* Please note that not all transmission modes are supported by a given
|
||||
* standard.
|
||||
*/
|
||||
enum fe_transmit_mode {
|
||||
TRANSMISSION_MODE_2K,
|
||||
TRANSMISSION_MODE_8K,
|
||||
@@ -187,6 +389,23 @@ enum fe_transmit_mode {
|
||||
TRANSMISSION_MODE_C3780,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum fe_guard_interval - Guard interval
|
||||
*
|
||||
* @GUARD_INTERVAL_AUTO: Autodetect the guard interval
|
||||
* @GUARD_INTERVAL_1_128: Guard interval 1/128
|
||||
* @GUARD_INTERVAL_1_32: Guard interval 1/32
|
||||
* @GUARD_INTERVAL_1_16: Guard interval 1/16
|
||||
* @GUARD_INTERVAL_1_8: Guard interval 1/8
|
||||
* @GUARD_INTERVAL_1_4: Guard interval 1/4
|
||||
* @GUARD_INTERVAL_19_128: Guard interval 19/128
|
||||
* @GUARD_INTERVAL_19_256: Guard interval 19/256
|
||||
* @GUARD_INTERVAL_PN420: PN length 420 (1/4)
|
||||
* @GUARD_INTERVAL_PN595: PN length 595 (1/6)
|
||||
* @GUARD_INTERVAL_PN945: PN length 945 (1/9)
|
||||
*
|
||||
* Please note that not all guard intervals are supported by a given standard.
|
||||
*/
|
||||
enum fe_guard_interval {
|
||||
GUARD_INTERVAL_1_32,
|
||||
GUARD_INTERVAL_1_16,
|
||||
@@ -201,6 +420,16 @@ enum fe_guard_interval {
|
||||
GUARD_INTERVAL_PN945,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum fe_hierarchy - Hierarchy
|
||||
* @HIERARCHY_NONE: No hierarchy
|
||||
* @HIERARCHY_AUTO: Autodetect hierarchy (if supported)
|
||||
* @HIERARCHY_1: Hierarchy 1
|
||||
* @HIERARCHY_2: Hierarchy 2
|
||||
* @HIERARCHY_4: Hierarchy 4
|
||||
*
|
||||
* Please note that not all hierarchy types are supported by a given standard.
|
||||
*/
|
||||
enum fe_hierarchy {
|
||||
HIERARCHY_NONE,
|
||||
HIERARCHY_1,
|
||||
@@ -209,6 +438,15 @@ enum fe_hierarchy {
|
||||
HIERARCHY_AUTO
|
||||
};
|
||||
|
||||
/**
|
||||
* enum fe_interleaving - Interleaving
|
||||
* @INTERLEAVING_NONE: No interleaving.
|
||||
* @INTERLEAVING_AUTO: Auto-detect interleaving.
|
||||
* @INTERLEAVING_240: Interleaving of 240 symbols.
|
||||
* @INTERLEAVING_720: Interleaving of 720 symbols.
|
||||
*
|
||||
* Please note that, currently, only DTMB uses it.
|
||||
*/
|
||||
enum fe_interleaving {
|
||||
INTERLEAVING_NONE,
|
||||
INTERLEAVING_AUTO,
|
||||
@@ -216,7 +454,8 @@ enum fe_interleaving {
|
||||
INTERLEAVING_720,
|
||||
};
|
||||
|
||||
/* S2API Commands */
|
||||
/* DVBv5 property Commands */
|
||||
|
||||
#define DTV_UNDEFINED 0
|
||||
#define DTV_TUNE 1
|
||||
#define DTV_CLEAR 2
|
||||
@@ -309,19 +548,79 @@ enum fe_interleaving {
|
||||
|
||||
#define DTV_MAX_COMMAND DTV_STAT_TOTAL_BLOCK_COUNT
|
||||
|
||||
/**
|
||||
* enum fe_pilot - Type of pilot tone
|
||||
*
|
||||
* @PILOT_ON: Pilot tones enabled
|
||||
* @PILOT_OFF: Pilot tones disabled
|
||||
* @PILOT_AUTO: Autodetect pilot tones
|
||||
*/
|
||||
enum fe_pilot {
|
||||
PILOT_ON,
|
||||
PILOT_OFF,
|
||||
PILOT_AUTO,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum fe_rolloff - Rolloff factor
|
||||
* @ROLLOFF_35: Roloff factor: α=35%
|
||||
* @ROLLOFF_20: Roloff factor: α=20%
|
||||
* @ROLLOFF_25: Roloff factor: α=25%
|
||||
* @ROLLOFF_AUTO: Auto-detect the roloff factor.
|
||||
*
|
||||
* .. note:
|
||||
*
|
||||
* Roloff factor of 35% is implied on DVB-S. On DVB-S2, it is default.
|
||||
*/
|
||||
enum fe_rolloff {
|
||||
ROLLOFF_35, /* Implied value in DVB-S, default for DVB-S2 */
|
||||
ROLLOFF_35,
|
||||
ROLLOFF_20,
|
||||
ROLLOFF_25,
|
||||
ROLLOFF_AUTO,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum fe_delivery_system - Type of the delivery system
|
||||
*
|
||||
* @SYS_UNDEFINED:
|
||||
* Undefined standard. Generally, indicates an error
|
||||
* @SYS_DVBC_ANNEX_A:
|
||||
* Cable TV: DVB-C following ITU-T J.83 Annex A spec
|
||||
* @SYS_DVBC_ANNEX_B:
|
||||
* Cable TV: DVB-C following ITU-T J.83 Annex B spec (ClearQAM)
|
||||
* @SYS_DVBC_ANNEX_C:
|
||||
* Cable TV: DVB-C following ITU-T J.83 Annex C spec
|
||||
* @SYS_ISDBC:
|
||||
* Cable TV: ISDB-C (no drivers yet)
|
||||
* @SYS_DVBT:
|
||||
* Terrestrial TV: DVB-T
|
||||
* @SYS_DVBT2:
|
||||
* Terrestrial TV: DVB-T2
|
||||
* @SYS_ISDBT:
|
||||
* Terrestrial TV: ISDB-T
|
||||
* @SYS_ATSC:
|
||||
* Terrestrial TV: ATSC
|
||||
* @SYS_ATSCMH:
|
||||
* Terrestrial TV (mobile): ATSC-M/H
|
||||
* @SYS_DTMB:
|
||||
* Terrestrial TV: DTMB
|
||||
* @SYS_DVBS:
|
||||
* Satellite TV: DVB-S
|
||||
* @SYS_DVBS2:
|
||||
* Satellite TV: DVB-S2
|
||||
* @SYS_TURBO:
|
||||
* Satellite TV: DVB-S Turbo
|
||||
* @SYS_ISDBS:
|
||||
* Satellite TV: ISDB-S
|
||||
* @SYS_DAB:
|
||||
* Digital audio: DAB (not fully supported)
|
||||
* @SYS_DSS:
|
||||
* Satellite TV: DSS (not fully supported)
|
||||
* @SYS_CMMB:
|
||||
* Terrestrial TV (mobile): CMMB (not fully supported)
|
||||
* @SYS_DVBH:
|
||||
* Terrestrial TV (mobile): DVB-H (standard deprecated)
|
||||
*/
|
||||
enum fe_delivery_system {
|
||||
SYS_UNDEFINED,
|
||||
SYS_DVBC_ANNEX_A,
|
||||
@@ -344,35 +643,85 @@ enum fe_delivery_system {
|
||||
SYS_DVBC_ANNEX_C,
|
||||
};
|
||||
|
||||
/* backward compatibility */
|
||||
/* backward compatibility definitions for delivery systems */
|
||||
#define SYS_DVBC_ANNEX_AC SYS_DVBC_ANNEX_A
|
||||
#define SYS_DMBTH SYS_DTMB /* DMB-TH is legacy name, use DTMB instead */
|
||||
#define SYS_DMBTH SYS_DTMB /* DMB-TH is legacy name, use DTMB */
|
||||
|
||||
/* ATSC-MH */
|
||||
/* ATSC-MH specific parameters */
|
||||
|
||||
/**
|
||||
* enum atscmh_sccc_block_mode - Type of Series Concatenated Convolutional
|
||||
* Code Block Mode.
|
||||
*
|
||||
* @ATSCMH_SCCC_BLK_SEP:
|
||||
* Separate SCCC: the SCCC outer code mode shall be set independently
|
||||
* for each Group Region (A, B, C, D)
|
||||
* @ATSCMH_SCCC_BLK_COMB:
|
||||
* Combined SCCC: all four Regions shall have the same SCCC outer
|
||||
* code mode.
|
||||
* @ATSCMH_SCCC_BLK_RES:
|
||||
* Reserved. Shouldn't be used.
|
||||
*/
|
||||
enum atscmh_sccc_block_mode {
|
||||
ATSCMH_SCCC_BLK_SEP = 0,
|
||||
ATSCMH_SCCC_BLK_COMB = 1,
|
||||
ATSCMH_SCCC_BLK_RES = 2,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum atscmh_sccc_code_mode - Type of Series Concatenated Convolutional
|
||||
* Code Rate.
|
||||
*
|
||||
* @ATSCMH_SCCC_CODE_HLF:
|
||||
* The outer code rate of a SCCC Block is 1/2 rate.
|
||||
* @ATSCMH_SCCC_CODE_QTR:
|
||||
* The outer code rate of a SCCC Block is 1/4 rate.
|
||||
* @ATSCMH_SCCC_CODE_RES:
|
||||
* Reserved. Should not be used.
|
||||
*/
|
||||
enum atscmh_sccc_code_mode {
|
||||
ATSCMH_SCCC_CODE_HLF = 0,
|
||||
ATSCMH_SCCC_CODE_QTR = 1,
|
||||
ATSCMH_SCCC_CODE_RES = 2,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum atscmh_rs_frame_ensemble - Reed Solomon(RS) frame ensemble.
|
||||
*
|
||||
* @ATSCMH_RSFRAME_ENS_PRI: Primary Ensemble.
|
||||
* @ATSCMH_RSFRAME_ENS_SEC: Secondary Ensemble.
|
||||
*/
|
||||
enum atscmh_rs_frame_ensemble {
|
||||
ATSCMH_RSFRAME_ENS_PRI = 0,
|
||||
ATSCMH_RSFRAME_ENS_SEC = 1,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum atscmh_rs_frame_mode - Reed Solomon (RS) frame mode.
|
||||
*
|
||||
* @ATSCMH_RSFRAME_PRI_ONLY:
|
||||
* Single Frame: There is only a primary RS Frame for all Group
|
||||
* Regions.
|
||||
* @ATSCMH_RSFRAME_PRI_SEC:
|
||||
* Dual Frame: There are two separate RS Frames: Primary RS Frame for
|
||||
* Group Region A and B and Secondary RS Frame for Group Region C and
|
||||
* D.
|
||||
* @ATSCMH_RSFRAME_RES:
|
||||
* Reserved. Shouldn't be used.
|
||||
*/
|
||||
enum atscmh_rs_frame_mode {
|
||||
ATSCMH_RSFRAME_PRI_ONLY = 0,
|
||||
ATSCMH_RSFRAME_PRI_SEC = 1,
|
||||
ATSCMH_RSFRAME_RES = 2,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum atscmh_rs_code_mode
|
||||
* @ATSCMH_RSCODE_211_187: Reed Solomon code (211,187).
|
||||
* @ATSCMH_RSCODE_223_187: Reed Solomon code (223,187).
|
||||
* @ATSCMH_RSCODE_235_187: Reed Solomon code (235,187).
|
||||
* @ATSCMH_RSCODE_RES: Reserved. Shouldn't be used.
|
||||
*/
|
||||
enum atscmh_rs_code_mode {
|
||||
ATSCMH_RSCODE_211_187 = 0,
|
||||
ATSCMH_RSCODE_223_187 = 1,
|
||||
@@ -383,28 +732,18 @@ enum atscmh_rs_code_mode {
|
||||
#define NO_STREAM_ID_FILTER (~0U)
|
||||
#define LNA_AUTO (~0U)
|
||||
|
||||
struct dtv_cmds_h {
|
||||
char *name; /* A display name for debugging purposes */
|
||||
|
||||
__u32 cmd; /* A unique ID */
|
||||
|
||||
/* Flags */
|
||||
__u32 set:1; /* Either a set or get property */
|
||||
__u32 buffer:1; /* Does this property use the buffer? */
|
||||
__u32 reserved:30; /* Align */
|
||||
};
|
||||
|
||||
/**
|
||||
* Scale types for the quality parameters.
|
||||
* enum fecap_scale_params - scale types for the quality parameters.
|
||||
*
|
||||
* @FE_SCALE_NOT_AVAILABLE: That QoS measure is not available. That
|
||||
* could indicate a temporary or a permanent
|
||||
* condition.
|
||||
* @FE_SCALE_DECIBEL: The scale is measured in 0.001 dB steps, typically
|
||||
* used on signal measures.
|
||||
* used on signal measures.
|
||||
* @FE_SCALE_RELATIVE: The scale is a relative percentual measure,
|
||||
* ranging from 0 (0%) to 0xffff (100%).
|
||||
* ranging from 0 (0%) to 0xffff (100%).
|
||||
* @FE_SCALE_COUNTER: The scale counts the occurrence of an event, like
|
||||
* bit error, block error, lapsed time.
|
||||
* bit error, block error, lapsed time.
|
||||
*/
|
||||
enum fecap_scale_params {
|
||||
FE_SCALE_NOT_AVAILABLE = 0,
|
||||
@@ -416,24 +755,38 @@ enum fecap_scale_params {
|
||||
/**
|
||||
* struct dtv_stats - Used for reading a DTV status property
|
||||
*
|
||||
* @value: value of the measure. Should range from 0 to 0xffff;
|
||||
* @scale: Filled with enum fecap_scale_params - the scale
|
||||
* in usage for that parameter
|
||||
*
|
||||
* The ``{unnamed_union}`` may have either one of the values below:
|
||||
*
|
||||
* %svalue
|
||||
* integer value of the measure, for %FE_SCALE_DECIBEL,
|
||||
* used for dB measures. The unit is 0.001 dB.
|
||||
*
|
||||
* %uvalue
|
||||
* unsigned integer value of the measure, used when @scale is
|
||||
* either %FE_SCALE_RELATIVE or %FE_SCALE_COUNTER.
|
||||
*
|
||||
* For most delivery systems, this will return a single value for each
|
||||
* parameter.
|
||||
*
|
||||
* It should be noticed, however, that new OFDM delivery systems like
|
||||
* ISDB can use different modulation types for each group of carriers.
|
||||
* On such standards, up to 8 groups of statistics can be provided, one
|
||||
* for each carrier group (called "layer" on ISDB).
|
||||
*
|
||||
* In order to be consistent with other delivery systems, the first
|
||||
* value refers to the entire set of carriers ("global").
|
||||
* dtv_status:scale should use the value FE_SCALE_NOT_AVAILABLE when
|
||||
*
|
||||
* @scale should use the value %FE_SCALE_NOT_AVAILABLE when
|
||||
* the value for the entire group of carriers or from one specific layer
|
||||
* is not provided by the hardware.
|
||||
* st.len should be filled with the latest filled status + 1.
|
||||
*
|
||||
* In other words, for ISDB, those values should be filled like:
|
||||
* @len should be filled with the latest filled status + 1.
|
||||
*
|
||||
* In other words, for ISDB, those values should be filled like::
|
||||
*
|
||||
* u.st.stat.svalue[0] = global statistics;
|
||||
* u.st.stat.scale[0] = FE_SCALE_DECIBEL;
|
||||
* u.st.stat.value[1] = layer A statistics;
|
||||
@@ -455,11 +808,39 @@ struct dtv_stats {
|
||||
|
||||
#define MAX_DTV_STATS 4
|
||||
|
||||
/**
|
||||
* struct dtv_fe_stats - store Digital TV frontend statistics
|
||||
*
|
||||
* @len: length of the statistics - if zero, stats is disabled.
|
||||
* @stat: array with digital TV statistics.
|
||||
*
|
||||
* On most standards, @len can either be 0 or 1. However, for ISDB, each
|
||||
* layer is modulated in separate. So, each layer may have its own set
|
||||
* of statistics. If so, stat[0] carries on a global value for the property.
|
||||
* Indexes 1 to 3 means layer A to B.
|
||||
*/
|
||||
struct dtv_fe_stats {
|
||||
__u8 len;
|
||||
struct dtv_stats stat[MAX_DTV_STATS];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
/**
|
||||
* struct dtv_property - store one of frontend command and its value
|
||||
*
|
||||
* @cmd: Digital TV command.
|
||||
* @reserved: Not used.
|
||||
* @u: Union with the values for the command.
|
||||
* @result: Result of the command set (currently unused).
|
||||
*
|
||||
* The @u union may have either one of the values below:
|
||||
*
|
||||
* %data
|
||||
* an unsigned 32-bits number.
|
||||
* %st
|
||||
* a &struct dtv_fe_stats array of statistics.
|
||||
* %buffer
|
||||
* a buffer of up to 32 characters (currently unused).
|
||||
*/
|
||||
struct dtv_property {
|
||||
__u32 cmd;
|
||||
__u32 reserved[3];
|
||||
@@ -479,17 +860,70 @@ struct dtv_property {
|
||||
/* num of properties cannot exceed DTV_IOCTL_MAX_MSGS per ioctl */
|
||||
#define DTV_IOCTL_MAX_MSGS 64
|
||||
|
||||
/**
|
||||
* struct dtv_properties - a set of command/value pairs.
|
||||
*
|
||||
* @num: amount of commands stored at the struct.
|
||||
* @props: a pointer to &struct dtv_property.
|
||||
*/
|
||||
struct dtv_properties {
|
||||
__u32 num;
|
||||
struct dtv_property *props;
|
||||
};
|
||||
|
||||
#if defined(__DVB_CORE__) || !defined (__KERNEL__)
|
||||
/*
|
||||
* When set, this flag will disable any zigzagging or other "normal" tuning
|
||||
* behavior. Additionally, there will be no automatic monitoring of the lock
|
||||
* status, and hence no frontend events will be generated. If a frontend device
|
||||
* is closed, this flag will be automatically turned off when the device is
|
||||
* reopened read-write.
|
||||
*/
|
||||
#define FE_TUNE_MODE_ONESHOT 0x01
|
||||
|
||||
/* Digital TV Frontend API calls */
|
||||
|
||||
#define FE_GET_INFO _IOR('o', 61, struct dvb_frontend_info)
|
||||
|
||||
#define FE_DISEQC_RESET_OVERLOAD _IO('o', 62)
|
||||
#define FE_DISEQC_SEND_MASTER_CMD _IOW('o', 63, struct dvb_diseqc_master_cmd)
|
||||
#define FE_DISEQC_RECV_SLAVE_REPLY _IOR('o', 64, struct dvb_diseqc_slave_reply)
|
||||
#define FE_DISEQC_SEND_BURST _IO('o', 65) /* fe_sec_mini_cmd_t */
|
||||
|
||||
#define FE_SET_TONE _IO('o', 66) /* fe_sec_tone_mode_t */
|
||||
#define FE_SET_VOLTAGE _IO('o', 67) /* fe_sec_voltage_t */
|
||||
#define FE_ENABLE_HIGH_LNB_VOLTAGE _IO('o', 68) /* int */
|
||||
|
||||
#define FE_READ_STATUS _IOR('o', 69, fe_status_t)
|
||||
#define FE_READ_BER _IOR('o', 70, __u32)
|
||||
#define FE_READ_SIGNAL_STRENGTH _IOR('o', 71, __u16)
|
||||
#define FE_READ_SNR _IOR('o', 72, __u16)
|
||||
#define FE_READ_UNCORRECTED_BLOCKS _IOR('o', 73, __u32)
|
||||
|
||||
#define FE_SET_FRONTEND_TUNE_MODE _IO('o', 81) /* unsigned int */
|
||||
#define FE_GET_EVENT _IOR('o', 78, struct dvb_frontend_event)
|
||||
|
||||
#define FE_DISHNETWORK_SEND_LEGACY_CMD _IO('o', 80) /* unsigned int */
|
||||
|
||||
#define FE_SET_PROPERTY _IOW('o', 82, struct dtv_properties)
|
||||
#define FE_GET_PROPERTY _IOR('o', 83, struct dtv_properties)
|
||||
|
||||
#if defined(__DVB_CORE__) || !defined(__KERNEL__)
|
||||
|
||||
/*
|
||||
* DEPRECATED: Everything below is deprecated in favor of DVBv5 API
|
||||
*
|
||||
* The DVBv3 only ioctls, structs and enums should not be used on
|
||||
* newer programs, as it doesn't support the second generation of
|
||||
* digital TV standards, nor supports newer delivery systems.
|
||||
* They also don't support modern frontends with usually support multiple
|
||||
* delivery systems.
|
||||
*
|
||||
* Drivers shouldn't use them.
|
||||
*
|
||||
* New applications should use DVBv5 delivery system instead
|
||||
*/
|
||||
|
||||
/*
|
||||
* DEPRECATED: The DVBv3 ioctls, structs and enums should not be used on
|
||||
* newer programs, as it doesn't support the second generation of digital
|
||||
* TV standards, nor supports newer delivery systems.
|
||||
*/
|
||||
|
||||
enum fe_bandwidth {
|
||||
@@ -502,7 +936,7 @@ enum fe_bandwidth {
|
||||
BANDWIDTH_1_712_MHZ,
|
||||
};
|
||||
|
||||
/* This is needed for legacy userspace support */
|
||||
/* This is kept for legacy userspace support */
|
||||
typedef enum fe_sec_voltage fe_sec_voltage_t;
|
||||
typedef enum fe_caps fe_caps_t;
|
||||
typedef enum fe_type fe_type_t;
|
||||
@@ -520,6 +954,8 @@ typedef enum fe_pilot fe_pilot_t;
|
||||
typedef enum fe_rolloff fe_rolloff_t;
|
||||
typedef enum fe_delivery_system fe_delivery_system_t;
|
||||
|
||||
/* DVBv3 structs */
|
||||
|
||||
struct dvb_qpsk_parameters {
|
||||
__u32 symbol_rate; /* symbol rate in Symbols per second */
|
||||
fe_code_rate_t fec_inner; /* forward error correction (see above) */
|
||||
@@ -546,8 +982,8 @@ struct dvb_ofdm_parameters {
|
||||
};
|
||||
|
||||
struct dvb_frontend_parameters {
|
||||
__u32 frequency; /* (absolute) frequency in Hz for DVB-C/DVB-T/ATSC */
|
||||
/* intermediate frequency in kHz for DVB-S */
|
||||
__u32 frequency; /* (absolute) frequency in Hz for DVB-C/DVB-T/ATSC */
|
||||
/* intermediate frequency in kHz for DVB-S */
|
||||
fe_spectral_inversion_t inversion;
|
||||
union {
|
||||
struct dvb_qpsk_parameters qpsk; /* DVB-S */
|
||||
@@ -561,42 +997,12 @@ struct dvb_frontend_event {
|
||||
fe_status_t status;
|
||||
struct dvb_frontend_parameters parameters;
|
||||
};
|
||||
#endif
|
||||
|
||||
#define FE_SET_PROPERTY _IOW('o', 82, struct dtv_properties)
|
||||
#define FE_GET_PROPERTY _IOR('o', 83, struct dtv_properties)
|
||||
|
||||
/**
|
||||
* When set, this flag will disable any zigzagging or other "normal" tuning
|
||||
* behaviour. Additionally, there will be no automatic monitoring of the lock
|
||||
* status, and hence no frontend events will be generated. If a frontend device
|
||||
* is closed, this flag will be automatically turned off when the device is
|
||||
* reopened read-write.
|
||||
*/
|
||||
#define FE_TUNE_MODE_ONESHOT 0x01
|
||||
|
||||
#define FE_GET_INFO _IOR('o', 61, struct dvb_frontend_info)
|
||||
|
||||
#define FE_DISEQC_RESET_OVERLOAD _IO('o', 62)
|
||||
#define FE_DISEQC_SEND_MASTER_CMD _IOW('o', 63, struct dvb_diseqc_master_cmd)
|
||||
#define FE_DISEQC_RECV_SLAVE_REPLY _IOR('o', 64, struct dvb_diseqc_slave_reply)
|
||||
#define FE_DISEQC_SEND_BURST _IO('o', 65) /* fe_sec_mini_cmd_t */
|
||||
|
||||
#define FE_SET_TONE _IO('o', 66) /* fe_sec_tone_mode_t */
|
||||
#define FE_SET_VOLTAGE _IO('o', 67) /* fe_sec_voltage_t */
|
||||
#define FE_ENABLE_HIGH_LNB_VOLTAGE _IO('o', 68) /* int */
|
||||
|
||||
#define FE_READ_STATUS _IOR('o', 69, fe_status_t)
|
||||
#define FE_READ_BER _IOR('o', 70, __u32)
|
||||
#define FE_READ_SIGNAL_STRENGTH _IOR('o', 71, __u16)
|
||||
#define FE_READ_SNR _IOR('o', 72, __u16)
|
||||
#define FE_READ_UNCORRECTED_BLOCKS _IOR('o', 73, __u32)
|
||||
/* DVBv3 API calls */
|
||||
|
||||
#define FE_SET_FRONTEND _IOW('o', 76, struct dvb_frontend_parameters)
|
||||
#define FE_GET_FRONTEND _IOR('o', 77, struct dvb_frontend_parameters)
|
||||
#define FE_SET_FRONTEND_TUNE_MODE _IO('o', 81) /* unsigned int */
|
||||
#define FE_GET_EVENT _IOR('o', 78, struct dvb_frontend_event)
|
||||
|
||||
#define FE_DISHNETWORK_SEND_LEGACY_CMD _IO('o', 80) /* unsigned int */
|
||||
#endif
|
||||
|
||||
#endif /*_DVBFRONTEND_H_*/
|
||||
|
||||
@@ -26,6 +26,21 @@
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
/**
|
||||
* struct dvb_net_if - describes a DVB network interface
|
||||
*
|
||||
* @pid: Packet ID (PID) of the MPEG-TS that contains data
|
||||
* @if_num: number of the Digital TV interface.
|
||||
* @feedtype: Encapsulation type of the feed.
|
||||
*
|
||||
* A MPEG-TS stream may contain packet IDs with IP packages on it.
|
||||
* This struct describes it, and the type of encoding.
|
||||
*
|
||||
* @feedtype can be:
|
||||
*
|
||||
* - %DVB_NET_FEEDTYPE_MPE for MPE encoding
|
||||
* - %DVB_NET_FEEDTYPE_ULE for ULE encoding.
|
||||
*/
|
||||
struct dvb_net_if {
|
||||
__u16 pid;
|
||||
__u16 if_num;
|
||||
|
||||
@@ -18,10 +18,13 @@ struct sock_extended_err {
|
||||
#define SO_EE_ORIGIN_ICMP 2
|
||||
#define SO_EE_ORIGIN_ICMP6 3
|
||||
#define SO_EE_ORIGIN_TXSTATUS 4
|
||||
#define SO_EE_ORIGIN_ZEROCOPY 5
|
||||
#define SO_EE_ORIGIN_TIMESTAMPING SO_EE_ORIGIN_TXSTATUS
|
||||
|
||||
#define SO_EE_OFFENDER(ee) ((struct sockaddr*)((ee)+1))
|
||||
|
||||
#define SO_EE_CODE_ZEROCOPY_COPIED 1
|
||||
|
||||
/**
|
||||
* struct scm_timestamping - timestamps exposed through cmsg
|
||||
*
|
||||
|
||||
@@ -1238,6 +1238,47 @@ struct ethtool_per_queue_op {
|
||||
char data[];
|
||||
};
|
||||
|
||||
/**
|
||||
* struct ethtool_fecparam - Ethernet forward error correction(fec) parameters
|
||||
* @cmd: Command number = %ETHTOOL_GFECPARAM or %ETHTOOL_SFECPARAM
|
||||
* @active_fec: FEC mode which is active on porte
|
||||
* @fec: Bitmask of supported/configured FEC modes
|
||||
* @rsvd: Reserved for future extensions. i.e FEC bypass feature.
|
||||
*
|
||||
* Drivers should reject a non-zero setting of @autoneg when
|
||||
* autoneogotiation is disabled (or not supported) for the link.
|
||||
*
|
||||
*/
|
||||
struct ethtool_fecparam {
|
||||
__u32 cmd;
|
||||
/* bitmask of FEC modes */
|
||||
__u32 active_fec;
|
||||
__u32 fec;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
/**
|
||||
* enum ethtool_fec_config_bits - flags definition of ethtool_fec_configuration
|
||||
* @ETHTOOL_FEC_NONE: FEC mode configuration is not supported
|
||||
* @ETHTOOL_FEC_AUTO: Default/Best FEC mode provided by driver
|
||||
* @ETHTOOL_FEC_OFF: No FEC Mode
|
||||
* @ETHTOOL_FEC_RS: Reed-Solomon Forward Error Detection mode
|
||||
* @ETHTOOL_FEC_BASER: Base-R/Reed-Solomon Forward Error Detection mode
|
||||
*/
|
||||
enum ethtool_fec_config_bits {
|
||||
ETHTOOL_FEC_NONE_BIT,
|
||||
ETHTOOL_FEC_AUTO_BIT,
|
||||
ETHTOOL_FEC_OFF_BIT,
|
||||
ETHTOOL_FEC_RS_BIT,
|
||||
ETHTOOL_FEC_BASER_BIT,
|
||||
};
|
||||
|
||||
#define ETHTOOL_FEC_NONE (1 << ETHTOOL_FEC_NONE_BIT)
|
||||
#define ETHTOOL_FEC_AUTO (1 << ETHTOOL_FEC_AUTO_BIT)
|
||||
#define ETHTOOL_FEC_OFF (1 << ETHTOOL_FEC_OFF_BIT)
|
||||
#define ETHTOOL_FEC_RS (1 << ETHTOOL_FEC_RS_BIT)
|
||||
#define ETHTOOL_FEC_BASER (1 << ETHTOOL_FEC_BASER_BIT)
|
||||
|
||||
/* CMDs currently supported */
|
||||
#define ETHTOOL_GSET 0x00000001 /* DEPRECATED, Get settings.
|
||||
* Please use ETHTOOL_GLINKSETTINGS
|
||||
@@ -1330,6 +1371,8 @@ struct ethtool_per_queue_op {
|
||||
#define ETHTOOL_SLINKSETTINGS 0x0000004d /* Set ethtool_link_settings */
|
||||
#define ETHTOOL_PHY_GTUNABLE 0x0000004e /* Get PHY tunable configuration */
|
||||
#define ETHTOOL_PHY_STUNABLE 0x0000004f /* Set PHY tunable configuration */
|
||||
#define ETHTOOL_GFECPARAM 0x00000050 /* Get FEC settings */
|
||||
#define ETHTOOL_SFECPARAM 0x00000051 /* Set FEC settings */
|
||||
|
||||
/* compatibility with older code */
|
||||
#define SPARC_ETH_GSET ETHTOOL_GSET
|
||||
@@ -1387,6 +1430,9 @@ enum ethtool_link_mode_bit_indices {
|
||||
ETHTOOL_LINK_MODE_2500baseT_Full_BIT = 47,
|
||||
ETHTOOL_LINK_MODE_5000baseT_Full_BIT = 48,
|
||||
|
||||
ETHTOOL_LINK_MODE_FEC_NONE_BIT = 49,
|
||||
ETHTOOL_LINK_MODE_FEC_RS_BIT = 50,
|
||||
ETHTOOL_LINK_MODE_FEC_BASER_BIT = 51,
|
||||
|
||||
/* Last allowed bit for __ETHTOOL_LINK_MODE_LEGACY_MASK is bit
|
||||
* 31. Please do NOT define any SUPPORTED_* or ADVERTISED_*
|
||||
@@ -1395,7 +1441,7 @@ enum ethtool_link_mode_bit_indices {
|
||||
*/
|
||||
|
||||
__ETHTOOL_LINK_MODE_LAST
|
||||
= ETHTOOL_LINK_MODE_5000baseT_Full_BIT,
|
||||
= ETHTOOL_LINK_MODE_FEC_BASER_BIT,
|
||||
};
|
||||
|
||||
#define __ETHTOOL_LINK_MODE_LEGACY_MASK(base_name) \
|
||||
@@ -1707,6 +1753,8 @@ enum ethtool_reset_flags {
|
||||
* %ethtool_link_mode_bit_indices for the link modes, and other
|
||||
* link features that the link partner advertised through
|
||||
* autonegotiation; 0 if unknown or not applicable. Read-only.
|
||||
* @transceiver: Used to distinguish different possible PHY types,
|
||||
* reported consistently by PHYLIB. Read-only.
|
||||
*
|
||||
* If autonegotiation is disabled, the speed and @duplex represent the
|
||||
* fixed link mode and are writable if the driver supports multiple
|
||||
@@ -1758,7 +1806,9 @@ struct ethtool_link_settings {
|
||||
__u8 eth_tp_mdix;
|
||||
__u8 eth_tp_mdix_ctrl;
|
||||
__s8 link_mode_masks_nwords;
|
||||
__u32 reserved[8];
|
||||
__u8 transceiver;
|
||||
__u8 reserved1[3];
|
||||
__u32 reserved[7];
|
||||
__u32 link_mode_masks[0];
|
||||
/* layout of link_mode_masks fields:
|
||||
* __u32 map_supported[link_mode_masks_nwords];
|
||||
|
||||
@@ -358,13 +358,25 @@ struct fscrypt_key {
|
||||
#define SYNC_FILE_RANGE_WRITE 2
|
||||
#define SYNC_FILE_RANGE_WAIT_AFTER 4
|
||||
|
||||
/* flags for preadv2/pwritev2: */
|
||||
#define RWF_HIPRI 0x00000001 /* high priority request, poll if possible */
|
||||
#define RWF_DSYNC 0x00000002 /* per-IO O_DSYNC */
|
||||
#define RWF_SYNC 0x00000004 /* per-IO O_SYNC */
|
||||
#define RWF_NOWAIT 0x00000008 /* per-IO, return -EAGAIN if operation would block */
|
||||
/*
|
||||
* Flags for preadv2/pwritev2:
|
||||
*/
|
||||
|
||||
#define RWF_SUPPORTED (RWF_HIPRI | RWF_DSYNC | RWF_SYNC |\
|
||||
RWF_NOWAIT)
|
||||
typedef int __bitwise __kernel_rwf_t;
|
||||
|
||||
/* high priority request, poll if possible */
|
||||
#define RWF_HIPRI ((__force __kernel_rwf_t)0x00000001)
|
||||
|
||||
/* per-IO O_DSYNC */
|
||||
#define RWF_DSYNC ((__force __kernel_rwf_t)0x00000002)
|
||||
|
||||
/* per-IO O_SYNC */
|
||||
#define RWF_SYNC ((__force __kernel_rwf_t)0x00000004)
|
||||
|
||||
/* per-IO, return -EAGAIN if operation would block */
|
||||
#define RWF_NOWAIT ((__force __kernel_rwf_t)0x00000008)
|
||||
|
||||
/* mask of flags supported by the kernel */
|
||||
#define RWF_SUPPORTED (RWF_HIPRI | RWF_DSYNC | RWF_SYNC | RWF_NOWAIT)
|
||||
|
||||
#endif /* _UAPI_LINUX_FS_H */
|
||||
|
||||
@@ -96,7 +96,7 @@ fsmap_advance(
|
||||
#define FMR_OF_EXTENT_MAP 0x4 /* segment = extent map */
|
||||
#define FMR_OF_SHARED 0x8 /* segment = shared with another file */
|
||||
#define FMR_OF_SPECIAL_OWNER 0x10 /* owner is a special value */
|
||||
#define FMR_OF_LAST 0x20 /* segment is the last in the FS */
|
||||
#define FMR_OF_LAST 0x20 /* segment is the last in the dataset */
|
||||
|
||||
/* Each FS gets to define its own special owner codes. */
|
||||
#define FMR_OWNER(type, code) (((__u64)type << 32) | \
|
||||
|
||||
@@ -59,6 +59,7 @@
|
||||
#define ARPHRD_LAPB 516 /* LAPB */
|
||||
#define ARPHRD_DDCMP 517 /* Digital's DDCMP protocol */
|
||||
#define ARPHRD_RAWHDLC 518 /* Raw HDLC */
|
||||
#define ARPHRD_RAWIP 519 /* Raw IP */
|
||||
|
||||
#define ARPHRD_TUNNEL 768 /* IPIP tunnel */
|
||||
#define ARPHRD_TUNNEL6 769 /* IP6IP6 tunnel */
|
||||
|
||||
@@ -66,6 +66,7 @@
|
||||
#define ETH_P_ATALK 0x809B /* Appletalk DDP */
|
||||
#define ETH_P_AARP 0x80F3 /* Appletalk AARP */
|
||||
#define ETH_P_8021Q 0x8100 /* 802.1Q VLAN Extended Header */
|
||||
#define ETH_P_ERSPAN 0x88BE /* ERSPAN type II */
|
||||
#define ETH_P_IPX 0x8137 /* IPX over DIX */
|
||||
#define ETH_P_IPV6 0x86DD /* IPv6 over bluebook */
|
||||
#define ETH_P_PAUSE 0x8808 /* IEEE Pause frames. See 802.3 31B */
|
||||
@@ -98,11 +99,13 @@
|
||||
#define ETH_P_FIP 0x8914 /* FCoE Initialization Protocol */
|
||||
#define ETH_P_80221 0x8917 /* IEEE 802.21 Media Independent Handover Protocol */
|
||||
#define ETH_P_HSR 0x892F /* IEC 62439-3 HSRv1 */
|
||||
#define ETH_P_NSH 0x894F /* Network Service Header */
|
||||
#define ETH_P_LOOPBACK 0x9000 /* Ethernet loopback packet, per IEEE 802.3 */
|
||||
#define ETH_P_QINQ1 0x9100 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */
|
||||
#define ETH_P_QINQ2 0x9200 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */
|
||||
#define ETH_P_QINQ3 0x9300 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */
|
||||
#define ETH_P_EDSA 0xDADA /* Ethertype DSA [ NOT AN OFFICIALLY REGISTERED ID ] */
|
||||
#define ETH_P_IFE 0xED3E /* ForCES inter-FE LFB type */
|
||||
#define ETH_P_AF_IUCV 0xFBFB /* IBM af_iucv [ NOT AN OFFICIALLY REGISTERED ID ] */
|
||||
|
||||
#define ETH_P_802_3_MIN 0x0600 /* If the value in the ethernet type is less than this value
|
||||
@@ -137,6 +140,9 @@
|
||||
#define ETH_P_IEEE802154 0x00F6 /* IEEE802.15.4 frame */
|
||||
#define ETH_P_CAIF 0x00F7 /* ST-Ericsson CAIF protocol */
|
||||
#define ETH_P_XDSA 0x00F8 /* Multiplexed DSA protocol */
|
||||
#define ETH_P_MAP 0x00F9 /* Qualcomm multiplexing and
|
||||
* aggregation protocol
|
||||
*/
|
||||
|
||||
/*
|
||||
* This is an Ethernet frame header.
|
||||
|
||||
@@ -134,6 +134,7 @@ enum {
|
||||
IFLA_GRE_COLLECT_METADATA,
|
||||
IFLA_GRE_IGNORE_DF,
|
||||
IFLA_GRE_FWMARK,
|
||||
IFLA_GRE_ERSPAN_INDEX,
|
||||
__IFLA_GRE_MAX,
|
||||
};
|
||||
|
||||
|
||||
@@ -142,6 +142,8 @@ enum {
|
||||
INET_DIAG_PAD,
|
||||
INET_DIAG_MARK,
|
||||
INET_DIAG_BBRINFO,
|
||||
INET_DIAG_CLASS_ID,
|
||||
INET_DIAG_MD5SIG,
|
||||
__INET_DIAG_MAX,
|
||||
};
|
||||
|
||||
|
||||
@@ -23,15 +23,15 @@
|
||||
#ifndef KFD_IOCTL_H_INCLUDED
|
||||
#define KFD_IOCTL_H_INCLUDED
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <drm/drm.h>
|
||||
#include <linux/ioctl.h>
|
||||
|
||||
#define KFD_IOCTL_MAJOR_VERSION 1
|
||||
#define KFD_IOCTL_MINOR_VERSION 1
|
||||
|
||||
struct kfd_ioctl_get_version_args {
|
||||
uint32_t major_version; /* from KFD */
|
||||
uint32_t minor_version; /* from KFD */
|
||||
__u32 major_version; /* from KFD */
|
||||
__u32 minor_version; /* from KFD */
|
||||
};
|
||||
|
||||
/* For kfd_ioctl_create_queue_args.queue_type. */
|
||||
@@ -43,36 +43,36 @@ struct kfd_ioctl_get_version_args {
|
||||
#define KFD_MAX_QUEUE_PRIORITY 15
|
||||
|
||||
struct kfd_ioctl_create_queue_args {
|
||||
uint64_t ring_base_address; /* to KFD */
|
||||
uint64_t write_pointer_address; /* from KFD */
|
||||
uint64_t read_pointer_address; /* from KFD */
|
||||
uint64_t doorbell_offset; /* from KFD */
|
||||
__u64 ring_base_address; /* to KFD */
|
||||
__u64 write_pointer_address; /* from KFD */
|
||||
__u64 read_pointer_address; /* from KFD */
|
||||
__u64 doorbell_offset; /* from KFD */
|
||||
|
||||
uint32_t ring_size; /* to KFD */
|
||||
uint32_t gpu_id; /* to KFD */
|
||||
uint32_t queue_type; /* to KFD */
|
||||
uint32_t queue_percentage; /* to KFD */
|
||||
uint32_t queue_priority; /* to KFD */
|
||||
uint32_t queue_id; /* from KFD */
|
||||
__u32 ring_size; /* to KFD */
|
||||
__u32 gpu_id; /* to KFD */
|
||||
__u32 queue_type; /* to KFD */
|
||||
__u32 queue_percentage; /* to KFD */
|
||||
__u32 queue_priority; /* to KFD */
|
||||
__u32 queue_id; /* from KFD */
|
||||
|
||||
uint64_t eop_buffer_address; /* to KFD */
|
||||
uint64_t eop_buffer_size; /* to KFD */
|
||||
uint64_t ctx_save_restore_address; /* to KFD */
|
||||
uint64_t ctx_save_restore_size; /* to KFD */
|
||||
__u64 eop_buffer_address; /* to KFD */
|
||||
__u64 eop_buffer_size; /* to KFD */
|
||||
__u64 ctx_save_restore_address; /* to KFD */
|
||||
__u64 ctx_save_restore_size; /* to KFD */
|
||||
};
|
||||
|
||||
struct kfd_ioctl_destroy_queue_args {
|
||||
uint32_t queue_id; /* to KFD */
|
||||
uint32_t pad;
|
||||
__u32 queue_id; /* to KFD */
|
||||
__u32 pad;
|
||||
};
|
||||
|
||||
struct kfd_ioctl_update_queue_args {
|
||||
uint64_t ring_base_address; /* to KFD */
|
||||
__u64 ring_base_address; /* to KFD */
|
||||
|
||||
uint32_t queue_id; /* to KFD */
|
||||
uint32_t ring_size; /* to KFD */
|
||||
uint32_t queue_percentage; /* to KFD */
|
||||
uint32_t queue_priority; /* to KFD */
|
||||
__u32 queue_id; /* to KFD */
|
||||
__u32 ring_size; /* to KFD */
|
||||
__u32 queue_percentage; /* to KFD */
|
||||
__u32 queue_priority; /* to KFD */
|
||||
};
|
||||
|
||||
/* For kfd_ioctl_set_memory_policy_args.default_policy and alternate_policy */
|
||||
@@ -80,13 +80,13 @@ struct kfd_ioctl_update_queue_args {
|
||||
#define KFD_IOC_CACHE_POLICY_NONCOHERENT 1
|
||||
|
||||
struct kfd_ioctl_set_memory_policy_args {
|
||||
uint64_t alternate_aperture_base; /* to KFD */
|
||||
uint64_t alternate_aperture_size; /* to KFD */
|
||||
__u64 alternate_aperture_base; /* to KFD */
|
||||
__u64 alternate_aperture_size; /* to KFD */
|
||||
|
||||
uint32_t gpu_id; /* to KFD */
|
||||
uint32_t default_policy; /* to KFD */
|
||||
uint32_t alternate_policy; /* to KFD */
|
||||
uint32_t pad;
|
||||
__u32 gpu_id; /* to KFD */
|
||||
__u32 default_policy; /* to KFD */
|
||||
__u32 alternate_policy; /* to KFD */
|
||||
__u32 pad;
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -97,26 +97,26 @@ struct kfd_ioctl_set_memory_policy_args {
|
||||
*/
|
||||
|
||||
struct kfd_ioctl_get_clock_counters_args {
|
||||
uint64_t gpu_clock_counter; /* from KFD */
|
||||
uint64_t cpu_clock_counter; /* from KFD */
|
||||
uint64_t system_clock_counter; /* from KFD */
|
||||
uint64_t system_clock_freq; /* from KFD */
|
||||
__u64 gpu_clock_counter; /* from KFD */
|
||||
__u64 cpu_clock_counter; /* from KFD */
|
||||
__u64 system_clock_counter; /* from KFD */
|
||||
__u64 system_clock_freq; /* from KFD */
|
||||
|
||||
uint32_t gpu_id; /* to KFD */
|
||||
uint32_t pad;
|
||||
__u32 gpu_id; /* to KFD */
|
||||
__u32 pad;
|
||||
};
|
||||
|
||||
#define NUM_OF_SUPPORTED_GPUS 7
|
||||
|
||||
struct kfd_process_device_apertures {
|
||||
uint64_t lds_base; /* from KFD */
|
||||
uint64_t lds_limit; /* from KFD */
|
||||
uint64_t scratch_base; /* from KFD */
|
||||
uint64_t scratch_limit; /* from KFD */
|
||||
uint64_t gpuvm_base; /* from KFD */
|
||||
uint64_t gpuvm_limit; /* from KFD */
|
||||
uint32_t gpu_id; /* from KFD */
|
||||
uint32_t pad;
|
||||
__u64 lds_base; /* from KFD */
|
||||
__u64 lds_limit; /* from KFD */
|
||||
__u64 scratch_base; /* from KFD */
|
||||
__u64 scratch_limit; /* from KFD */
|
||||
__u64 gpuvm_base; /* from KFD */
|
||||
__u64 gpuvm_limit; /* from KFD */
|
||||
__u32 gpu_id; /* from KFD */
|
||||
__u32 pad;
|
||||
};
|
||||
|
||||
struct kfd_ioctl_get_process_apertures_args {
|
||||
@@ -124,8 +124,8 @@ struct kfd_ioctl_get_process_apertures_args {
|
||||
process_apertures[NUM_OF_SUPPORTED_GPUS];/* from KFD */
|
||||
|
||||
/* from KFD, should be in the range [1 - NUM_OF_SUPPORTED_GPUS] */
|
||||
uint32_t num_of_nodes;
|
||||
uint32_t pad;
|
||||
__u32 num_of_nodes;
|
||||
__u32 pad;
|
||||
};
|
||||
|
||||
#define MAX_ALLOWED_NUM_POINTS 100
|
||||
@@ -133,25 +133,25 @@ struct kfd_ioctl_get_process_apertures_args {
|
||||
#define MAX_ALLOWED_WAC_BUFF_SIZE 128
|
||||
|
||||
struct kfd_ioctl_dbg_register_args {
|
||||
uint32_t gpu_id; /* to KFD */
|
||||
uint32_t pad;
|
||||
__u32 gpu_id; /* to KFD */
|
||||
__u32 pad;
|
||||
};
|
||||
|
||||
struct kfd_ioctl_dbg_unregister_args {
|
||||
uint32_t gpu_id; /* to KFD */
|
||||
uint32_t pad;
|
||||
__u32 gpu_id; /* to KFD */
|
||||
__u32 pad;
|
||||
};
|
||||
|
||||
struct kfd_ioctl_dbg_address_watch_args {
|
||||
uint64_t content_ptr; /* a pointer to the actual content */
|
||||
uint32_t gpu_id; /* to KFD */
|
||||
uint32_t buf_size_in_bytes; /*including gpu_id and buf_size */
|
||||
__u64 content_ptr; /* a pointer to the actual content */
|
||||
__u32 gpu_id; /* to KFD */
|
||||
__u32 buf_size_in_bytes; /*including gpu_id and buf_size */
|
||||
};
|
||||
|
||||
struct kfd_ioctl_dbg_wave_control_args {
|
||||
uint64_t content_ptr; /* a pointer to the actual content */
|
||||
uint32_t gpu_id; /* to KFD */
|
||||
uint32_t buf_size_in_bytes; /*including gpu_id and buf_size */
|
||||
__u64 content_ptr; /* a pointer to the actual content */
|
||||
__u32 gpu_id; /* to KFD */
|
||||
__u32 buf_size_in_bytes; /*including gpu_id and buf_size */
|
||||
};
|
||||
|
||||
/* Matching HSA_EVENTTYPE */
|
||||
@@ -172,44 +172,44 @@ struct kfd_ioctl_dbg_wave_control_args {
|
||||
#define KFD_SIGNAL_EVENT_LIMIT 256
|
||||
|
||||
struct kfd_ioctl_create_event_args {
|
||||
uint64_t event_page_offset; /* from KFD */
|
||||
uint32_t event_trigger_data; /* from KFD - signal events only */
|
||||
uint32_t event_type; /* to KFD */
|
||||
uint32_t auto_reset; /* to KFD */
|
||||
uint32_t node_id; /* to KFD - only valid for certain
|
||||
__u64 event_page_offset; /* from KFD */
|
||||
__u32 event_trigger_data; /* from KFD - signal events only */
|
||||
__u32 event_type; /* to KFD */
|
||||
__u32 auto_reset; /* to KFD */
|
||||
__u32 node_id; /* to KFD - only valid for certain
|
||||
event types */
|
||||
uint32_t event_id; /* from KFD */
|
||||
uint32_t event_slot_index; /* from KFD */
|
||||
__u32 event_id; /* from KFD */
|
||||
__u32 event_slot_index; /* from KFD */
|
||||
};
|
||||
|
||||
struct kfd_ioctl_destroy_event_args {
|
||||
uint32_t event_id; /* to KFD */
|
||||
uint32_t pad;
|
||||
__u32 event_id; /* to KFD */
|
||||
__u32 pad;
|
||||
};
|
||||
|
||||
struct kfd_ioctl_set_event_args {
|
||||
uint32_t event_id; /* to KFD */
|
||||
uint32_t pad;
|
||||
__u32 event_id; /* to KFD */
|
||||
__u32 pad;
|
||||
};
|
||||
|
||||
struct kfd_ioctl_reset_event_args {
|
||||
uint32_t event_id; /* to KFD */
|
||||
uint32_t pad;
|
||||
__u32 event_id; /* to KFD */
|
||||
__u32 pad;
|
||||
};
|
||||
|
||||
struct kfd_memory_exception_failure {
|
||||
uint32_t NotPresent; /* Page not present or supervisor privilege */
|
||||
uint32_t ReadOnly; /* Write access to a read-only page */
|
||||
uint32_t NoExecute; /* Execute access to a page marked NX */
|
||||
uint32_t pad;
|
||||
__u32 NotPresent; /* Page not present or supervisor privilege */
|
||||
__u32 ReadOnly; /* Write access to a read-only page */
|
||||
__u32 NoExecute; /* Execute access to a page marked NX */
|
||||
__u32 pad;
|
||||
};
|
||||
|
||||
/* memory exception data*/
|
||||
struct kfd_hsa_memory_exception_data {
|
||||
struct kfd_memory_exception_failure failure;
|
||||
uint64_t va;
|
||||
uint32_t gpu_id;
|
||||
uint32_t pad;
|
||||
__u64 va;
|
||||
__u32 gpu_id;
|
||||
__u32 pad;
|
||||
};
|
||||
|
||||
/* Event data*/
|
||||
@@ -217,19 +217,19 @@ struct kfd_event_data {
|
||||
union {
|
||||
struct kfd_hsa_memory_exception_data memory_exception_data;
|
||||
}; /* From KFD */
|
||||
uint64_t kfd_event_data_ext; /* pointer to an extension structure
|
||||
__u64 kfd_event_data_ext; /* pointer to an extension structure
|
||||
for future exception types */
|
||||
uint32_t event_id; /* to KFD */
|
||||
uint32_t pad;
|
||||
__u32 event_id; /* to KFD */
|
||||
__u32 pad;
|
||||
};
|
||||
|
||||
struct kfd_ioctl_wait_events_args {
|
||||
uint64_t events_ptr; /* pointed to struct
|
||||
__u64 events_ptr; /* pointed to struct
|
||||
kfd_event_data array, to KFD */
|
||||
uint32_t num_events; /* to KFD */
|
||||
uint32_t wait_for_all; /* to KFD */
|
||||
uint32_t timeout; /* to KFD */
|
||||
uint32_t wait_result; /* from KFD */
|
||||
__u32 num_events; /* to KFD */
|
||||
__u32 wait_for_all; /* to KFD */
|
||||
__u32 timeout; /* to KFD */
|
||||
__u32 wait_result; /* from KFD */
|
||||
};
|
||||
|
||||
struct kfd_ioctl_set_scratch_backing_va_args {
|
||||
|
||||
@@ -711,7 +711,8 @@ struct kvm_ppc_one_seg_page_size {
|
||||
struct kvm_ppc_smmu_info {
|
||||
__u64 flags;
|
||||
__u32 slb_size;
|
||||
__u32 pad;
|
||||
__u16 data_keys; /* # storage keys supported for data */
|
||||
__u16 instr_keys; /* # storage keys supported for instructions */
|
||||
struct kvm_ppc_one_seg_page_size sps[KVM_PPC_PAGE_SIZES_MAX_SZ];
|
||||
};
|
||||
|
||||
|
||||
@@ -22,7 +22,6 @@ enum {
|
||||
LO_FLAGS_AUTOCLEAR = 4,
|
||||
LO_FLAGS_PARTSCAN = 8,
|
||||
LO_FLAGS_DIRECT_IO = 16,
|
||||
LO_FLAGS_BLOCKSIZE = 32,
|
||||
};
|
||||
|
||||
#include <asm/posix_types.h> /* for __kernel_old_dev_t */
|
||||
@@ -60,8 +59,6 @@ struct loop_info64 {
|
||||
__u64 lo_init[2];
|
||||
};
|
||||
|
||||
#define LO_INFO_BLOCKSIZE(l) (l)->lo_init[0]
|
||||
|
||||
/*
|
||||
* Loop filter types
|
||||
*/
|
||||
@@ -91,6 +88,7 @@ struct loop_info64 {
|
||||
#define LOOP_CHANGE_FD 0x4C06
|
||||
#define LOOP_SET_CAPACITY 0x4C07
|
||||
#define LOOP_SET_DIRECT_IO 0x4C08
|
||||
#define LOOP_SET_BLOCK_SIZE 0x4C09
|
||||
|
||||
/* /dev/loop-control interface */
|
||||
#define LOOP_CTL_ADD 0x4C80
|
||||
|
||||
@@ -11,6 +11,7 @@ enum lwtunnel_encap_types {
|
||||
LWTUNNEL_ENCAP_IP6,
|
||||
LWTUNNEL_ENCAP_SEG6,
|
||||
LWTUNNEL_ENCAP_BPF,
|
||||
LWTUNNEL_ENCAP_SEG6_LOCAL,
|
||||
__LWTUNNEL_ENCAP_MAX,
|
||||
};
|
||||
|
||||
|
||||
@@ -30,8 +30,6 @@
|
||||
#include <linux/types.h>
|
||||
#include <linux/version.h>
|
||||
|
||||
#define MEDIA_API_VERSION KERNEL_VERSION(0, 1, 0)
|
||||
|
||||
struct media_device_info {
|
||||
char driver[16];
|
||||
char model[32];
|
||||
@@ -187,6 +185,9 @@ struct media_device_info {
|
||||
#define MEDIA_ENT_T_V4L2_SUBDEV_LENS MEDIA_ENT_F_LENS
|
||||
#define MEDIA_ENT_T_V4L2_SUBDEV_DECODER MEDIA_ENT_F_ATV_DECODER
|
||||
#define MEDIA_ENT_T_V4L2_SUBDEV_TUNER MEDIA_ENT_F_TUNER
|
||||
|
||||
/* Obsolete symbol for media_version, no longer used in the kernel */
|
||||
#define MEDIA_API_VERSION KERNEL_VERSION(0, 1, 0)
|
||||
#endif
|
||||
|
||||
/* Entity flags */
|
||||
|
||||
@@ -40,14 +40,33 @@
|
||||
* (non-running threads are de facto in such a
|
||||
* state). This covers threads from all processes
|
||||
* running on the system. This command returns 0.
|
||||
* @MEMBARRIER_CMD_PRIVATE_EXPEDITED:
|
||||
* Execute a memory barrier on each running
|
||||
* thread belonging to the same process as the current
|
||||
* thread. Upon return from system call, the
|
||||
* caller thread is ensured that all its running
|
||||
* threads siblings have passed through a state
|
||||
* where all memory accesses to user-space
|
||||
* addresses match program order between entry
|
||||
* to and return from the system call
|
||||
* (non-running threads are de facto in such a
|
||||
* state). This only covers threads from the
|
||||
* same processes as the caller thread. This
|
||||
* command returns 0. The "expedited" commands
|
||||
* complete faster than the non-expedited ones,
|
||||
* they never block, but have the downside of
|
||||
* causing extra overhead.
|
||||
*
|
||||
* Command to be passed to the membarrier system call. The commands need to
|
||||
* be a single bit each, except for MEMBARRIER_CMD_QUERY which is assigned to
|
||||
* the value 0.
|
||||
*/
|
||||
enum membarrier_cmd {
|
||||
MEMBARRIER_CMD_QUERY = 0,
|
||||
MEMBARRIER_CMD_SHARED = (1 << 0),
|
||||
MEMBARRIER_CMD_QUERY = 0,
|
||||
MEMBARRIER_CMD_SHARED = (1 << 0),
|
||||
/* reserved for MEMBARRIER_CMD_SHARED_EXPEDITED (1 << 1) */
|
||||
/* reserved for MEMBARRIER_CMD_PRIVATE (1 << 2) */
|
||||
MEMBARRIER_CMD_PRIVATE_EXPEDITED = (1 << 3),
|
||||
};
|
||||
|
||||
#endif /* _UAPI_LINUX_MEMBARRIER_H */
|
||||
|
||||
@@ -1,8 +1,32 @@
|
||||
#ifndef _UAPI_LINUX_MEMFD_H
|
||||
#define _UAPI_LINUX_MEMFD_H
|
||||
|
||||
#include <asm-generic/hugetlb_encode.h>
|
||||
|
||||
/* flags for memfd_create(2) (unsigned int) */
|
||||
#define MFD_CLOEXEC 0x0001U
|
||||
#define MFD_ALLOW_SEALING 0x0002U
|
||||
#define MFD_HUGETLB 0x0004U
|
||||
|
||||
/*
|
||||
* Huge page size encoding when MFD_HUGETLB is specified, and a huge page
|
||||
* size other than the default is desired. See hugetlb_encode.h.
|
||||
* All known huge page size encodings are provided here. It is the
|
||||
* responsibility of the application to know which sizes are supported on
|
||||
* the running system. See mmap(2) man page for details.
|
||||
*/
|
||||
#define MFD_HUGE_SHIFT HUGETLB_FLAG_ENCODE_SHIFT
|
||||
#define MFD_HUGE_MASK HUGETLB_FLAG_ENCODE_MASK
|
||||
|
||||
#define MFD_HUGE_64KB HUGETLB_FLAG_ENCODE_64KB
|
||||
#define MFD_HUGE_512KB HUGETLB_FLAG_ENCODE_512KB
|
||||
#define MFD_HUGE_1MB HUGETLB_FLAG_ENCODE_1MB
|
||||
#define MFD_HUGE_2MB HUGETLB_FLAG_ENCODE_2MB
|
||||
#define MFD_HUGE_8MB HUGETLB_FLAG_ENCODE_8MB
|
||||
#define MFD_HUGE_16MB HUGETLB_FLAG_ENCODE_16MB
|
||||
#define MFD_HUGE_256MB HUGETLB_FLAG_ENCODE_256MB
|
||||
#define MFD_HUGE_1GB HUGETLB_FLAG_ENCODE_1GB
|
||||
#define MFD_HUGE_2GB HUGETLB_FLAG_ENCODE_2GB
|
||||
#define MFD_HUGE_16GB HUGETLB_FLAG_ENCODE_16GB
|
||||
|
||||
#endif /* _UAPI_LINUX_MEMFD_H */
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define _UAPI_LINUX_MMAN_H
|
||||
|
||||
#include <asm/mman.h>
|
||||
#include <asm-generic/hugetlb_encode.h>
|
||||
|
||||
#define MREMAP_MAYMOVE 1
|
||||
#define MREMAP_FIXED 2
|
||||
@@ -10,4 +11,25 @@
|
||||
#define OVERCOMMIT_ALWAYS 1
|
||||
#define OVERCOMMIT_NEVER 2
|
||||
|
||||
/*
|
||||
* Huge page size encoding when MAP_HUGETLB is specified, and a huge page
|
||||
* size other than the default is desired. See hugetlb_encode.h.
|
||||
* All known huge page size encodings are provided here. It is the
|
||||
* responsibility of the application to know which sizes are supported on
|
||||
* the running system. See mmap(2) man page for details.
|
||||
*/
|
||||
#define MAP_HUGE_SHIFT HUGETLB_FLAG_ENCODE_SHIFT
|
||||
#define MAP_HUGE_MASK HUGETLB_FLAG_ENCODE_MASK
|
||||
|
||||
#define MAP_HUGE_64KB HUGETLB_FLAG_ENCODE_64KB
|
||||
#define MAP_HUGE_512KB HUGETLB_FLAG_ENCODE_512KB
|
||||
#define MAP_HUGE_1MB HUGETLB_FLAG_ENCODE_1MB
|
||||
#define MAP_HUGE_2MB HUGETLB_FLAG_ENCODE_2MB
|
||||
#define MAP_HUGE_8MB HUGETLB_FLAG_ENCODE_8MB
|
||||
#define MAP_HUGE_16MB HUGETLB_FLAG_ENCODE_16MB
|
||||
#define MAP_HUGE_256MB HUGETLB_FLAG_ENCODE_256MB
|
||||
#define MAP_HUGE_1GB HUGETLB_FLAG_ENCODE_1GB
|
||||
#define MAP_HUGE_2GB HUGETLB_FLAG_ENCODE_2GB
|
||||
#define MAP_HUGE_16GB HUGETLB_FLAG_ENCODE_16GB
|
||||
|
||||
#endif /* _UAPI_LINUX_MMAN_H */
|
||||
|
||||
@@ -145,43 +145,6 @@ struct nd_cmd_clear_error {
|
||||
__u64 cleared;
|
||||
} __packed;
|
||||
|
||||
struct nd_cmd_trans_spa {
|
||||
__u64 spa;
|
||||
__u32 status;
|
||||
__u8 flags;
|
||||
__u8 _reserved[3];
|
||||
__u64 trans_length;
|
||||
__u32 num_nvdimms;
|
||||
struct nd_nvdimm_device {
|
||||
__u32 nfit_device_handle;
|
||||
__u32 _reserved;
|
||||
__u64 dpa;
|
||||
} __packed devices[0];
|
||||
|
||||
} __packed;
|
||||
|
||||
struct nd_cmd_ars_err_inj {
|
||||
__u64 err_inj_spa_range_base;
|
||||
__u64 err_inj_spa_range_length;
|
||||
__u8 err_inj_options;
|
||||
__u32 status;
|
||||
} __packed;
|
||||
|
||||
struct nd_cmd_ars_err_inj_clr {
|
||||
__u64 err_inj_clr_spa_range_base;
|
||||
__u64 err_inj_clr_spa_range_length;
|
||||
__u32 status;
|
||||
} __packed;
|
||||
|
||||
struct nd_cmd_ars_err_inj_stat {
|
||||
__u32 status;
|
||||
__u32 inj_err_rec_count;
|
||||
struct nd_error_stat_query_record {
|
||||
__u64 err_inj_stat_spa_range_base;
|
||||
__u64 err_inj_stat_spa_range_length;
|
||||
} __packed record[0];
|
||||
} __packed;
|
||||
|
||||
enum {
|
||||
ND_CMD_IMPLEMENTED = 0,
|
||||
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
#ifndef _LINUX_NF_TABLES_H
|
||||
#define _LINUX_NF_TABLES_H
|
||||
|
||||
#define NFT_TABLE_MAXNAMELEN 32
|
||||
#define NFT_CHAIN_MAXNAMELEN 32
|
||||
#define NFT_SET_MAXNAMELEN 32
|
||||
#define NFT_OBJ_MAXNAMELEN 32
|
||||
#define NFT_NAME_MAXLEN 256
|
||||
#define NFT_TABLE_MAXNAMELEN NFT_NAME_MAXLEN
|
||||
#define NFT_CHAIN_MAXNAMELEN NFT_NAME_MAXLEN
|
||||
#define NFT_SET_MAXNAMELEN NFT_NAME_MAXLEN
|
||||
#define NFT_OBJ_MAXNAMELEN NFT_NAME_MAXLEN
|
||||
#define NFT_USERDATA_MAXLEN 256
|
||||
|
||||
/**
|
||||
@@ -731,7 +732,8 @@ enum nft_exthdr_op {
|
||||
* @NFTA_EXTHDR_OFFSET: extension header offset (NLA_U32)
|
||||
* @NFTA_EXTHDR_LEN: extension header length (NLA_U32)
|
||||
* @NFTA_EXTHDR_FLAGS: extension header flags (NLA_U32)
|
||||
* @NFTA_EXTHDR_OP: option match type (NLA_U8)
|
||||
* @NFTA_EXTHDR_OP: option match type (NLA_U32)
|
||||
* @NFTA_EXTHDR_SREG: option match type (NLA_U32)
|
||||
*/
|
||||
enum nft_exthdr_attributes {
|
||||
NFTA_EXTHDR_UNSPEC,
|
||||
@@ -741,6 +743,7 @@ enum nft_exthdr_attributes {
|
||||
NFTA_EXTHDR_LEN,
|
||||
NFTA_EXTHDR_FLAGS,
|
||||
NFTA_EXTHDR_OP,
|
||||
NFTA_EXTHDR_SREG,
|
||||
__NFTA_EXTHDR_MAX
|
||||
};
|
||||
#define NFTA_EXTHDR_MAX (__NFTA_EXTHDR_MAX - 1)
|
||||
@@ -808,11 +811,13 @@ enum nft_meta_keys {
|
||||
* @NFT_RT_CLASSID: realm value of packet's route (skb->dst->tclassid)
|
||||
* @NFT_RT_NEXTHOP4: routing nexthop for IPv4
|
||||
* @NFT_RT_NEXTHOP6: routing nexthop for IPv6
|
||||
* @NFT_RT_TCPMSS: fetch current path tcp mss
|
||||
*/
|
||||
enum nft_rt_keys {
|
||||
NFT_RT_CLASSID,
|
||||
NFT_RT_NEXTHOP4,
|
||||
NFT_RT_NEXTHOP6,
|
||||
NFT_RT_TCPMSS,
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -1221,6 +1226,8 @@ enum nft_objref_attributes {
|
||||
enum nft_gen_attributes {
|
||||
NFTA_GEN_UNSPEC,
|
||||
NFTA_GEN_ID,
|
||||
NFTA_GEN_PROC_PID,
|
||||
NFTA_GEN_PROC_NAME,
|
||||
__NFTA_GEN_MAX
|
||||
};
|
||||
#define NFTA_GEN_MAX (__NFTA_GEN_MAX - 1)
|
||||
@@ -1275,7 +1282,8 @@ enum nft_ct_helper_attributes {
|
||||
#define NFT_OBJECT_COUNTER 1
|
||||
#define NFT_OBJECT_QUOTA 2
|
||||
#define NFT_OBJECT_CT_HELPER 3
|
||||
#define __NFT_OBJECT_MAX 4
|
||||
#define NFT_OBJECT_LIMIT 4
|
||||
#define __NFT_OBJECT_MAX 5
|
||||
#define NFT_OBJECT_MAX (__NFT_OBJECT_MAX - 1)
|
||||
|
||||
/**
|
||||
|
||||
@@ -19,12 +19,13 @@
|
||||
struct xt_hashlimit_htable;
|
||||
|
||||
enum {
|
||||
XT_HASHLIMIT_HASH_DIP = 1 << 0,
|
||||
XT_HASHLIMIT_HASH_DPT = 1 << 1,
|
||||
XT_HASHLIMIT_HASH_SIP = 1 << 2,
|
||||
XT_HASHLIMIT_HASH_SPT = 1 << 3,
|
||||
XT_HASHLIMIT_INVERT = 1 << 4,
|
||||
XT_HASHLIMIT_BYTES = 1 << 5,
|
||||
XT_HASHLIMIT_HASH_DIP = 1 << 0,
|
||||
XT_HASHLIMIT_HASH_DPT = 1 << 1,
|
||||
XT_HASHLIMIT_HASH_SIP = 1 << 2,
|
||||
XT_HASHLIMIT_HASH_SPT = 1 << 3,
|
||||
XT_HASHLIMIT_INVERT = 1 << 4,
|
||||
XT_HASHLIMIT_BYTES = 1 << 5,
|
||||
XT_HASHLIMIT_RATE_MATCH = 1 << 6,
|
||||
};
|
||||
|
||||
struct hashlimit_cfg {
|
||||
@@ -79,6 +80,21 @@ struct hashlimit_cfg2 {
|
||||
__u8 srcmask, dstmask;
|
||||
};
|
||||
|
||||
struct hashlimit_cfg3 {
|
||||
__u64 avg; /* Average secs between packets * scale */
|
||||
__u64 burst; /* Period multiplier for upper limit. */
|
||||
__u32 mode; /* bitmask of XT_HASHLIMIT_HASH_* */
|
||||
|
||||
/* user specified */
|
||||
__u32 size; /* how many buckets */
|
||||
__u32 max; /* max number of entries */
|
||||
__u32 gc_interval; /* gc interval */
|
||||
__u32 expire; /* when do entries expire? */
|
||||
|
||||
__u32 interval;
|
||||
__u8 srcmask, dstmask;
|
||||
};
|
||||
|
||||
struct xt_hashlimit_mtinfo1 {
|
||||
char name[IFNAMSIZ];
|
||||
struct hashlimit_cfg1 cfg;
|
||||
@@ -95,4 +111,12 @@ struct xt_hashlimit_mtinfo2 {
|
||||
struct xt_hashlimit_htable *hinfo __attribute__((aligned(8)));
|
||||
};
|
||||
|
||||
struct xt_hashlimit_mtinfo3 {
|
||||
char name[NAME_MAX];
|
||||
struct hashlimit_cfg3 cfg;
|
||||
|
||||
/* Used internally by the kernel */
|
||||
struct xt_hashlimit_htable *hinfo __attribute__((aligned(8)));
|
||||
};
|
||||
|
||||
#endif /* _UAPI_XT_HASHLIMIT_H */
|
||||
|
||||
@@ -69,6 +69,9 @@ struct nlmsghdr {
|
||||
#define NLM_F_CREATE 0x400 /* Create, if it does not exist */
|
||||
#define NLM_F_APPEND 0x800 /* Add to end of list */
|
||||
|
||||
/* Modifiers to DELETE request */
|
||||
#define NLM_F_NONREC 0x100 /* Do not delete recursively */
|
||||
|
||||
/* Flags for ACK message */
|
||||
#define NLM_F_CAPPED 0x100 /* request was capped */
|
||||
#define NLM_F_ACK_TLVS 0x200 /* extended ACK TVLs were included */
|
||||
@@ -226,5 +229,22 @@ struct nlattr {
|
||||
#define NLA_ALIGN(len) (((len) + NLA_ALIGNTO - 1) & ~(NLA_ALIGNTO - 1))
|
||||
#define NLA_HDRLEN ((int) NLA_ALIGN(sizeof(struct nlattr)))
|
||||
|
||||
/* Generic 32 bitflags attribute content sent to the kernel.
|
||||
*
|
||||
* The value is a bitmap that defines the values being set
|
||||
* The selector is a bitmask that defines which value is legit
|
||||
*
|
||||
* Examples:
|
||||
* value = 0x0, and selector = 0x1
|
||||
* implies we are selecting bit 1 and we want to set its value to 0.
|
||||
*
|
||||
* value = 0x2, and selector = 0x2
|
||||
* implies we are selecting bit 2 and we want to set its value to 1.
|
||||
*
|
||||
*/
|
||||
struct nla_bitfield32 {
|
||||
__u32 value;
|
||||
__u32 selector;
|
||||
};
|
||||
|
||||
#endif /* _UAPI__LINUX_NETLINK_H */
|
||||
|
||||
@@ -513,6 +513,7 @@
|
||||
#define PCI_EXP_DEVSTA_URD 0x0008 /* Unsupported Request Detected */
|
||||
#define PCI_EXP_DEVSTA_AUXPD 0x0010 /* AUX Power Detected */
|
||||
#define PCI_EXP_DEVSTA_TRPND 0x0020 /* Transactions Pending */
|
||||
#define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V1 12 /* v1 endpoints without link end here */
|
||||
#define PCI_EXP_LNKCAP 12 /* Link Capabilities */
|
||||
#define PCI_EXP_LNKCAP_SLS 0x0000000f /* Supported Link Speeds */
|
||||
#define PCI_EXP_LNKCAP_SLS_2_5GB 0x00000001 /* LNKCAP2 SLS Vector bit 0 */
|
||||
@@ -556,7 +557,7 @@
|
||||
#define PCI_EXP_LNKSTA_DLLLA 0x2000 /* Data Link Layer Link Active */
|
||||
#define PCI_EXP_LNKSTA_LBMS 0x4000 /* Link Bandwidth Management Status */
|
||||
#define PCI_EXP_LNKSTA_LABS 0x8000 /* Link Autonomous Bandwidth Status */
|
||||
#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V1 20 /* v1 endpoints end here */
|
||||
#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V1 20 /* v1 endpoints with link end here */
|
||||
#define PCI_EXP_SLTCAP 20 /* Slot Capabilities */
|
||||
#define PCI_EXP_SLTCAP_ABP 0x00000001 /* Attention Button Present */
|
||||
#define PCI_EXP_SLTCAP_PCP 0x00000002 /* Power Controller Present */
|
||||
@@ -639,7 +640,7 @@
|
||||
#define PCI_EXP_DEVCTL2_OBFF_MSGB_EN 0x4000 /* Enable OBFF Message type B */
|
||||
#define PCI_EXP_DEVCTL2_OBFF_WAKE_EN 0x6000 /* OBFF using WAKE# signaling */
|
||||
#define PCI_EXP_DEVSTA2 42 /* Device Status 2 */
|
||||
#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 44 /* v2 endpoints end here */
|
||||
#define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V2 44 /* v2 endpoints without link end here */
|
||||
#define PCI_EXP_LNKCAP2 44 /* Link Capabilities 2 */
|
||||
#define PCI_EXP_LNKCAP2_SLS_2_5GB 0x00000002 /* Supported Speed 2.5GT/s */
|
||||
#define PCI_EXP_LNKCAP2_SLS_5_0GB 0x00000004 /* Supported Speed 5.0GT/s */
|
||||
@@ -647,6 +648,7 @@
|
||||
#define PCI_EXP_LNKCAP2_CROSSLINK 0x00000100 /* Crosslink supported */
|
||||
#define PCI_EXP_LNKCTL2 48 /* Link Control 2 */
|
||||
#define PCI_EXP_LNKSTA2 50 /* Link Status 2 */
|
||||
#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 52 /* v2 endpoints with link end here */
|
||||
#define PCI_EXP_SLTCAP2 52 /* Slot Capabilities 2 */
|
||||
#define PCI_EXP_SLTCTL2 56 /* Slot Control 2 */
|
||||
#define PCI_EXP_SLTSTA2 58 /* Slot Status 2 */
|
||||
@@ -733,23 +735,17 @@
|
||||
#define PCI_ERR_CAP_ECRC_CHKE 0x00000100 /* ECRC Check Enable */
|
||||
#define PCI_ERR_HEADER_LOG 28 /* Header Log Register (16 bytes) */
|
||||
#define PCI_ERR_ROOT_COMMAND 44 /* Root Error Command */
|
||||
/* Correctable Err Reporting Enable */
|
||||
#define PCI_ERR_ROOT_CMD_COR_EN 0x00000001
|
||||
/* Non-fatal Err Reporting Enable */
|
||||
#define PCI_ERR_ROOT_CMD_NONFATAL_EN 0x00000002
|
||||
/* Fatal Err Reporting Enable */
|
||||
#define PCI_ERR_ROOT_CMD_FATAL_EN 0x00000004
|
||||
#define PCI_ERR_ROOT_CMD_COR_EN 0x00000001 /* Correctable Err Reporting Enable */
|
||||
#define PCI_ERR_ROOT_CMD_NONFATAL_EN 0x00000002 /* Non-Fatal Err Reporting Enable */
|
||||
#define PCI_ERR_ROOT_CMD_FATAL_EN 0x00000004 /* Fatal Err Reporting Enable */
|
||||
#define PCI_ERR_ROOT_STATUS 48
|
||||
#define PCI_ERR_ROOT_COR_RCV 0x00000001 /* ERR_COR Received */
|
||||
/* Multi ERR_COR Received */
|
||||
#define PCI_ERR_ROOT_MULTI_COR_RCV 0x00000002
|
||||
/* ERR_FATAL/NONFATAL Received */
|
||||
#define PCI_ERR_ROOT_UNCOR_RCV 0x00000004
|
||||
/* Multi ERR_FATAL/NONFATAL Received */
|
||||
#define PCI_ERR_ROOT_MULTI_UNCOR_RCV 0x00000008
|
||||
#define PCI_ERR_ROOT_FIRST_FATAL 0x00000010 /* First Fatal */
|
||||
#define PCI_ERR_ROOT_NONFATAL_RCV 0x00000020 /* Non-Fatal Received */
|
||||
#define PCI_ERR_ROOT_FATAL_RCV 0x00000040 /* Fatal Received */
|
||||
#define PCI_ERR_ROOT_COR_RCV 0x00000001 /* ERR_COR Received */
|
||||
#define PCI_ERR_ROOT_MULTI_COR_RCV 0x00000002 /* Multiple ERR_COR */
|
||||
#define PCI_ERR_ROOT_UNCOR_RCV 0x00000004 /* ERR_FATAL/NONFATAL */
|
||||
#define PCI_ERR_ROOT_MULTI_UNCOR_RCV 0x00000008 /* Multiple FATAL/NONFATAL */
|
||||
#define PCI_ERR_ROOT_FIRST_FATAL 0x00000010 /* First UNC is Fatal */
|
||||
#define PCI_ERR_ROOT_NONFATAL_RCV 0x00000020 /* Non-Fatal Received */
|
||||
#define PCI_ERR_ROOT_FATAL_RCV 0x00000040 /* Fatal Received */
|
||||
#define PCI_ERR_ROOT_ERR_SRC 52 /* Error Source Identification */
|
||||
|
||||
/* Virtual Channel */
|
||||
@@ -967,6 +963,7 @@
|
||||
#define PCI_EXP_DPC_CAP_RP_EXT 0x20 /* Root Port Extensions for DPC */
|
||||
#define PCI_EXP_DPC_CAP_POISONED_TLP 0x40 /* Poisoned TLP Egress Blocking Supported */
|
||||
#define PCI_EXP_DPC_CAP_SW_TRIGGER 0x80 /* Software Triggering Supported */
|
||||
#define PCI_EXP_DPC_RP_PIO_LOG_SIZE 0xF00 /* RP PIO log size */
|
||||
#define PCI_EXP_DPC_CAP_DL_ACTIVE 0x1000 /* ERR_COR signal on DL_Active supported */
|
||||
|
||||
#define PCI_EXP_DPC_CTL 6 /* DPC control */
|
||||
@@ -980,6 +977,15 @@
|
||||
|
||||
#define PCI_EXP_DPC_SOURCE_ID 10 /* DPC Source Identifier */
|
||||
|
||||
#define PCI_EXP_DPC_RP_PIO_STATUS 0x0C /* RP PIO Status */
|
||||
#define PCI_EXP_DPC_RP_PIO_MASK 0x10 /* RP PIO MASK */
|
||||
#define PCI_EXP_DPC_RP_PIO_SEVERITY 0x14 /* RP PIO Severity */
|
||||
#define PCI_EXP_DPC_RP_PIO_SYSERROR 0x18 /* RP PIO SysError */
|
||||
#define PCI_EXP_DPC_RP_PIO_EXCEPTION 0x1C /* RP PIO Exception */
|
||||
#define PCI_EXP_DPC_RP_PIO_HEADER_LOG 0x20 /* RP PIO Header Log */
|
||||
#define PCI_EXP_DPC_RP_PIO_IMPSPEC_LOG 0x30 /* RP PIO ImpSpec Log */
|
||||
#define PCI_EXP_DPC_RP_PIO_TLPPREFIX_LOG 0x34 /* RP PIO TLP Prefix Log */
|
||||
|
||||
/* Precision Time Measurement */
|
||||
#define PCI_PTM_CAP 0x04 /* PTM Capability */
|
||||
#define PCI_PTM_CAP_REQ 0x00000001 /* Requester capable */
|
||||
|
||||
@@ -139,8 +139,9 @@ enum perf_event_sample_format {
|
||||
PERF_SAMPLE_IDENTIFIER = 1U << 16,
|
||||
PERF_SAMPLE_TRANSACTION = 1U << 17,
|
||||
PERF_SAMPLE_REGS_INTR = 1U << 18,
|
||||
PERF_SAMPLE_PHYS_ADDR = 1U << 19,
|
||||
|
||||
PERF_SAMPLE_MAX = 1U << 19, /* non-ABI */
|
||||
PERF_SAMPLE_MAX = 1U << 20, /* non-ABI */
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -174,6 +175,8 @@ enum perf_branch_sample_type_shift {
|
||||
PERF_SAMPLE_BRANCH_NO_FLAGS_SHIFT = 14, /* no flags */
|
||||
PERF_SAMPLE_BRANCH_NO_CYCLES_SHIFT = 15, /* no cycles */
|
||||
|
||||
PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT = 16, /* save branch type */
|
||||
|
||||
PERF_SAMPLE_BRANCH_MAX_SHIFT /* non-ABI */
|
||||
};
|
||||
|
||||
@@ -198,9 +201,30 @@ enum perf_branch_sample_type {
|
||||
PERF_SAMPLE_BRANCH_NO_FLAGS = 1U << PERF_SAMPLE_BRANCH_NO_FLAGS_SHIFT,
|
||||
PERF_SAMPLE_BRANCH_NO_CYCLES = 1U << PERF_SAMPLE_BRANCH_NO_CYCLES_SHIFT,
|
||||
|
||||
PERF_SAMPLE_BRANCH_TYPE_SAVE =
|
||||
1U << PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT,
|
||||
|
||||
PERF_SAMPLE_BRANCH_MAX = 1U << PERF_SAMPLE_BRANCH_MAX_SHIFT,
|
||||
};
|
||||
|
||||
/*
|
||||
* Common flow change classification
|
||||
*/
|
||||
enum {
|
||||
PERF_BR_UNKNOWN = 0, /* unknown */
|
||||
PERF_BR_COND = 1, /* conditional */
|
||||
PERF_BR_UNCOND = 2, /* unconditional */
|
||||
PERF_BR_IND = 3, /* indirect */
|
||||
PERF_BR_CALL = 4, /* function call */
|
||||
PERF_BR_IND_CALL = 5, /* indirect function call */
|
||||
PERF_BR_RET = 6, /* function return */
|
||||
PERF_BR_SYSCALL = 7, /* syscall */
|
||||
PERF_BR_SYSRET = 8, /* syscall return */
|
||||
PERF_BR_COND_CALL = 9, /* conditional function call */
|
||||
PERF_BR_COND_RET = 10, /* conditional function return */
|
||||
PERF_BR_MAX,
|
||||
};
|
||||
|
||||
#define PERF_SAMPLE_BRANCH_PLM_ALL \
|
||||
(PERF_SAMPLE_BRANCH_USER|\
|
||||
PERF_SAMPLE_BRANCH_KERNEL|\
|
||||
@@ -791,6 +815,7 @@ enum perf_event_type {
|
||||
* { u64 transaction; } && PERF_SAMPLE_TRANSACTION
|
||||
* { u64 abi; # enum perf_sample_regs_abi
|
||||
* u64 regs[weight(mask)]; } && PERF_SAMPLE_REGS_INTR
|
||||
* { u64 phys_addr;} && PERF_SAMPLE_PHYS_ADDR
|
||||
* };
|
||||
*/
|
||||
PERF_RECORD_SAMPLE = 9,
|
||||
@@ -931,14 +956,20 @@ union perf_mem_data_src {
|
||||
mem_snoop:5, /* snoop mode */
|
||||
mem_lock:2, /* lock instr */
|
||||
mem_dtlb:7, /* tlb access */
|
||||
mem_rsvd:31;
|
||||
mem_lvl_num:4, /* memory hierarchy level number */
|
||||
mem_remote:1, /* remote */
|
||||
mem_snoopx:2, /* snoop mode, ext */
|
||||
mem_rsvd:24;
|
||||
};
|
||||
};
|
||||
#elif defined(__BIG_ENDIAN_BITFIELD)
|
||||
union perf_mem_data_src {
|
||||
__u64 val;
|
||||
struct {
|
||||
__u64 mem_rsvd:31,
|
||||
__u64 mem_rsvd:24,
|
||||
mem_snoopx:2, /* snoop mode, ext */
|
||||
mem_remote:1, /* remote */
|
||||
mem_lvl_num:4, /* memory hierarchy level number */
|
||||
mem_dtlb:7, /* tlb access */
|
||||
mem_lock:2, /* lock instr */
|
||||
mem_snoop:5, /* snoop mode */
|
||||
@@ -975,6 +1006,22 @@ union perf_mem_data_src {
|
||||
#define PERF_MEM_LVL_UNC 0x2000 /* Uncached memory */
|
||||
#define PERF_MEM_LVL_SHIFT 5
|
||||
|
||||
#define PERF_MEM_REMOTE_REMOTE 0x01 /* Remote */
|
||||
#define PERF_MEM_REMOTE_SHIFT 37
|
||||
|
||||
#define PERF_MEM_LVLNUM_L1 0x01 /* L1 */
|
||||
#define PERF_MEM_LVLNUM_L2 0x02 /* L2 */
|
||||
#define PERF_MEM_LVLNUM_L3 0x03 /* L3 */
|
||||
#define PERF_MEM_LVLNUM_L4 0x04 /* L4 */
|
||||
/* 5-0xa available */
|
||||
#define PERF_MEM_LVLNUM_ANY_CACHE 0x0b /* Any cache */
|
||||
#define PERF_MEM_LVLNUM_LFB 0x0c /* LFB */
|
||||
#define PERF_MEM_LVLNUM_RAM 0x0d /* RAM */
|
||||
#define PERF_MEM_LVLNUM_PMEM 0x0e /* PMEM */
|
||||
#define PERF_MEM_LVLNUM_NA 0x0f /* N/A */
|
||||
|
||||
#define PERF_MEM_LVLNUM_SHIFT 33
|
||||
|
||||
/* snoop mode */
|
||||
#define PERF_MEM_SNOOP_NA 0x01 /* not available */
|
||||
#define PERF_MEM_SNOOP_NONE 0x02 /* no snoop */
|
||||
@@ -983,6 +1030,10 @@ union perf_mem_data_src {
|
||||
#define PERF_MEM_SNOOP_HITM 0x10 /* snoop hit modified */
|
||||
#define PERF_MEM_SNOOP_SHIFT 19
|
||||
|
||||
#define PERF_MEM_SNOOPX_FWD 0x01 /* forward */
|
||||
/* 1 free */
|
||||
#define PERF_MEM_SNOOPX_SHIFT 37
|
||||
|
||||
/* locked instruction */
|
||||
#define PERF_MEM_LOCK_NA 0x01 /* not available */
|
||||
#define PERF_MEM_LOCK_LOCKED 0x02 /* locked transaction */
|
||||
@@ -1015,6 +1066,7 @@ union perf_mem_data_src {
|
||||
* in_tx: running in a hardware transaction
|
||||
* abort: aborting a hardware transaction
|
||||
* cycles: cycles from last branch (or 0 if not supported)
|
||||
* type: branch type
|
||||
*/
|
||||
struct perf_branch_entry {
|
||||
__u64 from;
|
||||
@@ -1024,7 +1076,8 @@ struct perf_branch_entry {
|
||||
in_tx:1, /* in transaction */
|
||||
abort:1, /* transaction abort */
|
||||
cycles:16, /* cycle count to last branch */
|
||||
reserved:44;
|
||||
type:4, /* branch type */
|
||||
reserved:40;
|
||||
};
|
||||
|
||||
#endif /* _UAPI_LINUX_PERF_EVENT_H */
|
||||
|
||||
@@ -95,8 +95,8 @@ struct pps_kparams {
|
||||
#define PPS_CAPTURECLEAR 0x02 /* capture clear events */
|
||||
#define PPS_CAPTUREBOTH 0x03 /* capture assert and clear events */
|
||||
|
||||
#define PPS_OFFSETASSERT 0x10 /* apply compensation for assert ev. */
|
||||
#define PPS_OFFSETCLEAR 0x20 /* apply compensation for clear ev. */
|
||||
#define PPS_OFFSETASSERT 0x10 /* apply compensation for assert event */
|
||||
#define PPS_OFFSETCLEAR 0x20 /* apply compensation for clear event */
|
||||
|
||||
#define PPS_CANWAIT 0x100 /* can we wait for an event? */
|
||||
#define PPS_CANPOLL 0x200 /* bit reserved for future use */
|
||||
|
||||
@@ -33,7 +33,6 @@
|
||||
#ifndef _UAPI_LINUX_QUOTA_
|
||||
#define _UAPI_LINUX_QUOTA_
|
||||
|
||||
#include <linux/errno.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#define __DQUOT_VERSION__ "dquot_6.6.0"
|
||||
|
||||
@@ -324,9 +324,10 @@ struct mdp_superblock_1 {
|
||||
#define MD_FEATURE_RECOVERY_BITMAP 128 /* recovery that is happening
|
||||
* is guided by bitmap.
|
||||
*/
|
||||
#define MD_FEATURE_CLUSTERED 256 /* clustered MD */
|
||||
#define MD_FEATURE_CLUSTERED 256 /* clustered MD */
|
||||
#define MD_FEATURE_JOURNAL 512 /* support write cache */
|
||||
#define MD_FEATURE_PPL 1024 /* support PPL */
|
||||
#define MD_FEATURE_MULTIPLE_PPLS 2048 /* support for multiple PPLs */
|
||||
#define MD_FEATURE_ALL (MD_FEATURE_BITMAP_OFFSET \
|
||||
|MD_FEATURE_RECOVERY_OFFSET \
|
||||
|MD_FEATURE_RESHAPE_ACTIVE \
|
||||
@@ -338,6 +339,7 @@ struct mdp_superblock_1 {
|
||||
|MD_FEATURE_CLUSTERED \
|
||||
|MD_FEATURE_JOURNAL \
|
||||
|MD_FEATURE_PPL \
|
||||
|MD_FEATURE_MULTIPLE_PPLS \
|
||||
)
|
||||
|
||||
struct r5l_payload_header {
|
||||
|
||||
@@ -683,10 +683,29 @@ struct tcamsg {
|
||||
unsigned char tca__pad1;
|
||||
unsigned short tca__pad2;
|
||||
};
|
||||
|
||||
enum {
|
||||
TCA_ROOT_UNSPEC,
|
||||
TCA_ROOT_TAB,
|
||||
#define TCA_ACT_TAB TCA_ROOT_TAB
|
||||
#define TCAA_MAX TCA_ROOT_TAB
|
||||
TCA_ROOT_FLAGS,
|
||||
TCA_ROOT_COUNT,
|
||||
TCA_ROOT_TIME_DELTA, /* in msecs */
|
||||
__TCA_ROOT_MAX,
|
||||
#define TCA_ROOT_MAX (__TCA_ROOT_MAX - 1)
|
||||
};
|
||||
|
||||
#define TA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct tcamsg))))
|
||||
#define TA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct tcamsg))
|
||||
#define TCA_ACT_TAB 1 /* attr type must be >=1 */
|
||||
#define TCAA_MAX 1
|
||||
/* tcamsg flags stored in attribute TCA_ROOT_FLAGS
|
||||
*
|
||||
* TCA_FLAG_LARGE_DUMP_ON user->kernel to request for larger than TCA_ACT_MAX_PRIO
|
||||
* actions in a dump. All dump responses will contain the number of actions
|
||||
* being dumped stored in for user app's consumption in TCA_ROOT_COUNT
|
||||
*
|
||||
*/
|
||||
#define TCA_FLAG_LARGE_DUMP_ON (1 << 0)
|
||||
|
||||
/* New extended info filters for IFLA_EXT_MASK */
|
||||
#define RTEXT_FILTER_VF (1 << 0)
|
||||
|
||||
124
include/uapi/linux/rxrpc.h
Normal file
124
include/uapi/linux/rxrpc.h
Normal file
@@ -0,0 +1,124 @@
|
||||
/* Types and definitions for AF_RXRPC.
|
||||
*
|
||||
* Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
|
||||
* Written by David Howells (dhowells@redhat.com)
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public Licence
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the Licence, or (at your option) any later version.
|
||||
*/
|
||||
|
||||
#ifndef _UAPI_LINUX_RXRPC_H
|
||||
#define _UAPI_LINUX_RXRPC_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/in.h>
|
||||
#include <linux/in6.h>
|
||||
|
||||
/*
|
||||
* RxRPC socket address
|
||||
*/
|
||||
struct sockaddr_rxrpc {
|
||||
sa_family_t srx_family; /* address family */
|
||||
u16 srx_service; /* service desired */
|
||||
u16 transport_type; /* type of transport socket (SOCK_DGRAM) */
|
||||
u16 transport_len; /* length of transport address */
|
||||
union {
|
||||
sa_family_t family; /* transport address family */
|
||||
struct sockaddr_in sin; /* IPv4 transport address */
|
||||
struct sockaddr_in6 sin6; /* IPv6 transport address */
|
||||
} transport;
|
||||
};
|
||||
|
||||
/*
|
||||
* RxRPC socket options
|
||||
*/
|
||||
#define RXRPC_SECURITY_KEY 1 /* [clnt] set client security key */
|
||||
#define RXRPC_SECURITY_KEYRING 2 /* [srvr] set ring of server security keys */
|
||||
#define RXRPC_EXCLUSIVE_CONNECTION 3 /* Deprecated; use RXRPC_EXCLUSIVE_CALL instead */
|
||||
#define RXRPC_MIN_SECURITY_LEVEL 4 /* minimum security level */
|
||||
#define RXRPC_UPGRADEABLE_SERVICE 5 /* Upgrade service[0] -> service[1] */
|
||||
#define RXRPC_SUPPORTED_CMSG 6 /* Get highest supported control message type */
|
||||
|
||||
/*
|
||||
* RxRPC control messages
|
||||
* - If neither abort or accept are specified, the message is a data message.
|
||||
* - terminal messages mean that a user call ID tag can be recycled
|
||||
* - s/r/- indicate whether these are applicable to sendmsg() and/or recvmsg()
|
||||
*/
|
||||
enum rxrpc_cmsg_type {
|
||||
RXRPC_USER_CALL_ID = 1, /* sr: user call ID specifier */
|
||||
RXRPC_ABORT = 2, /* sr: abort request / notification [terminal] */
|
||||
RXRPC_ACK = 3, /* -r: [Service] RPC op final ACK received [terminal] */
|
||||
RXRPC_NET_ERROR = 5, /* -r: network error received [terminal] */
|
||||
RXRPC_BUSY = 6, /* -r: server busy received [terminal] */
|
||||
RXRPC_LOCAL_ERROR = 7, /* -r: local error generated [terminal] */
|
||||
RXRPC_NEW_CALL = 8, /* -r: [Service] new incoming call notification */
|
||||
RXRPC_ACCEPT = 9, /* s-: [Service] accept request */
|
||||
RXRPC_EXCLUSIVE_CALL = 10, /* s-: Call should be on exclusive connection */
|
||||
RXRPC_UPGRADE_SERVICE = 11, /* s-: Request service upgrade for client call */
|
||||
RXRPC_TX_LENGTH = 12, /* s-: Total length of Tx data */
|
||||
RXRPC__SUPPORTED
|
||||
};
|
||||
|
||||
/*
|
||||
* RxRPC security levels
|
||||
*/
|
||||
#define RXRPC_SECURITY_PLAIN 0 /* plain secure-checksummed packets only */
|
||||
#define RXRPC_SECURITY_AUTH 1 /* authenticated packets */
|
||||
#define RXRPC_SECURITY_ENCRYPT 2 /* encrypted packets */
|
||||
|
||||
/*
|
||||
* RxRPC security indices
|
||||
*/
|
||||
#define RXRPC_SECURITY_NONE 0 /* no security protocol */
|
||||
#define RXRPC_SECURITY_RXKAD 2 /* kaserver or kerberos 4 */
|
||||
#define RXRPC_SECURITY_RXGK 4 /* gssapi-based */
|
||||
#define RXRPC_SECURITY_RXK5 5 /* kerberos 5 */
|
||||
|
||||
/*
|
||||
* RxRPC-level abort codes
|
||||
*/
|
||||
#define RX_CALL_DEAD -1 /* call/conn has been inactive and is shut down */
|
||||
#define RX_INVALID_OPERATION -2 /* invalid operation requested / attempted */
|
||||
#define RX_CALL_TIMEOUT -3 /* call timeout exceeded */
|
||||
#define RX_EOF -4 /* unexpected end of data on read op */
|
||||
#define RX_PROTOCOL_ERROR -5 /* low-level protocol error */
|
||||
#define RX_USER_ABORT -6 /* generic user abort */
|
||||
#define RX_ADDRINUSE -7 /* UDP port in use */
|
||||
#define RX_DEBUGI_BADTYPE -8 /* bad debugging packet type */
|
||||
|
||||
/*
|
||||
* (un)marshalling abort codes (rxgen)
|
||||
*/
|
||||
#define RXGEN_CC_MARSHAL -450
|
||||
#define RXGEN_CC_UNMARSHAL -451
|
||||
#define RXGEN_SS_MARSHAL -452
|
||||
#define RXGEN_SS_UNMARSHAL -453
|
||||
#define RXGEN_DECODE -454
|
||||
#define RXGEN_OPCODE -455
|
||||
#define RXGEN_SS_XDRFREE -456
|
||||
#define RXGEN_CC_XDRFREE -457
|
||||
|
||||
/*
|
||||
* Rx kerberos security abort codes
|
||||
* - unfortunately we have no generalised security abort codes to say things
|
||||
* like "unsupported security", so we have to use these instead and hope the
|
||||
* other side understands
|
||||
*/
|
||||
#define RXKADINCONSISTENCY 19270400 /* security module structure inconsistent */
|
||||
#define RXKADPACKETSHORT 19270401 /* packet too short for security challenge */
|
||||
#define RXKADLEVELFAIL 19270402 /* security level negotiation failed */
|
||||
#define RXKADTICKETLEN 19270403 /* ticket length too short or too long */
|
||||
#define RXKADOUTOFSEQUENCE 19270404 /* packet had bad sequence number */
|
||||
#define RXKADNOAUTH 19270405 /* caller not authorised */
|
||||
#define RXKADBADKEY 19270406 /* illegal key: bad parity or weak */
|
||||
#define RXKADBADTICKET 19270407 /* security object was passed a bad ticket */
|
||||
#define RXKADUNKNOWNKEY 19270408 /* ticket contained unknown key version number */
|
||||
#define RXKADEXPIRED 19270409 /* authentication expired */
|
||||
#define RXKADSEALEDINCON 19270410 /* sealed data inconsistent */
|
||||
#define RXKADDATALEN 19270411 /* user data too long */
|
||||
#define RXKADILLEGALLEVEL 19270412 /* caller not authorised to use encrypted conns */
|
||||
|
||||
#endif /* _UAPI_LINUX_RXRPC_H */
|
||||
@@ -11,27 +11,34 @@
|
||||
#define SECCOMP_MODE_FILTER 2 /* uses user-supplied filter. */
|
||||
|
||||
/* Valid operations for seccomp syscall. */
|
||||
#define SECCOMP_SET_MODE_STRICT 0
|
||||
#define SECCOMP_SET_MODE_FILTER 1
|
||||
#define SECCOMP_SET_MODE_STRICT 0
|
||||
#define SECCOMP_SET_MODE_FILTER 1
|
||||
#define SECCOMP_GET_ACTION_AVAIL 2
|
||||
|
||||
/* Valid flags for SECCOMP_SET_MODE_FILTER */
|
||||
#define SECCOMP_FILTER_FLAG_TSYNC 1
|
||||
#define SECCOMP_FILTER_FLAG_LOG 2
|
||||
|
||||
/*
|
||||
* All BPF programs must return a 32-bit value.
|
||||
* The bottom 16-bits are for optional return data.
|
||||
* The upper 16-bits are ordered from least permissive values to most.
|
||||
* The upper 16-bits are ordered from least permissive values to most,
|
||||
* as a signed value (so 0x8000000 is negative).
|
||||
*
|
||||
* The ordering ensures that a min_t() over composed return values always
|
||||
* selects the least permissive choice.
|
||||
*/
|
||||
#define SECCOMP_RET_KILL 0x00000000U /* kill the task immediately */
|
||||
#define SECCOMP_RET_TRAP 0x00030000U /* disallow and force a SIGSYS */
|
||||
#define SECCOMP_RET_ERRNO 0x00050000U /* returns an errno */
|
||||
#define SECCOMP_RET_TRACE 0x7ff00000U /* pass to a tracer or disallow */
|
||||
#define SECCOMP_RET_ALLOW 0x7fff0000U /* allow */
|
||||
#define SECCOMP_RET_KILL_PROCESS 0x80000000U /* kill the process */
|
||||
#define SECCOMP_RET_KILL_THREAD 0x00000000U /* kill the thread */
|
||||
#define SECCOMP_RET_KILL SECCOMP_RET_KILL_THREAD
|
||||
#define SECCOMP_RET_TRAP 0x00030000U /* disallow and force a SIGSYS */
|
||||
#define SECCOMP_RET_ERRNO 0x00050000U /* returns an errno */
|
||||
#define SECCOMP_RET_TRACE 0x7ff00000U /* pass to a tracer or disallow */
|
||||
#define SECCOMP_RET_LOG 0x7ffc0000U /* allow after logging */
|
||||
#define SECCOMP_RET_ALLOW 0x7fff0000U /* allow */
|
||||
|
||||
/* Masks for the return value sections. */
|
||||
#define SECCOMP_RET_ACTION_FULL 0xffff0000U
|
||||
#define SECCOMP_RET_ACTION 0x7fff0000U
|
||||
#define SECCOMP_RET_DATA 0x0000ffffU
|
||||
|
||||
|
||||
@@ -33,16 +33,26 @@ struct seg6_iptunnel_encap {
|
||||
enum {
|
||||
SEG6_IPTUN_MODE_INLINE,
|
||||
SEG6_IPTUN_MODE_ENCAP,
|
||||
SEG6_IPTUN_MODE_L2ENCAP,
|
||||
};
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
static inline size_t seg6_lwt_headroom(struct seg6_iptunnel_encap *tuninfo)
|
||||
{
|
||||
int encap = (tuninfo->mode == SEG6_IPTUN_MODE_ENCAP);
|
||||
int head = 0;
|
||||
|
||||
return ((tuninfo->srh->hdrlen + 1) << 3) +
|
||||
(encap * sizeof(struct ipv6hdr));
|
||||
switch (tuninfo->mode) {
|
||||
case SEG6_IPTUN_MODE_INLINE:
|
||||
break;
|
||||
case SEG6_IPTUN_MODE_ENCAP:
|
||||
head = sizeof(struct ipv6hdr);
|
||||
break;
|
||||
case SEG6_IPTUN_MODE_L2ENCAP:
|
||||
return 0;
|
||||
}
|
||||
|
||||
return ((tuninfo->srh->hdrlen + 1) << 3) + head;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
68
include/uapi/linux/seg6_local.h
Normal file
68
include/uapi/linux/seg6_local.h
Normal file
@@ -0,0 +1,68 @@
|
||||
/*
|
||||
* SR-IPv6 implementation
|
||||
*
|
||||
* Author:
|
||||
* David Lebrun <david.lebrun@uclouvain.be>
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
|
||||
#ifndef _UAPI_LINUX_SEG6_LOCAL_H
|
||||
#define _UAPI_LINUX_SEG6_LOCAL_H
|
||||
|
||||
#include <linux/seg6.h>
|
||||
|
||||
enum {
|
||||
SEG6_LOCAL_UNSPEC,
|
||||
SEG6_LOCAL_ACTION,
|
||||
SEG6_LOCAL_SRH,
|
||||
SEG6_LOCAL_TABLE,
|
||||
SEG6_LOCAL_NH4,
|
||||
SEG6_LOCAL_NH6,
|
||||
SEG6_LOCAL_IIF,
|
||||
SEG6_LOCAL_OIF,
|
||||
__SEG6_LOCAL_MAX,
|
||||
};
|
||||
#define SEG6_LOCAL_MAX (__SEG6_LOCAL_MAX - 1)
|
||||
|
||||
enum {
|
||||
SEG6_LOCAL_ACTION_UNSPEC = 0,
|
||||
/* node segment */
|
||||
SEG6_LOCAL_ACTION_END = 1,
|
||||
/* adjacency segment (IPv6 cross-connect) */
|
||||
SEG6_LOCAL_ACTION_END_X = 2,
|
||||
/* lookup of next seg NH in table */
|
||||
SEG6_LOCAL_ACTION_END_T = 3,
|
||||
/* decap and L2 cross-connect */
|
||||
SEG6_LOCAL_ACTION_END_DX2 = 4,
|
||||
/* decap and IPv6 cross-connect */
|
||||
SEG6_LOCAL_ACTION_END_DX6 = 5,
|
||||
/* decap and IPv4 cross-connect */
|
||||
SEG6_LOCAL_ACTION_END_DX4 = 6,
|
||||
/* decap and lookup of DA in v6 table */
|
||||
SEG6_LOCAL_ACTION_END_DT6 = 7,
|
||||
/* decap and lookup of DA in v4 table */
|
||||
SEG6_LOCAL_ACTION_END_DT4 = 8,
|
||||
/* binding segment with insertion */
|
||||
SEG6_LOCAL_ACTION_END_B6 = 9,
|
||||
/* binding segment with encapsulation */
|
||||
SEG6_LOCAL_ACTION_END_B6_ENCAP = 10,
|
||||
/* binding segment with MPLS encap */
|
||||
SEG6_LOCAL_ACTION_END_BM = 11,
|
||||
/* lookup last seg in table */
|
||||
SEG6_LOCAL_ACTION_END_S = 12,
|
||||
/* forward to SR-unaware VNF with static proxy */
|
||||
SEG6_LOCAL_ACTION_END_AS = 13,
|
||||
/* forward to SR-unaware VNF with masquerading */
|
||||
SEG6_LOCAL_ACTION_END_AM = 14,
|
||||
|
||||
__SEG6_LOCAL_ACTION_MAX,
|
||||
};
|
||||
|
||||
#define SEG6_LOCAL_ACTION_MAX (__SEG6_LOCAL_ACTION_MAX - 1)
|
||||
|
||||
#endif
|
||||
@@ -56,8 +56,6 @@
|
||||
#define PORT_ALTR_16550_F128 28 /* Altera 16550 UART with 128 FIFOs */
|
||||
#define PORT_RT2880 29 /* Ralink RT2880 internal UART */
|
||||
#define PORT_16550A_FSL64 30 /* Freescale 16550 UART with 64 FIFOs */
|
||||
#define PORT_DA830 31 /* TI DA8xx/66AK2x */
|
||||
#define PORT_MAX_8250 31 /* max port ID */
|
||||
|
||||
/*
|
||||
* ARM specific type numbers. These are not currently guaranteed
|
||||
@@ -70,12 +68,17 @@
|
||||
#define PORT_CLPS711X 33
|
||||
#define PORT_SA1100 34
|
||||
#define PORT_UART00 35
|
||||
#define PORT_OWL 36
|
||||
#define PORT_21285 37
|
||||
|
||||
/* Sparc type numbers. */
|
||||
#define PORT_SUNZILOG 38
|
||||
#define PORT_SUNSAB 39
|
||||
|
||||
/* Intel EG20 */
|
||||
#define PORT_PCH_8LINE 44
|
||||
#define PORT_PCH_2LINE 45
|
||||
|
||||
/* DEC */
|
||||
#define PORT_DZ 46
|
||||
#define PORT_ZS 47
|
||||
@@ -205,8 +208,8 @@
|
||||
/* MAX310X */
|
||||
#define PORT_MAX310X 94
|
||||
|
||||
/* High Speed UART for Medfield */
|
||||
#define PORT_MFD 95
|
||||
/* TI DA8xx/66AK2x */
|
||||
#define PORT_DA830 95
|
||||
|
||||
/* TI OMAP-UART */
|
||||
#define PORT_OMAP 96
|
||||
@@ -271,4 +274,7 @@
|
||||
/* MPS2 UART */
|
||||
#define PORT_MPS2UART 116
|
||||
|
||||
/* MediaTek BTIF */
|
||||
#define PORT_MTK_BTIF 117
|
||||
|
||||
#endif /* _UAPILINUX_SERIAL_CORE_H */
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
#include <linux/ipc.h>
|
||||
#include <linux/errno.h>
|
||||
#include <asm-generic/hugetlb_encode.h>
|
||||
#ifndef __KERNEL__
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
@@ -40,11 +41,37 @@ struct shmid_ds {
|
||||
/* Include the definition of shmid64_ds and shminfo64 */
|
||||
#include <asm/shmbuf.h>
|
||||
|
||||
/* permission flag for shmget */
|
||||
/*
|
||||
* shmget() shmflg values.
|
||||
*/
|
||||
/* The bottom nine bits are the same as open(2) mode flags */
|
||||
#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */
|
||||
#define SHM_W 0200 /* or S_IWUGO from <linux/stat.h> */
|
||||
/* Bits 9 & 10 are IPC_CREAT and IPC_EXCL */
|
||||
#define SHM_HUGETLB 04000 /* segment will use huge TLB pages */
|
||||
#define SHM_NORESERVE 010000 /* don't check for reservations */
|
||||
|
||||
/* mode for attach */
|
||||
/*
|
||||
* Huge page size encoding when SHM_HUGETLB is specified, and a huge page
|
||||
* size other than the default is desired. See hugetlb_encode.h
|
||||
*/
|
||||
#define SHM_HUGE_SHIFT HUGETLB_FLAG_ENCODE_SHIFT
|
||||
#define SHM_HUGE_MASK HUGETLB_FLAG_ENCODE_MASK
|
||||
|
||||
#define SHM_HUGE_64KB HUGETLB_FLAG_ENCODE_64KB
|
||||
#define SHM_HUGE_512KB HUGETLB_FLAG_ENCODE_512KB
|
||||
#define SHM_HUGE_1MB HUGETLB_FLAG_ENCODE_1MB
|
||||
#define SHM_HUGE_2MB HUGETLB_FLAG_ENCODE_2MB
|
||||
#define SHM_HUGE_8MB HUGETLB_FLAG_ENCODE_8MB
|
||||
#define SHM_HUGE_16MB HUGETLB_FLAG_ENCODE_16MB
|
||||
#define SHM_HUGE_256MB HUGETLB_FLAG_ENCODE_256MB
|
||||
#define SHM_HUGE_1GB HUGETLB_FLAG_ENCODE_1GB
|
||||
#define SHM_HUGE_2GB HUGETLB_FLAG_ENCODE_2GB
|
||||
#define SHM_HUGE_16GB HUGETLB_FLAG_ENCODE_16GB
|
||||
|
||||
/*
|
||||
* shmat() shmflg values
|
||||
*/
|
||||
#define SHM_RDONLY 010000 /* read-only access */
|
||||
#define SHM_RND 020000 /* round attach address to SHMLBA boundary */
|
||||
#define SHM_REMAP 040000 /* take-over region on attach */
|
||||
|
||||
@@ -184,12 +184,7 @@ enum
|
||||
LINUX_MIB_DELAYEDACKLOST, /* DelayedACKLost */
|
||||
LINUX_MIB_LISTENOVERFLOWS, /* ListenOverflows */
|
||||
LINUX_MIB_LISTENDROPS, /* ListenDrops */
|
||||
LINUX_MIB_TCPPREQUEUED, /* TCPPrequeued */
|
||||
LINUX_MIB_TCPDIRECTCOPYFROMBACKLOG, /* TCPDirectCopyFromBacklog */
|
||||
LINUX_MIB_TCPDIRECTCOPYFROMPREQUEUE, /* TCPDirectCopyFromPrequeue */
|
||||
LINUX_MIB_TCPPREQUEUEDROPPED, /* TCPPrequeueDropped */
|
||||
LINUX_MIB_TCPHPHITS, /* TCPHPHits */
|
||||
LINUX_MIB_TCPHPHITSTOUSER, /* TCPHPHitsToUser */
|
||||
LINUX_MIB_TCPPUREACKS, /* TCPPureAcks */
|
||||
LINUX_MIB_TCPHPACKS, /* TCPHPAcks */
|
||||
LINUX_MIB_TCPRENORECOVERY, /* TCPRenoRecovery */
|
||||
@@ -208,14 +203,12 @@ enum
|
||||
LINUX_MIB_TCPSACKFAILURES, /* TCPSackFailures */
|
||||
LINUX_MIB_TCPLOSSFAILURES, /* TCPLossFailures */
|
||||
LINUX_MIB_TCPFASTRETRANS, /* TCPFastRetrans */
|
||||
LINUX_MIB_TCPFORWARDRETRANS, /* TCPForwardRetrans */
|
||||
LINUX_MIB_TCPSLOWSTARTRETRANS, /* TCPSlowStartRetrans */
|
||||
LINUX_MIB_TCPTIMEOUTS, /* TCPTimeouts */
|
||||
LINUX_MIB_TCPLOSSPROBES, /* TCPLossProbes */
|
||||
LINUX_MIB_TCPLOSSPROBERECOVERY, /* TCPLossProbeRecovery */
|
||||
LINUX_MIB_TCPRENORECOVERYFAIL, /* TCPRenoRecoveryFail */
|
||||
LINUX_MIB_TCPSACKRECOVERYFAIL, /* TCPSackRecoveryFail */
|
||||
LINUX_MIB_TCPSCHEDULERFAILED, /* TCPSchedulerFailed */
|
||||
LINUX_MIB_TCPRCVCOLLAPSED, /* TCPRcvCollapsed */
|
||||
LINUX_MIB_TCPDSACKOLDSENT, /* TCPDSACKOldSent */
|
||||
LINUX_MIB_TCPDSACKOFOSENT, /* TCPDSACKOfoSent */
|
||||
|
||||
@@ -231,6 +231,14 @@ enum {
|
||||
TCP_NLA_SNDBUF_LIMITED, /* Time (usec) limited by send buffer */
|
||||
TCP_NLA_DATA_SEGS_OUT, /* Data pkts sent including retransmission */
|
||||
TCP_NLA_TOTAL_RETRANS, /* Data pkts retransmitted */
|
||||
TCP_NLA_PACING_RATE, /* Pacing rate in bytes per second */
|
||||
TCP_NLA_DELIVERY_RATE, /* Delivery rate in bytes per second */
|
||||
TCP_NLA_SND_CWND, /* Sending congestion window */
|
||||
TCP_NLA_REORDERING, /* Reordering metric */
|
||||
TCP_NLA_MIN_RTT, /* minimum RTT */
|
||||
TCP_NLA_RECUR_RETRANS, /* Recurring retransmits for the current pkt */
|
||||
TCP_NLA_DELIVERY_RATE_APP_LMT, /* delivery rate application limited ? */
|
||||
|
||||
};
|
||||
|
||||
/* for TCP_MD5SIG socket option */
|
||||
@@ -248,4 +256,13 @@ struct tcp_md5sig {
|
||||
__u8 tcpm_key[TCP_MD5SIG_MAXKEYLEN]; /* key (binary) */
|
||||
};
|
||||
|
||||
/* INET_DIAG_MD5SIG */
|
||||
struct tcp_diag_md5sig {
|
||||
__u8 tcpm_family;
|
||||
__u8 tcpm_prefixlen;
|
||||
__u16 tcpm_keylen;
|
||||
__be32 tcpm_addr[4];
|
||||
__u8 tcpm_key[TCP_MD5SIG_MAXKEYLEN];
|
||||
};
|
||||
|
||||
#endif /* _UAPI_LINUX_TCP_H */
|
||||
|
||||
@@ -49,6 +49,7 @@
|
||||
#define TEE_MAX_ARG_SIZE 1024
|
||||
|
||||
#define TEE_GEN_CAP_GP (1 << 0)/* GlobalPlatform compliant TEE */
|
||||
#define TEE_GEN_CAP_PRIVILEGED (1 << 1)/* Privileged device (for supplicant) */
|
||||
|
||||
/*
|
||||
* TEE Implementation ID
|
||||
|
||||
31
include/uapi/linux/usb/charger.h
Normal file
31
include/uapi/linux/usb/charger.h
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* This file defines the USB charger type and state that are needed for
|
||||
* USB device APIs.
|
||||
*/
|
||||
|
||||
#ifndef _UAPI__LINUX_USB_CHARGER_H
|
||||
#define _UAPI__LINUX_USB_CHARGER_H
|
||||
|
||||
/*
|
||||
* USB charger type:
|
||||
* SDP (Standard Downstream Port)
|
||||
* DCP (Dedicated Charging Port)
|
||||
* CDP (Charging Downstream Port)
|
||||
* ACA (Accessory Charger Adapters)
|
||||
*/
|
||||
enum usb_charger_type {
|
||||
UNKNOWN_TYPE,
|
||||
SDP_TYPE,
|
||||
DCP_TYPE,
|
||||
CDP_TYPE,
|
||||
ACA_TYPE,
|
||||
};
|
||||
|
||||
/* USB charger state */
|
||||
enum usb_charger_state {
|
||||
USB_CHARGER_DEFAULT,
|
||||
USB_CHARGER_PRESENT,
|
||||
USB_CHARGER_ABSENT,
|
||||
};
|
||||
|
||||
#endif /* _UAPI__LINUX_USB_CHARGER_H */
|
||||
@@ -23,7 +23,9 @@
|
||||
UFFD_FEATURE_EVENT_REMOVE | \
|
||||
UFFD_FEATURE_EVENT_UNMAP | \
|
||||
UFFD_FEATURE_MISSING_HUGETLBFS | \
|
||||
UFFD_FEATURE_MISSING_SHMEM)
|
||||
UFFD_FEATURE_MISSING_SHMEM | \
|
||||
UFFD_FEATURE_SIGBUS | \
|
||||
UFFD_FEATURE_THREAD_ID)
|
||||
#define UFFD_API_IOCTLS \
|
||||
((__u64)1 << _UFFDIO_REGISTER | \
|
||||
(__u64)1 << _UFFDIO_UNREGISTER | \
|
||||
@@ -78,6 +80,9 @@ struct uffd_msg {
|
||||
struct {
|
||||
__u64 flags;
|
||||
__u64 address;
|
||||
union {
|
||||
__u32 ptid;
|
||||
} feat;
|
||||
} pagefault;
|
||||
|
||||
struct {
|
||||
@@ -153,6 +158,13 @@ struct uffdio_api {
|
||||
* UFFD_FEATURE_MISSING_SHMEM works the same as
|
||||
* UFFD_FEATURE_MISSING_HUGETLBFS, but it applies to shmem
|
||||
* (i.e. tmpfs and other shmem based APIs).
|
||||
*
|
||||
* UFFD_FEATURE_SIGBUS feature means no page-fault
|
||||
* (UFFD_EVENT_PAGEFAULT) event will be delivered, instead
|
||||
* a SIGBUS signal will be sent to the faulting process.
|
||||
*
|
||||
* UFFD_FEATURE_THREAD_ID pid of the page faulted task_struct will
|
||||
* be returned, if feature is not requested 0 will be returned.
|
||||
*/
|
||||
#define UFFD_FEATURE_PAGEFAULT_FLAG_WP (1<<0)
|
||||
#define UFFD_FEATURE_EVENT_FORK (1<<1)
|
||||
@@ -161,6 +173,8 @@ struct uffdio_api {
|
||||
#define UFFD_FEATURE_MISSING_HUGETLBFS (1<<4)
|
||||
#define UFFD_FEATURE_MISSING_SHMEM (1<<5)
|
||||
#define UFFD_FEATURE_EVENT_UNMAP (1<<6)
|
||||
#define UFFD_FEATURE_SIGBUS (1<<7)
|
||||
#define UFFD_FEATURE_THREAD_ID (1<<8)
|
||||
__u64 features;
|
||||
|
||||
__u64 ioctls;
|
||||
|
||||
@@ -603,6 +603,11 @@ struct v4l2_pix_format {
|
||||
#define V4L2_PIX_FMT_SGBRG12 v4l2_fourcc('G', 'B', '1', '2') /* 12 GBGB.. RGRG.. */
|
||||
#define V4L2_PIX_FMT_SGRBG12 v4l2_fourcc('B', 'A', '1', '2') /* 12 GRGR.. BGBG.. */
|
||||
#define V4L2_PIX_FMT_SRGGB12 v4l2_fourcc('R', 'G', '1', '2') /* 12 RGRG.. GBGB.. */
|
||||
/* 12bit raw bayer packed, 6 bytes for every 4 pixels */
|
||||
#define V4L2_PIX_FMT_SBGGR12P v4l2_fourcc('p', 'B', 'C', 'C')
|
||||
#define V4L2_PIX_FMT_SGBRG12P v4l2_fourcc('p', 'G', 'C', 'C')
|
||||
#define V4L2_PIX_FMT_SGRBG12P v4l2_fourcc('p', 'g', 'C', 'C')
|
||||
#define V4L2_PIX_FMT_SRGGB12P v4l2_fourcc('p', 'R', 'C', 'C')
|
||||
#define V4L2_PIX_FMT_SBGGR16 v4l2_fourcc('B', 'Y', 'R', '2') /* 16 BGBG.. GRGR.. */
|
||||
#define V4L2_PIX_FMT_SGBRG16 v4l2_fourcc('G', 'B', '1', '6') /* 16 GBGB.. RGRG.. */
|
||||
#define V4L2_PIX_FMT_SGRBG16 v4l2_fourcc('G', 'R', '1', '6') /* 16 GRGR.. BGBG.. */
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#ifndef _UAPI_LINUX_VIRTIO_RING_H
|
||||
#define _UAPI_LINUX_VIRTIO_RING_H
|
||||
/* An interface for efficient virtio implementation, currently for use by KVM
|
||||
* and lguest, but hopefully others soon. Do NOT change this since it will
|
||||
/* An interface for efficient virtio implementation, currently for use by KVM,
|
||||
* but hopefully others soon. Do NOT change this since it will
|
||||
* break existing servers and clients.
|
||||
*
|
||||
* This header is BSD licensed so anyone can use the definitions to implement
|
||||
|
||||
@@ -304,6 +304,7 @@ enum xfrm_attr_type_t {
|
||||
XFRMA_ADDRESS_FILTER, /* struct xfrm_address_filter */
|
||||
XFRMA_PAD,
|
||||
XFRMA_OFFLOAD_DEV, /* struct xfrm_state_offload */
|
||||
XFRMA_OUTPUT_MARK, /* __u32 */
|
||||
__XFRMA_MAX
|
||||
|
||||
#define XFRMA_MAX (__XFRMA_MAX - 1)
|
||||
|
||||
84
include/uapi/rdma/ib_user_ioctl_verbs.h
Normal file
84
include/uapi/rdma/ib_user_ioctl_verbs.h
Normal file
@@ -0,0 +1,84 @@
|
||||
/*
|
||||
* Copyright (c) 2017, Mellanox Technologies inc. All rights reserved.
|
||||
*
|
||||
* This software is available to you under a choice of one of two
|
||||
* licenses. You may choose to be licensed under the terms of the GNU
|
||||
* General Public License (GPL) Version 2, available from the file
|
||||
* COPYING in the main directory of this source tree, or the
|
||||
* OpenIB.org BSD license below:
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or
|
||||
* without modification, are permitted provided that the following
|
||||
* conditions are met:
|
||||
*
|
||||
* - Redistributions of source code must retain the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer.
|
||||
*
|
||||
* - Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef IB_USER_IOCTL_VERBS_H
|
||||
#define IB_USER_IOCTL_VERBS_H
|
||||
|
||||
#include <rdma/rdma_user_ioctl.h>
|
||||
|
||||
#define UVERBS_UDATA_DRIVER_DATA_NS 1
|
||||
#define UVERBS_UDATA_DRIVER_DATA_FLAG (1UL << UVERBS_ID_NS_SHIFT)
|
||||
|
||||
enum uverbs_default_objects {
|
||||
UVERBS_OBJECT_DEVICE, /* No instances of DEVICE are allowed */
|
||||
UVERBS_OBJECT_PD,
|
||||
UVERBS_OBJECT_COMP_CHANNEL,
|
||||
UVERBS_OBJECT_CQ,
|
||||
UVERBS_OBJECT_QP,
|
||||
UVERBS_OBJECT_SRQ,
|
||||
UVERBS_OBJECT_AH,
|
||||
UVERBS_OBJECT_MR,
|
||||
UVERBS_OBJECT_MW,
|
||||
UVERBS_OBJECT_FLOW,
|
||||
UVERBS_OBJECT_XRCD,
|
||||
UVERBS_OBJECT_RWQ_IND_TBL,
|
||||
UVERBS_OBJECT_WQ,
|
||||
UVERBS_OBJECT_LAST,
|
||||
};
|
||||
|
||||
enum {
|
||||
UVERBS_UHW_IN = UVERBS_UDATA_DRIVER_DATA_FLAG,
|
||||
UVERBS_UHW_OUT,
|
||||
};
|
||||
|
||||
enum uverbs_create_cq_cmd_attr_ids {
|
||||
CREATE_CQ_HANDLE,
|
||||
CREATE_CQ_CQE,
|
||||
CREATE_CQ_USER_HANDLE,
|
||||
CREATE_CQ_COMP_CHANNEL,
|
||||
CREATE_CQ_COMP_VECTOR,
|
||||
CREATE_CQ_FLAGS,
|
||||
CREATE_CQ_RESP_CQE,
|
||||
};
|
||||
|
||||
enum uverbs_destroy_cq_cmd_attr_ids {
|
||||
DESTROY_CQ_HANDLE,
|
||||
DESTROY_CQ_RESP,
|
||||
};
|
||||
|
||||
enum uverbs_actions_cq_ops {
|
||||
UVERBS_CQ_CREATE,
|
||||
UVERBS_CQ_DESTROY,
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -236,6 +236,20 @@ struct ib_uverbs_rss_caps {
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct ib_uverbs_tm_caps {
|
||||
/* Max size of rendezvous request message */
|
||||
__u32 max_rndv_hdr_size;
|
||||
/* Max number of entries in tag matching list */
|
||||
__u32 max_num_tags;
|
||||
/* TM flags */
|
||||
__u32 flags;
|
||||
/* Max number of outstanding list operations */
|
||||
__u32 max_ops;
|
||||
/* Max number of SGE in tag matching entry */
|
||||
__u32 max_sge;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct ib_uverbs_ex_query_device_resp {
|
||||
struct ib_uverbs_query_device_resp base;
|
||||
__u32 comp_mask;
|
||||
@@ -247,6 +261,7 @@ struct ib_uverbs_ex_query_device_resp {
|
||||
struct ib_uverbs_rss_caps rss_caps;
|
||||
__u32 max_wq_type_rq;
|
||||
__u32 raw_packet_caps;
|
||||
struct ib_uverbs_tm_caps xrq_caps;
|
||||
};
|
||||
|
||||
struct ib_uverbs_query_port {
|
||||
@@ -578,7 +593,7 @@ struct ib_uverbs_ex_create_qp {
|
||||
__u32 comp_mask;
|
||||
__u32 create_flags;
|
||||
__u32 rwq_ind_tbl_handle;
|
||||
__u32 reserved1;
|
||||
__u32 source_qpn;
|
||||
};
|
||||
|
||||
struct ib_uverbs_open_qp {
|
||||
@@ -1024,7 +1039,7 @@ struct ib_uverbs_create_xsrq {
|
||||
__u32 max_wr;
|
||||
__u32 max_sge;
|
||||
__u32 srq_limit;
|
||||
__u32 reserved;
|
||||
__u32 max_num_tags;
|
||||
__u32 xrcd_handle;
|
||||
__u32 cq_handle;
|
||||
__u64 driver_data[0];
|
||||
|
||||
@@ -95,13 +95,63 @@ struct mlx4_ib_create_srq_resp {
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct mlx4_ib_create_qp_rss {
|
||||
__u64 rx_hash_fields_mask;
|
||||
__u8 rx_hash_function;
|
||||
__u8 reserved[7];
|
||||
__u8 rx_hash_key[40];
|
||||
__u32 comp_mask;
|
||||
__u32 reserved1;
|
||||
};
|
||||
|
||||
struct mlx4_ib_create_qp {
|
||||
__u64 buf_addr;
|
||||
__u64 db_addr;
|
||||
__u8 log_sq_bb_count;
|
||||
__u8 log_sq_stride;
|
||||
__u8 sq_no_prefetch;
|
||||
__u8 reserved[5];
|
||||
__u8 reserved;
|
||||
__u32 inl_recv_sz;
|
||||
};
|
||||
|
||||
struct mlx4_ib_create_wq {
|
||||
__u64 buf_addr;
|
||||
__u64 db_addr;
|
||||
__u8 log_range_size;
|
||||
__u8 reserved[3];
|
||||
__u32 comp_mask;
|
||||
};
|
||||
|
||||
struct mlx4_ib_modify_wq {
|
||||
__u32 comp_mask;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct mlx4_ib_create_rwq_ind_tbl_resp {
|
||||
__u32 response_length;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
/* RX Hash function flags */
|
||||
enum mlx4_ib_rx_hash_function_flags {
|
||||
MLX4_IB_RX_HASH_FUNC_TOEPLITZ = 1 << 0,
|
||||
};
|
||||
|
||||
/*
|
||||
* RX Hash flags, these flags allows to set which incoming packet's field should
|
||||
* participates in RX Hash. Each flag represent certain packet's field,
|
||||
* when the flag is set the field that is represented by the flag will
|
||||
* participate in RX Hash calculation.
|
||||
*/
|
||||
enum mlx4_ib_rx_hash_fields {
|
||||
MLX4_IB_RX_HASH_SRC_IPV4 = 1 << 0,
|
||||
MLX4_IB_RX_HASH_DST_IPV4 = 1 << 1,
|
||||
MLX4_IB_RX_HASH_SRC_IPV6 = 1 << 2,
|
||||
MLX4_IB_RX_HASH_DST_IPV6 = 1 << 3,
|
||||
MLX4_IB_RX_HASH_SRC_PORT_TCP = 1 << 4,
|
||||
MLX4_IB_RX_HASH_DST_PORT_TCP = 1 << 5,
|
||||
MLX4_IB_RX_HASH_SRC_PORT_UDP = 1 << 6,
|
||||
MLX4_IB_RX_HASH_DST_PORT_UDP = 1 << 7
|
||||
};
|
||||
|
||||
#endif /* MLX4_ABI_USER_H */
|
||||
|
||||
@@ -168,6 +168,28 @@ struct mlx5_packet_pacing_caps {
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
enum mlx5_ib_mpw_caps {
|
||||
MPW_RESERVED = 1 << 0,
|
||||
MLX5_IB_ALLOW_MPW = 1 << 1,
|
||||
MLX5_IB_SUPPORT_EMPW = 1 << 2,
|
||||
};
|
||||
|
||||
enum mlx5_ib_sw_parsing_offloads {
|
||||
MLX5_IB_SW_PARSING = 1 << 0,
|
||||
MLX5_IB_SW_PARSING_CSUM = 1 << 1,
|
||||
MLX5_IB_SW_PARSING_LSO = 1 << 2,
|
||||
};
|
||||
|
||||
struct mlx5_ib_sw_parsing_caps {
|
||||
__u32 sw_parsing_offloads; /* enum mlx5_ib_sw_parsing_offloads */
|
||||
|
||||
/* Corresponding bit will be set if qp type from
|
||||
* 'enum ib_qp_type' is supported, e.g.
|
||||
* supported_qpts |= 1 << IB_QPT_RAW_PACKET
|
||||
*/
|
||||
__u32 supported_qpts;
|
||||
};
|
||||
|
||||
struct mlx5_ib_query_device_resp {
|
||||
__u32 comp_mask;
|
||||
__u32 response_length;
|
||||
@@ -177,6 +199,7 @@ struct mlx5_ib_query_device_resp {
|
||||
struct mlx5_packet_pacing_caps packet_pacing_caps;
|
||||
__u32 mlx5_ib_support_multi_pkt_send_wqes;
|
||||
__u32 reserved;
|
||||
struct mlx5_ib_sw_parsing_caps sw_parsing_caps;
|
||||
};
|
||||
|
||||
struct mlx5_ib_create_cq {
|
||||
|
||||
@@ -49,6 +49,9 @@ struct qedr_alloc_ucontext_resp {
|
||||
__u32 sges_per_recv_wr;
|
||||
__u32 sges_per_srq_wr;
|
||||
__u32 max_cqes;
|
||||
__u8 dpm_enabled;
|
||||
__u8 wids_enabled;
|
||||
__u16 wid_count;
|
||||
};
|
||||
|
||||
struct qedr_alloc_pd_ureq {
|
||||
|
||||
@@ -8,7 +8,7 @@ enum {
|
||||
RDMA_NL_IWCM,
|
||||
RDMA_NL_RSVD,
|
||||
RDMA_NL_LS, /* RDMA Local Services */
|
||||
RDMA_NL_I40IW,
|
||||
RDMA_NL_NLDEV, /* RDMA device interface */
|
||||
RDMA_NL_NUM_CLIENTS
|
||||
};
|
||||
|
||||
@@ -222,4 +222,86 @@ struct rdma_nla_ls_gid {
|
||||
__u8 gid[16];
|
||||
};
|
||||
|
||||
enum rdma_nldev_command {
|
||||
RDMA_NLDEV_CMD_UNSPEC,
|
||||
|
||||
RDMA_NLDEV_CMD_GET, /* can dump */
|
||||
RDMA_NLDEV_CMD_SET,
|
||||
RDMA_NLDEV_CMD_NEW,
|
||||
RDMA_NLDEV_CMD_DEL,
|
||||
|
||||
RDMA_NLDEV_CMD_PORT_GET, /* can dump */
|
||||
RDMA_NLDEV_CMD_PORT_SET,
|
||||
RDMA_NLDEV_CMD_PORT_NEW,
|
||||
RDMA_NLDEV_CMD_PORT_DEL,
|
||||
|
||||
RDMA_NLDEV_NUM_OPS
|
||||
};
|
||||
|
||||
enum rdma_nldev_attr {
|
||||
/* don't change the order or add anything between, this is ABI! */
|
||||
RDMA_NLDEV_ATTR_UNSPEC,
|
||||
|
||||
/* Identifier for ib_device */
|
||||
RDMA_NLDEV_ATTR_DEV_INDEX, /* u32 */
|
||||
|
||||
RDMA_NLDEV_ATTR_DEV_NAME, /* string */
|
||||
/*
|
||||
* Device index together with port index are identifiers
|
||||
* for port/link properties.
|
||||
*
|
||||
* For RDMA_NLDEV_CMD_GET commamnd, port index will return number
|
||||
* of available ports in ib_device, while for port specific operations,
|
||||
* it will be real port index as it appears in sysfs. Port index follows
|
||||
* sysfs notation and starts from 1 for the first port.
|
||||
*/
|
||||
RDMA_NLDEV_ATTR_PORT_INDEX, /* u32 */
|
||||
|
||||
/*
|
||||
* Device and port capabilities
|
||||
*/
|
||||
RDMA_NLDEV_ATTR_CAP_FLAGS, /* u64 */
|
||||
|
||||
/*
|
||||
* FW version
|
||||
*/
|
||||
RDMA_NLDEV_ATTR_FW_VERSION, /* string */
|
||||
|
||||
/*
|
||||
* Node GUID (in host byte order) associated with the RDMA device.
|
||||
*/
|
||||
RDMA_NLDEV_ATTR_NODE_GUID, /* u64 */
|
||||
|
||||
/*
|
||||
* System image GUID (in host byte order) associated with
|
||||
* this RDMA device and other devices which are part of a
|
||||
* single system.
|
||||
*/
|
||||
RDMA_NLDEV_ATTR_SYS_IMAGE_GUID, /* u64 */
|
||||
|
||||
/*
|
||||
* Subnet prefix (in host byte order)
|
||||
*/
|
||||
RDMA_NLDEV_ATTR_SUBNET_PREFIX, /* u64 */
|
||||
|
||||
/*
|
||||
* Local Identifier (LID),
|
||||
* According to IB specification, It is 16-bit address assigned
|
||||
* by the Subnet Manager. Extended to be 32-bit for OmniPath users.
|
||||
*/
|
||||
RDMA_NLDEV_ATTR_LID, /* u32 */
|
||||
RDMA_NLDEV_ATTR_SM_LID, /* u32 */
|
||||
|
||||
/*
|
||||
* LID mask control (LMC)
|
||||
*/
|
||||
RDMA_NLDEV_ATTR_LMC, /* u8 */
|
||||
|
||||
RDMA_NLDEV_ATTR_PORT_STATE, /* u8 */
|
||||
RDMA_NLDEV_ATTR_PORT_PHYS_STATE, /* u8 */
|
||||
|
||||
RDMA_NLDEV_ATTR_DEV_NODE_TYPE, /* u8 */
|
||||
|
||||
RDMA_NLDEV_ATTR_MAX
|
||||
};
|
||||
#endif /* _UAPI_RDMA_NETLINK_H */
|
||||
|
||||
@@ -43,6 +43,39 @@
|
||||
/* Legacy name, for user space application which already use it */
|
||||
#define IB_IOCTL_MAGIC RDMA_IOCTL_MAGIC
|
||||
|
||||
#define RDMA_VERBS_IOCTL \
|
||||
_IOWR(RDMA_IOCTL_MAGIC, 1, struct ib_uverbs_ioctl_hdr)
|
||||
|
||||
#define UVERBS_ID_NS_MASK 0xF000
|
||||
#define UVERBS_ID_NS_SHIFT 12
|
||||
|
||||
enum {
|
||||
/* User input */
|
||||
UVERBS_ATTR_F_MANDATORY = 1U << 0,
|
||||
/*
|
||||
* Valid output bit should be ignored and considered set in
|
||||
* mandatory fields. This bit is kernel output.
|
||||
*/
|
||||
UVERBS_ATTR_F_VALID_OUTPUT = 1U << 1,
|
||||
};
|
||||
|
||||
struct ib_uverbs_attr {
|
||||
__u16 attr_id; /* command specific type attribute */
|
||||
__u16 len; /* only for pointers */
|
||||
__u16 flags; /* combination of UVERBS_ATTR_F_XXXX */
|
||||
__u16 reserved;
|
||||
__u64 data; /* ptr to command, inline data or idr/fd */
|
||||
};
|
||||
|
||||
struct ib_uverbs_ioctl_hdr {
|
||||
__u16 length;
|
||||
__u16 object_id;
|
||||
__u16 method_id;
|
||||
__u16 num_attrs;
|
||||
__u64 reserved;
|
||||
struct ib_uverbs_attr attrs[0];
|
||||
};
|
||||
|
||||
/*
|
||||
* General blocks assignments
|
||||
* It is closed on purpose do not expose it it user space
|
||||
|
||||
@@ -125,7 +125,8 @@ enum pvrdma_wc_flags {
|
||||
PVRDMA_WC_IP_CSUM_OK = 1 << 3,
|
||||
PVRDMA_WC_WITH_SMAC = 1 << 4,
|
||||
PVRDMA_WC_WITH_VLAN = 1 << 5,
|
||||
PVRDMA_WC_FLAGS_MAX = PVRDMA_WC_WITH_VLAN,
|
||||
PVRDMA_WC_WITH_NETWORK_HDR_TYPE = 1 << 6,
|
||||
PVRDMA_WC_FLAGS_MAX = PVRDMA_WC_WITH_NETWORK_HDR_TYPE,
|
||||
};
|
||||
|
||||
struct pvrdma_alloc_ucontext_resp {
|
||||
@@ -283,7 +284,8 @@ struct pvrdma_cqe {
|
||||
__u8 dlid_path_bits;
|
||||
__u8 port_num;
|
||||
__u8 smac[6];
|
||||
__u8 reserved2[7]; /* Pad to next power of 2 (64). */
|
||||
__u8 network_hdr_type;
|
||||
__u8 reserved2[6]; /* Pad to next power of 2 (64). */
|
||||
};
|
||||
|
||||
#endif /* __VMW_PVRDMA_ABI_H__ */
|
||||
|
||||
@@ -163,8 +163,71 @@
|
||||
*
|
||||
* %SKL_TKN_U32_DMA_BUF_SIZE: DMA buffer size in millisec
|
||||
*
|
||||
* %SKL_TKN_U32_PIPE_DIR: Specifies pipe direction. Can be
|
||||
* playback/capture.
|
||||
*
|
||||
* %SKL_TKN_U32_NUM_CONFIGS: Number of pipe configs
|
||||
*
|
||||
* %SKL_TKN_U32_PATH_MEM_PGS: Size of memory (in pages) required for pipeline
|
||||
* and its data
|
||||
*
|
||||
* %SKL_TKN_U32_PIPE_CONFIG_ID: Config id for the modules in the pipe
|
||||
* and PCM params supported by that pipe
|
||||
* config. This is used as index to fill
|
||||
* up the pipe config and module config
|
||||
* structure.
|
||||
*
|
||||
* %SKL_TKN_U32_CFG_FREQ:
|
||||
* %SKL_TKN_U8_CFG_CHAN:
|
||||
* %SKL_TKN_U8_CFG_BPS: PCM params (freq, channels, bits per sample)
|
||||
* supported for each of the pipe configs.
|
||||
*
|
||||
* %SKL_TKN_CFG_MOD_RES_ID: Module's resource index for each of the
|
||||
* pipe config
|
||||
*
|
||||
* %SKL_TKN_CFG_MOD_FMT_ID: Module's interface index for each of the
|
||||
* pipe config
|
||||
*
|
||||
* %SKL_TKN_U8_NUM_MOD: Number of modules in the manifest
|
||||
*
|
||||
* %SKL_TKN_MM_U8_MOD_IDX: Current index of the module in the manifest
|
||||
*
|
||||
* %SKL_TKN_MM_U8_NUM_RES: Number of resources for the module
|
||||
*
|
||||
* %SKL_TKN_MM_U8_NUM_INTF: Number of interfaces for the module
|
||||
*
|
||||
* %SKL_TKN_MM_U32_RES_ID: Resource index for the resource info to
|
||||
* be filled into.
|
||||
* A module can support multiple resource
|
||||
* configuration and is represnted as a
|
||||
* resource table. This index is used to
|
||||
* fill information into appropriate index.
|
||||
*
|
||||
* %SKL_TKN_MM_U32_CPS: DSP cycles per second
|
||||
*
|
||||
* %SKL_TKN_MM_U32_DMA_SIZE: Allocated buffer size for gateway DMA
|
||||
*
|
||||
* %SKL_TKN_MM_U32_CPC: DSP cycles allocated per frame
|
||||
*
|
||||
* %SKL_TKN_MM_U32_RES_PIN_ID: Resource pin index in the module
|
||||
*
|
||||
* %SKL_TKN_MM_U32_INTF_PIN_ID: Interface index in the module
|
||||
*
|
||||
* %SKL_TKN_MM_U32_PIN_BUF: Buffer size of the module pin
|
||||
*
|
||||
* %SKL_TKN_MM_U32_FMT_ID: Format index for each of the interface/
|
||||
* format information to be filled into.
|
||||
*
|
||||
* %SKL_TKN_MM_U32_NUM_IN_FMT: Number of input formats
|
||||
* %SKL_TKN_MM_U32_NUM_OUT_FMT: Number of output formats
|
||||
*
|
||||
* module_id and loadable flags dont have tokens as these values will be
|
||||
* read from the DSP FW manifest
|
||||
*
|
||||
* Tokens defined can be used either in the manifest or widget private data.
|
||||
*
|
||||
* SKL_TKN_MM is used as a suffix for all tokens that represent
|
||||
* module data in the manifest.
|
||||
*/
|
||||
enum SKL_TKNS {
|
||||
SKL_TKN_UUID = 1,
|
||||
@@ -218,7 +281,34 @@ enum SKL_TKNS {
|
||||
SKL_TKL_U32_D0I3_CAPS, /* Typo added at v4.10 */
|
||||
SKL_TKN_U32_D0I3_CAPS = SKL_TKL_U32_D0I3_CAPS,
|
||||
SKL_TKN_U32_DMA_BUF_SIZE,
|
||||
SKL_TKN_MAX = SKL_TKN_U32_DMA_BUF_SIZE,
|
||||
|
||||
SKL_TKN_U32_PIPE_DIRECTION,
|
||||
SKL_TKN_U32_PIPE_CONFIG_ID,
|
||||
SKL_TKN_U32_NUM_CONFIGS,
|
||||
SKL_TKN_U32_PATH_MEM_PGS,
|
||||
|
||||
SKL_TKN_U32_CFG_FREQ,
|
||||
SKL_TKN_U8_CFG_CHAN,
|
||||
SKL_TKN_U8_CFG_BPS,
|
||||
SKL_TKN_CFG_MOD_RES_ID,
|
||||
SKL_TKN_CFG_MOD_FMT_ID,
|
||||
SKL_TKN_U8_NUM_MOD,
|
||||
|
||||
SKL_TKN_MM_U8_MOD_IDX,
|
||||
SKL_TKN_MM_U8_NUM_RES,
|
||||
SKL_TKN_MM_U8_NUM_INTF,
|
||||
SKL_TKN_MM_U32_RES_ID,
|
||||
SKL_TKN_MM_U32_CPS,
|
||||
SKL_TKN_MM_U32_DMA_SIZE,
|
||||
SKL_TKN_MM_U32_CPC,
|
||||
SKL_TKN_MM_U32_RES_PIN_ID,
|
||||
SKL_TKN_MM_U32_INTF_PIN_ID,
|
||||
SKL_TKN_MM_U32_PIN_BUF,
|
||||
SKL_TKN_MM_U32_FMT_ID,
|
||||
SKL_TKN_MM_U32_NUM_IN_FMT,
|
||||
SKL_TKN_MM_U32_NUM_OUT_FMT,
|
||||
|
||||
SKL_TKN_MAX = SKL_TKN_MM_U32_NUM_OUT_FMT,
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user