Merge remote-tracking branch 'drm/drm-next' into drm-misc-next
drm-misc-next is still based on v4.16-rc7, and was getting a bit stale. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
This commit is contained in:
@@ -27,6 +27,9 @@
|
||||
# define MAP_UNINITIALIZED 0x0 /* Don't support this flag */
|
||||
#endif
|
||||
|
||||
/* 0x0100 - 0x80000 flags are defined in asm-generic/mman.h */
|
||||
#define MAP_FIXED_NOREPLACE 0x100000 /* MAP_FIXED which doesn't unmap underlying mapping */
|
||||
|
||||
/*
|
||||
* Flags for mlock
|
||||
*/
|
||||
|
||||
@@ -94,6 +94,9 @@ typedef struct siginfo {
|
||||
unsigned int _flags; /* see ia64 si_flags */
|
||||
unsigned long _isr; /* isr */
|
||||
#endif
|
||||
|
||||
#define __ADDR_BND_PKEY_PAD (__alignof__(void *) < sizeof(short) ? \
|
||||
sizeof(short) : __alignof__(void *))
|
||||
union {
|
||||
/*
|
||||
* used when si_code=BUS_MCEERR_AR or
|
||||
@@ -102,13 +105,13 @@ typedef struct siginfo {
|
||||
short _addr_lsb; /* LSB of the reported address */
|
||||
/* used when si_code=SEGV_BNDERR */
|
||||
struct {
|
||||
void *_dummy_bnd;
|
||||
char _dummy_bnd[__ADDR_BND_PKEY_PAD];
|
||||
void __user *_lower;
|
||||
void __user *_upper;
|
||||
} _addr_bnd;
|
||||
/* used when si_code=SEGV_PKUERR */
|
||||
struct {
|
||||
void *_dummy_pkey;
|
||||
char _dummy_pkey[__ADDR_BND_PKEY_PAD];
|
||||
__u32 _pkey;
|
||||
} _addr_pkey;
|
||||
};
|
||||
@@ -179,33 +182,16 @@ typedef struct siginfo {
|
||||
* SIGILL si_codes
|
||||
*/
|
||||
#define ILL_ILLOPC 1 /* illegal opcode */
|
||||
#ifdef __bfin__
|
||||
# define ILL_ILLPARAOP 2 /* illegal opcode combine */
|
||||
#endif
|
||||
#define ILL_ILLOPN 2 /* illegal operand */
|
||||
#define ILL_ILLADR 3 /* illegal addressing mode */
|
||||
#define ILL_ILLTRP 4 /* illegal trap */
|
||||
#ifdef __bfin__
|
||||
# define ILL_ILLEXCPT 4 /* unrecoverable exception */
|
||||
#endif
|
||||
#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 */
|
||||
#ifdef __bfin__
|
||||
# define ILL_CPLB_VI 9 /* D/I CPLB protect violation */
|
||||
# define ILL_CPLB_MISS 10 /* D/I CPLB miss */
|
||||
# define ILL_CPLB_MULHIT 11 /* D/I CPLB multiple hit */
|
||||
#endif
|
||||
#ifdef __tile__
|
||||
# define ILL_DBLFLT 9 /* double fault */
|
||||
# define ILL_HARDWALL 10 /* user networks hardwall violation */
|
||||
#endif
|
||||
#ifdef __ia64__
|
||||
# define ILL_BADIADDR 9 /* unimplemented instruction address */
|
||||
# define __ILL_BREAK 10 /* illegal break */
|
||||
# define __ILL_BNDMOD 11 /* bundle-update (modification) in progress */
|
||||
#endif
|
||||
#define ILL_BADIADDR 9 /* unimplemented instruction address */
|
||||
#define __ILL_BREAK 10 /* illegal break */
|
||||
#define __ILL_BNDMOD 11 /* bundle-update (modification) in progress */
|
||||
#define NSIGILL 11
|
||||
|
||||
/*
|
||||
@@ -219,34 +205,30 @@ typedef struct siginfo {
|
||||
#define FPE_FLTRES 6 /* floating point inexact result */
|
||||
#define FPE_FLTINV 7 /* floating point invalid operation */
|
||||
#define FPE_FLTSUB 8 /* subscript out of range */
|
||||
#ifdef __frv__
|
||||
# define FPE_MDAOVF 9 /* media overflow */
|
||||
#endif
|
||||
#ifdef __ia64__
|
||||
# define __FPE_DECOVF 9 /* decimal overflow */
|
||||
# define __FPE_DECDIV 10 /* decimal division by zero */
|
||||
# define __FPE_DECERR 11 /* packed decimal error */
|
||||
# define __FPE_INVASC 12 /* invalid ASCII digit */
|
||||
# define __FPE_INVDEC 13 /* invalid decimal digit */
|
||||
#endif
|
||||
#define NSIGFPE 13
|
||||
#define __FPE_DECOVF 9 /* decimal overflow */
|
||||
#define __FPE_DECDIV 10 /* decimal division by zero */
|
||||
#define __FPE_DECERR 11 /* packed decimal error */
|
||||
#define __FPE_INVASC 12 /* invalid ASCII digit */
|
||||
#define __FPE_INVDEC 13 /* invalid decimal digit */
|
||||
#define FPE_FLTUNK 14 /* undiagnosed floating-point exception */
|
||||
#define FPE_CONDTRAP 15 /* trap on condition */
|
||||
#define NSIGFPE 15
|
||||
|
||||
/*
|
||||
* SIGSEGV si_codes
|
||||
*/
|
||||
#define SEGV_MAPERR 1 /* address not mapped to object */
|
||||
#define SEGV_ACCERR 2 /* invalid permissions for mapped object */
|
||||
#ifdef __bfin__
|
||||
# define SEGV_STACKFLOW 3 /* stack overflow */
|
||||
#else
|
||||
# define SEGV_BNDERR 3 /* failed address bound checks */
|
||||
#endif
|
||||
#define SEGV_BNDERR 3 /* failed address bound checks */
|
||||
#ifdef __ia64__
|
||||
# define __SEGV_PSTKOVF 4 /* paragraph stack overflow */
|
||||
#else
|
||||
# define SEGV_PKUERR 4 /* failed protection key checks */
|
||||
#endif
|
||||
#define NSIGSEGV 4
|
||||
#define SEGV_ACCADI 5 /* ADI not enabled for mapped object */
|
||||
#define SEGV_ADIDERR 6 /* Disrupting MCD error */
|
||||
#define SEGV_ADIPERR 7 /* Precise MCD exception */
|
||||
#define NSIGSEGV 7
|
||||
|
||||
/*
|
||||
* SIGBUS si_codes
|
||||
@@ -254,12 +236,8 @@ typedef struct siginfo {
|
||||
#define BUS_ADRALN 1 /* invalid address alignment */
|
||||
#define BUS_ADRERR 2 /* non-existent physical address */
|
||||
#define BUS_OBJERR 3 /* object specific hardware error */
|
||||
#ifdef __bfin__
|
||||
# define BUS_OPFETCH 4 /* error from instruction fetch */
|
||||
#else
|
||||
/* hardware memory error consumed on a machine check: action required */
|
||||
# define BUS_MCEERR_AR 4
|
||||
#endif
|
||||
#define BUS_MCEERR_AR 4
|
||||
/* hardware memory error detected in process but not consumed: action optional*/
|
||||
#define BUS_MCEERR_AO 5
|
||||
#define NSIGBUS 5
|
||||
@@ -271,12 +249,6 @@ typedef struct siginfo {
|
||||
#define TRAP_TRACE 2 /* process trace trap */
|
||||
#define TRAP_BRANCH 3 /* process taken branch trap */
|
||||
#define TRAP_HWBKPT 4 /* hardware breakpoint/watchpoint */
|
||||
#ifdef __bfin__
|
||||
# define TRAP_STEP 1 /* single-step breakpoint */
|
||||
# define TRAP_TRACEFLOW 2 /* trace buffer overflow */
|
||||
# define TRAP_WATCHPT 3 /* watchpoint match */
|
||||
# define TRAP_ILLTRAP 4 /* illegal trap */
|
||||
#endif
|
||||
#define NSIGTRAP 4
|
||||
|
||||
/*
|
||||
|
||||
@@ -736,169 +736,6 @@ __SYSCALL(__NR_statx, sys_statx)
|
||||
#undef __NR_syscalls
|
||||
#define __NR_syscalls 292
|
||||
|
||||
/*
|
||||
* All syscalls below here should go away really,
|
||||
* these are provided for both review and as a porting
|
||||
* help for the C library version.
|
||||
*
|
||||
* Last chance: are any of these important enough to
|
||||
* enable by default?
|
||||
*/
|
||||
#ifdef __ARCH_WANT_SYSCALL_NO_AT
|
||||
#define __NR_open 1024
|
||||
__SYSCALL(__NR_open, sys_open)
|
||||
#define __NR_link 1025
|
||||
__SYSCALL(__NR_link, sys_link)
|
||||
#define __NR_unlink 1026
|
||||
__SYSCALL(__NR_unlink, sys_unlink)
|
||||
#define __NR_mknod 1027
|
||||
__SYSCALL(__NR_mknod, sys_mknod)
|
||||
#define __NR_chmod 1028
|
||||
__SYSCALL(__NR_chmod, sys_chmod)
|
||||
#define __NR_chown 1029
|
||||
__SYSCALL(__NR_chown, sys_chown)
|
||||
#define __NR_mkdir 1030
|
||||
__SYSCALL(__NR_mkdir, sys_mkdir)
|
||||
#define __NR_rmdir 1031
|
||||
__SYSCALL(__NR_rmdir, sys_rmdir)
|
||||
#define __NR_lchown 1032
|
||||
__SYSCALL(__NR_lchown, sys_lchown)
|
||||
#define __NR_access 1033
|
||||
__SYSCALL(__NR_access, sys_access)
|
||||
#define __NR_rename 1034
|
||||
__SYSCALL(__NR_rename, sys_rename)
|
||||
#define __NR_readlink 1035
|
||||
__SYSCALL(__NR_readlink, sys_readlink)
|
||||
#define __NR_symlink 1036
|
||||
__SYSCALL(__NR_symlink, sys_symlink)
|
||||
#define __NR_utimes 1037
|
||||
__SYSCALL(__NR_utimes, sys_utimes)
|
||||
#define __NR3264_stat 1038
|
||||
__SC_3264(__NR3264_stat, sys_stat64, sys_newstat)
|
||||
#define __NR3264_lstat 1039
|
||||
__SC_3264(__NR3264_lstat, sys_lstat64, sys_newlstat)
|
||||
|
||||
#undef __NR_syscalls
|
||||
#define __NR_syscalls (__NR3264_lstat+1)
|
||||
#endif /* __ARCH_WANT_SYSCALL_NO_AT */
|
||||
|
||||
#ifdef __ARCH_WANT_SYSCALL_NO_FLAGS
|
||||
#define __NR_pipe 1040
|
||||
__SYSCALL(__NR_pipe, sys_pipe)
|
||||
#define __NR_dup2 1041
|
||||
__SYSCALL(__NR_dup2, sys_dup2)
|
||||
#define __NR_epoll_create 1042
|
||||
__SYSCALL(__NR_epoll_create, sys_epoll_create)
|
||||
#define __NR_inotify_init 1043
|
||||
__SYSCALL(__NR_inotify_init, sys_inotify_init)
|
||||
#define __NR_eventfd 1044
|
||||
__SYSCALL(__NR_eventfd, sys_eventfd)
|
||||
#define __NR_signalfd 1045
|
||||
__SYSCALL(__NR_signalfd, sys_signalfd)
|
||||
|
||||
#undef __NR_syscalls
|
||||
#define __NR_syscalls (__NR_signalfd+1)
|
||||
#endif /* __ARCH_WANT_SYSCALL_NO_FLAGS */
|
||||
|
||||
#if (__BITS_PER_LONG == 32 || defined(__SYSCALL_COMPAT)) && \
|
||||
defined(__ARCH_WANT_SYSCALL_OFF_T)
|
||||
#define __NR_sendfile 1046
|
||||
__SYSCALL(__NR_sendfile, sys_sendfile)
|
||||
#define __NR_ftruncate 1047
|
||||
__SYSCALL(__NR_ftruncate, sys_ftruncate)
|
||||
#define __NR_truncate 1048
|
||||
__SYSCALL(__NR_truncate, sys_truncate)
|
||||
#define __NR_stat 1049
|
||||
__SYSCALL(__NR_stat, sys_newstat)
|
||||
#define __NR_lstat 1050
|
||||
__SYSCALL(__NR_lstat, sys_newlstat)
|
||||
#define __NR_fstat 1051
|
||||
__SYSCALL(__NR_fstat, sys_newfstat)
|
||||
#define __NR_fcntl 1052
|
||||
__SYSCALL(__NR_fcntl, sys_fcntl)
|
||||
#define __NR_fadvise64 1053
|
||||
#define __ARCH_WANT_SYS_FADVISE64
|
||||
__SYSCALL(__NR_fadvise64, sys_fadvise64)
|
||||
#define __NR_newfstatat 1054
|
||||
#define __ARCH_WANT_SYS_NEWFSTATAT
|
||||
__SYSCALL(__NR_newfstatat, sys_newfstatat)
|
||||
#define __NR_fstatfs 1055
|
||||
__SYSCALL(__NR_fstatfs, sys_fstatfs)
|
||||
#define __NR_statfs 1056
|
||||
__SYSCALL(__NR_statfs, sys_statfs)
|
||||
#define __NR_lseek 1057
|
||||
__SYSCALL(__NR_lseek, sys_lseek)
|
||||
#define __NR_mmap 1058
|
||||
__SYSCALL(__NR_mmap, sys_mmap)
|
||||
|
||||
#undef __NR_syscalls
|
||||
#define __NR_syscalls (__NR_mmap+1)
|
||||
#endif /* 32 bit off_t syscalls */
|
||||
|
||||
#ifdef __ARCH_WANT_SYSCALL_DEPRECATED
|
||||
#define __NR_alarm 1059
|
||||
#define __ARCH_WANT_SYS_ALARM
|
||||
__SYSCALL(__NR_alarm, sys_alarm)
|
||||
#define __NR_getpgrp 1060
|
||||
#define __ARCH_WANT_SYS_GETPGRP
|
||||
__SYSCALL(__NR_getpgrp, sys_getpgrp)
|
||||
#define __NR_pause 1061
|
||||
#define __ARCH_WANT_SYS_PAUSE
|
||||
__SYSCALL(__NR_pause, sys_pause)
|
||||
#define __NR_time 1062
|
||||
#define __ARCH_WANT_SYS_TIME
|
||||
#define __ARCH_WANT_COMPAT_SYS_TIME
|
||||
__SYSCALL(__NR_time, sys_time)
|
||||
#define __NR_utime 1063
|
||||
#define __ARCH_WANT_SYS_UTIME
|
||||
__SYSCALL(__NR_utime, sys_utime)
|
||||
|
||||
#define __NR_creat 1064
|
||||
__SYSCALL(__NR_creat, sys_creat)
|
||||
#define __NR_getdents 1065
|
||||
#define __ARCH_WANT_SYS_GETDENTS
|
||||
__SYSCALL(__NR_getdents, sys_getdents)
|
||||
#define __NR_futimesat 1066
|
||||
__SYSCALL(__NR_futimesat, sys_futimesat)
|
||||
#define __NR_select 1067
|
||||
#define __ARCH_WANT_SYS_SELECT
|
||||
__SYSCALL(__NR_select, sys_select)
|
||||
#define __NR_poll 1068
|
||||
__SYSCALL(__NR_poll, sys_poll)
|
||||
#define __NR_epoll_wait 1069
|
||||
__SYSCALL(__NR_epoll_wait, sys_epoll_wait)
|
||||
#define __NR_ustat 1070
|
||||
__SYSCALL(__NR_ustat, sys_ustat)
|
||||
#define __NR_vfork 1071
|
||||
__SYSCALL(__NR_vfork, sys_vfork)
|
||||
#define __NR_oldwait4 1072
|
||||
__SYSCALL(__NR_oldwait4, sys_wait4)
|
||||
#define __NR_recv 1073
|
||||
__SYSCALL(__NR_recv, sys_recv)
|
||||
#define __NR_send 1074
|
||||
__SYSCALL(__NR_send, sys_send)
|
||||
#define __NR_bdflush 1075
|
||||
__SYSCALL(__NR_bdflush, sys_bdflush)
|
||||
#define __NR_umount 1076
|
||||
__SYSCALL(__NR_umount, sys_oldumount)
|
||||
#define __ARCH_WANT_SYS_OLDUMOUNT
|
||||
#define __NR_uselib 1077
|
||||
__SYSCALL(__NR_uselib, sys_uselib)
|
||||
#define __NR__sysctl 1078
|
||||
__SYSCALL(__NR__sysctl, sys_sysctl)
|
||||
|
||||
#define __NR_fork 1079
|
||||
#ifdef CONFIG_MMU
|
||||
__SYSCALL(__NR_fork, sys_fork)
|
||||
#else
|
||||
__SYSCALL(__NR_fork, sys_ni_syscall)
|
||||
#endif /* CONFIG_MMU */
|
||||
|
||||
#undef __NR_syscalls
|
||||
#define __NR_syscalls (__NR_fork+1)
|
||||
|
||||
#endif /* __ARCH_WANT_SYSCALL_DEPRECATED */
|
||||
|
||||
/*
|
||||
* 32 bit systems traditionally used different
|
||||
* syscalls for off_t and loff_t arguments, while
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) */
|
||||
/* Copyright (C) 2007-2017 B.A.T.M.A.N. contributors:
|
||||
/* Copyright (C) 2007-2018 B.A.T.M.A.N. contributors:
|
||||
*
|
||||
* Marek Lindner, Simon Wunderlich
|
||||
*
|
||||
@@ -196,8 +196,6 @@ struct batadv_bla_claim_dst {
|
||||
__be16 group; /* group id */
|
||||
};
|
||||
|
||||
#pragma pack()
|
||||
|
||||
/**
|
||||
* struct batadv_ogm_packet - ogm (routing protocol) packet
|
||||
* @packet_type: batman-adv packet type, part of the general header
|
||||
@@ -222,9 +220,6 @@ struct batadv_ogm_packet {
|
||||
__u8 reserved;
|
||||
__u8 tq;
|
||||
__be16 tvlv_len;
|
||||
/* __packed is not needed as the struct size is divisible by 4,
|
||||
* and the largest data type in this struct has a size of 4.
|
||||
*/
|
||||
};
|
||||
|
||||
#define BATADV_OGM_HLEN sizeof(struct batadv_ogm_packet)
|
||||
@@ -249,9 +244,6 @@ struct batadv_ogm2_packet {
|
||||
__u8 orig[ETH_ALEN];
|
||||
__be16 tvlv_len;
|
||||
__be32 throughput;
|
||||
/* __packed is not needed as the struct size is divisible by 4,
|
||||
* and the largest data type in this struct has a size of 4.
|
||||
*/
|
||||
};
|
||||
|
||||
#define BATADV_OGM2_HLEN sizeof(struct batadv_ogm2_packet)
|
||||
@@ -405,7 +397,6 @@ struct batadv_icmp_packet_rr {
|
||||
* misalignment of the payload after the ethernet header. It may also lead to
|
||||
* leakage of information when the padding it not initialized before sending.
|
||||
*/
|
||||
#pragma pack(2)
|
||||
|
||||
/**
|
||||
* struct batadv_unicast_packet - unicast packet for network payload
|
||||
@@ -533,8 +524,6 @@ struct batadv_coded_packet {
|
||||
__be16 coded_len;
|
||||
};
|
||||
|
||||
#pragma pack()
|
||||
|
||||
/**
|
||||
* struct batadv_unicast_tvlv_packet - generic unicast packet with tvlv payload
|
||||
* @packet_type: batman-adv packet type, part of the general header
|
||||
@@ -641,4 +630,6 @@ struct batadv_tvlv_mcast_data {
|
||||
__u8 reserved[3];
|
||||
};
|
||||
|
||||
#pragma pack()
|
||||
|
||||
#endif /* _UAPI_LINUX_BATADV_PACKET_H_ */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
/* Copyright (C) 2016-2017 B.A.T.M.A.N. contributors:
|
||||
/* Copyright (C) 2016-2018 B.A.T.M.A.N. contributors:
|
||||
*
|
||||
* Matthias Schiffer
|
||||
*
|
||||
@@ -91,6 +91,53 @@ enum batadv_tt_client_flags {
|
||||
BATADV_TT_CLIENT_TEMP = (1 << 11),
|
||||
};
|
||||
|
||||
/**
|
||||
* enum batadv_mcast_flags_priv - Private, own multicast flags
|
||||
*
|
||||
* These are internal, multicast related flags. Currently they describe certain
|
||||
* multicast related attributes of the segment this originator bridges into the
|
||||
* mesh.
|
||||
*
|
||||
* Those attributes are used to determine the public multicast flags this
|
||||
* originator is going to announce via TT.
|
||||
*
|
||||
* For netlink, if BATADV_MCAST_FLAGS_BRIDGED is unset then all querier
|
||||
* related flags are undefined.
|
||||
*/
|
||||
enum batadv_mcast_flags_priv {
|
||||
/**
|
||||
* @BATADV_MCAST_FLAGS_BRIDGED: There is a bridge on top of the mesh
|
||||
* interface.
|
||||
*/
|
||||
BATADV_MCAST_FLAGS_BRIDGED = (1 << 0),
|
||||
|
||||
/**
|
||||
* @BATADV_MCAST_FLAGS_QUERIER_IPV4_EXISTS: Whether an IGMP querier
|
||||
* exists in the mesh
|
||||
*/
|
||||
BATADV_MCAST_FLAGS_QUERIER_IPV4_EXISTS = (1 << 1),
|
||||
|
||||
/**
|
||||
* @BATADV_MCAST_FLAGS_QUERIER_IPV6_EXISTS: Whether an MLD querier
|
||||
* exists in the mesh
|
||||
*/
|
||||
BATADV_MCAST_FLAGS_QUERIER_IPV6_EXISTS = (1 << 2),
|
||||
|
||||
/**
|
||||
* @BATADV_MCAST_FLAGS_QUERIER_IPV4_SHADOWING: If an IGMP querier
|
||||
* exists, whether it is potentially shadowing multicast listeners
|
||||
* (i.e. querier is behind our own bridge segment)
|
||||
*/
|
||||
BATADV_MCAST_FLAGS_QUERIER_IPV4_SHADOWING = (1 << 3),
|
||||
|
||||
/**
|
||||
* @BATADV_MCAST_FLAGS_QUERIER_IPV6_SHADOWING: If an MLD querier
|
||||
* exists, whether it is potentially shadowing multicast listeners
|
||||
* (i.e. querier is behind our own bridge segment)
|
||||
*/
|
||||
BATADV_MCAST_FLAGS_QUERIER_IPV6_SHADOWING = (1 << 4),
|
||||
};
|
||||
|
||||
/**
|
||||
* enum batadv_nl_attrs - batman-adv netlink attributes
|
||||
*/
|
||||
@@ -272,6 +319,31 @@ enum batadv_nl_attrs {
|
||||
*/
|
||||
BATADV_ATTR_BLA_CRC,
|
||||
|
||||
/**
|
||||
* @BATADV_ATTR_DAT_CACHE_IP4ADDRESS: Client IPv4 address
|
||||
*/
|
||||
BATADV_ATTR_DAT_CACHE_IP4ADDRESS,
|
||||
|
||||
/**
|
||||
* @BATADV_ATTR_DAT_CACHE_HWADDRESS: Client MAC address
|
||||
*/
|
||||
BATADV_ATTR_DAT_CACHE_HWADDRESS,
|
||||
|
||||
/**
|
||||
* @BATADV_ATTR_DAT_CACHE_VID: VLAN ID
|
||||
*/
|
||||
BATADV_ATTR_DAT_CACHE_VID,
|
||||
|
||||
/**
|
||||
* @BATADV_ATTR_MCAST_FLAGS: Per originator multicast flags
|
||||
*/
|
||||
BATADV_ATTR_MCAST_FLAGS,
|
||||
|
||||
/**
|
||||
* @BATADV_ATTR_MCAST_FLAGS_PRIV: Private, own multicast flags
|
||||
*/
|
||||
BATADV_ATTR_MCAST_FLAGS_PRIV,
|
||||
|
||||
/* add attributes above here, update the policy in netlink.c */
|
||||
|
||||
/**
|
||||
@@ -361,6 +433,16 @@ enum batadv_nl_commands {
|
||||
*/
|
||||
BATADV_CMD_GET_BLA_BACKBONE,
|
||||
|
||||
/**
|
||||
* @BATADV_CMD_GET_DAT_CACHE: Query list of DAT cache entries
|
||||
*/
|
||||
BATADV_CMD_GET_DAT_CACHE,
|
||||
|
||||
/**
|
||||
* @BATADV_CMD_GET_MCAST_FLAGS: Query list of multicast flags
|
||||
*/
|
||||
BATADV_CMD_GET_MCAST_FLAGS,
|
||||
|
||||
/* add new commands above here */
|
||||
|
||||
/**
|
||||
|
||||
@@ -101,7 +101,7 @@ enum blktrace_notify {
|
||||
struct blk_io_trace {
|
||||
__u32 magic; /* MAGIC << 8 | version */
|
||||
__u32 sequence; /* event number */
|
||||
__u64 time; /* in microseconds */
|
||||
__u64 time; /* in nanoseconds */
|
||||
__u64 sector; /* disk offset */
|
||||
__u32 bytes; /* transfer length */
|
||||
__u32 action; /* what happened */
|
||||
|
||||
+107
-1
@@ -94,6 +94,7 @@ enum bpf_cmd {
|
||||
BPF_MAP_GET_FD_BY_ID,
|
||||
BPF_OBJ_GET_INFO_BY_FD,
|
||||
BPF_PROG_QUERY,
|
||||
BPF_RAW_TRACEPOINT_OPEN,
|
||||
};
|
||||
|
||||
enum bpf_map_type {
|
||||
@@ -133,6 +134,9 @@ enum bpf_prog_type {
|
||||
BPF_PROG_TYPE_SOCK_OPS,
|
||||
BPF_PROG_TYPE_SK_SKB,
|
||||
BPF_PROG_TYPE_CGROUP_DEVICE,
|
||||
BPF_PROG_TYPE_SK_MSG,
|
||||
BPF_PROG_TYPE_RAW_TRACEPOINT,
|
||||
BPF_PROG_TYPE_CGROUP_SOCK_ADDR,
|
||||
};
|
||||
|
||||
enum bpf_attach_type {
|
||||
@@ -143,6 +147,13 @@ enum bpf_attach_type {
|
||||
BPF_SK_SKB_STREAM_PARSER,
|
||||
BPF_SK_SKB_STREAM_VERDICT,
|
||||
BPF_CGROUP_DEVICE,
|
||||
BPF_SK_MSG_VERDICT,
|
||||
BPF_CGROUP_INET4_BIND,
|
||||
BPF_CGROUP_INET6_BIND,
|
||||
BPF_CGROUP_INET4_CONNECT,
|
||||
BPF_CGROUP_INET6_CONNECT,
|
||||
BPF_CGROUP_INET4_POST_BIND,
|
||||
BPF_CGROUP_INET6_POST_BIND,
|
||||
__MAX_BPF_ATTACH_TYPE
|
||||
};
|
||||
|
||||
@@ -231,6 +242,28 @@ enum bpf_attach_type {
|
||||
#define BPF_F_RDONLY (1U << 3)
|
||||
#define BPF_F_WRONLY (1U << 4)
|
||||
|
||||
/* Flag for stack_map, store build_id+offset instead of pointer */
|
||||
#define BPF_F_STACK_BUILD_ID (1U << 5)
|
||||
|
||||
enum bpf_stack_build_id_status {
|
||||
/* user space need an empty entry to identify end of a trace */
|
||||
BPF_STACK_BUILD_ID_EMPTY = 0,
|
||||
/* with valid build_id and offset */
|
||||
BPF_STACK_BUILD_ID_VALID = 1,
|
||||
/* couldn't get build_id, fallback to ip */
|
||||
BPF_STACK_BUILD_ID_IP = 2,
|
||||
};
|
||||
|
||||
#define BPF_BUILD_ID_SIZE 20
|
||||
struct bpf_stack_build_id {
|
||||
__s32 status;
|
||||
unsigned char build_id[BPF_BUILD_ID_SIZE];
|
||||
union {
|
||||
__u64 offset;
|
||||
__u64 ip;
|
||||
};
|
||||
};
|
||||
|
||||
union bpf_attr {
|
||||
struct { /* anonymous struct used by BPF_MAP_CREATE command */
|
||||
__u32 map_type; /* one of enum bpf_map_type */
|
||||
@@ -270,6 +303,11 @@ union bpf_attr {
|
||||
__u32 prog_flags;
|
||||
char prog_name[BPF_OBJ_NAME_LEN];
|
||||
__u32 prog_ifindex; /* ifindex of netdev to prep for */
|
||||
/* For some prog types expected attach type must be known at
|
||||
* load time to verify attach type specific parts of prog
|
||||
* (context accesses, allowed helpers, etc).
|
||||
*/
|
||||
__u32 expected_attach_type;
|
||||
};
|
||||
|
||||
struct { /* anonymous struct used by BPF_OBJ_* commands */
|
||||
@@ -320,6 +358,11 @@ union bpf_attr {
|
||||
__aligned_u64 prog_ids;
|
||||
__u32 prog_cnt;
|
||||
} query;
|
||||
|
||||
struct {
|
||||
__u64 name;
|
||||
__u32 prog_fd;
|
||||
} raw_tracepoint;
|
||||
} __attribute__((aligned(8)));
|
||||
|
||||
/* BPF helper function descriptions:
|
||||
@@ -696,6 +739,22 @@ union bpf_attr {
|
||||
* int bpf_override_return(pt_regs, rc)
|
||||
* @pt_regs: pointer to struct pt_regs
|
||||
* @rc: the return value to set
|
||||
*
|
||||
* int bpf_msg_redirect_map(map, key, flags)
|
||||
* Redirect msg 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_PASS
|
||||
*
|
||||
* int bpf_bind(ctx, addr, addr_len)
|
||||
* Bind socket to address. Only binding to IP is supported, no port can be
|
||||
* set in addr.
|
||||
* @ctx: pointer to context of type bpf_sock_addr
|
||||
* @addr: pointer to struct sockaddr to bind socket to
|
||||
* @addr_len: length of sockaddr structure
|
||||
* Return: 0 on success or negative error code
|
||||
*/
|
||||
#define __BPF_FUNC_MAPPER(FN) \
|
||||
FN(unspec), \
|
||||
@@ -757,7 +816,12 @@ union bpf_attr {
|
||||
FN(perf_prog_read_value), \
|
||||
FN(getsockopt), \
|
||||
FN(override_return), \
|
||||
FN(sock_ops_cb_flags_set),
|
||||
FN(sock_ops_cb_flags_set), \
|
||||
FN(msg_redirect_map), \
|
||||
FN(msg_apply_bytes), \
|
||||
FN(msg_cork_bytes), \
|
||||
FN(msg_pull_data), \
|
||||
FN(bind),
|
||||
|
||||
/* integer value in 'imm' field of BPF_CALL instruction selects which helper
|
||||
* function eBPF program intends to call
|
||||
@@ -800,6 +864,7 @@ enum bpf_func_id {
|
||||
/* BPF_FUNC_skb_set_tunnel_key flags. */
|
||||
#define BPF_F_ZERO_CSUM_TX (1ULL << 1)
|
||||
#define BPF_F_DONT_FRAGMENT (1ULL << 2)
|
||||
#define BPF_F_SEQ_NUMBER (1ULL << 3)
|
||||
|
||||
/* BPF_FUNC_perf_event_output, BPF_FUNC_perf_event_read and
|
||||
* BPF_FUNC_perf_event_read_value flags.
|
||||
@@ -885,6 +950,15 @@ struct bpf_sock {
|
||||
__u32 protocol;
|
||||
__u32 mark;
|
||||
__u32 priority;
|
||||
__u32 src_ip4; /* Allows 1,2,4-byte read.
|
||||
* Stored in network byte order.
|
||||
*/
|
||||
__u32 src_ip6[4]; /* Allows 1,2,4-byte read.
|
||||
* Stored in network byte order.
|
||||
*/
|
||||
__u32 src_port; /* Allows 4-byte read.
|
||||
* Stored in host byte order
|
||||
*/
|
||||
};
|
||||
|
||||
#define XDP_PACKET_HEADROOM 256
|
||||
@@ -919,6 +993,14 @@ enum sk_action {
|
||||
SK_PASS,
|
||||
};
|
||||
|
||||
/* user accessible metadata for SK_MSG packet hook, new fields must
|
||||
* be added to the end of this structure
|
||||
*/
|
||||
struct sk_msg_md {
|
||||
void *data;
|
||||
void *data_end;
|
||||
};
|
||||
|
||||
#define BPF_TAG_SIZE 8
|
||||
|
||||
struct bpf_prog_info {
|
||||
@@ -952,6 +1034,26 @@ struct bpf_map_info {
|
||||
__u64 netns_ino;
|
||||
} __attribute__((aligned(8)));
|
||||
|
||||
/* User bpf_sock_addr struct to access socket fields and sockaddr struct passed
|
||||
* by user and intended to be used by socket (e.g. to bind to, depends on
|
||||
* attach attach type).
|
||||
*/
|
||||
struct bpf_sock_addr {
|
||||
__u32 user_family; /* Allows 4-byte read, but no write. */
|
||||
__u32 user_ip4; /* Allows 1,2,4-byte read and 4-byte write.
|
||||
* Stored in network byte order.
|
||||
*/
|
||||
__u32 user_ip6[4]; /* Allows 1,2,4-byte read an 4-byte write.
|
||||
* Stored in network byte order.
|
||||
*/
|
||||
__u32 user_port; /* Allows 4-byte read and write.
|
||||
* Stored in network byte order
|
||||
*/
|
||||
__u32 family; /* Allows 4-byte read, but no write */
|
||||
__u32 type; /* Allows 4-byte read, but no write */
|
||||
__u32 protocol; /* Allows 4-byte read, but no write */
|
||||
};
|
||||
|
||||
/* User bpf_sock_ops struct to access socket values and specify request ops
|
||||
* and their replies.
|
||||
* Some of this fields are in network (bigendian) byte order and may need
|
||||
@@ -1106,4 +1208,8 @@ struct bpf_cgroup_dev_ctx {
|
||||
__u32 minor;
|
||||
};
|
||||
|
||||
struct bpf_raw_tracepoint_args {
|
||||
__u64 args[0];
|
||||
};
|
||||
|
||||
#endif /* _UAPI__LINUX_BPF_H__ */
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
struct bpf_perf_event_data {
|
||||
bpf_user_pt_regs_t regs;
|
||||
__u64 sample_period;
|
||||
__u64 addr;
|
||||
};
|
||||
|
||||
#endif /* _UAPI__LINUX_BPF_PERF_EVENT_H__ */
|
||||
|
||||
@@ -3,35 +3,6 @@
|
||||
* cec - HDMI Consumer Electronics Control message functions
|
||||
*
|
||||
* Copyright 2016 Cisco Systems, Inc. and/or its affiliates. All rights reserved.
|
||||
*
|
||||
* This program is free software; you may redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; version 2 of the License.
|
||||
*
|
||||
* Alternatively you can redistribute this file under the terms of the
|
||||
* BSD license as stated below:
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. 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.
|
||||
* 3. The names of its contributors may not be used to endorse or promote
|
||||
* products derived from this software without specific prior written
|
||||
* permission.
|
||||
*
|
||||
* 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 _CEC_UAPI_FUNCS_H
|
||||
|
||||
@@ -3,35 +3,6 @@
|
||||
* cec - HDMI Consumer Electronics Control public header
|
||||
*
|
||||
* Copyright 2016 Cisco Systems, Inc. and/or its affiliates. All rights reserved.
|
||||
*
|
||||
* This program is free software; you may redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; version 2 of the License.
|
||||
*
|
||||
* Alternatively you can redistribute this file under the terms of the
|
||||
* BSD license as stated below:
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. 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.
|
||||
* 3. The names of its contributors may not be used to endorse or promote
|
||||
* products derived from this software without specific prior written
|
||||
* permission.
|
||||
*
|
||||
* 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 _CEC_UAPI_H
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
/* const.h: Macros for dealing with constants. */
|
||||
|
||||
#ifndef _LINUX_CONST_H
|
||||
#define _LINUX_CONST_H
|
||||
#ifndef _UAPI_LINUX_CONST_H
|
||||
#define _UAPI_LINUX_CONST_H
|
||||
|
||||
/* Some constant macros are used in both assembler and
|
||||
* C code. Therefore we cannot annotate them always with
|
||||
@@ -22,7 +22,10 @@
|
||||
#define _AT(T,X) ((T)(X))
|
||||
#endif
|
||||
|
||||
#define _BITUL(x) (_AC(1,UL) << (x))
|
||||
#define _BITULL(x) (_AC(1,ULL) << (x))
|
||||
#define _UL(x) (_AC(x, UL))
|
||||
#define _ULL(x) (_AC(x, ULL))
|
||||
|
||||
#endif /* !(_LINUX_CONST_H) */
|
||||
#define _BITUL(x) (_UL(1) << (x))
|
||||
#define _BITULL(x) (_ULL(1) << (x))
|
||||
|
||||
#endif /* _UAPI_LINUX_CONST_H */
|
||||
|
||||
@@ -270,9 +270,9 @@ enum {
|
||||
#define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl)
|
||||
|
||||
#define DM_VERSION_MAJOR 4
|
||||
#define DM_VERSION_MINOR 37
|
||||
#define DM_VERSION_MINOR 39
|
||||
#define DM_VERSION_PATCHLEVEL 0
|
||||
#define DM_VERSION_EXTRA "-ioctl (2017-09-20)"
|
||||
#define DM_VERSION_EXTRA "-ioctl (2018-04-03)"
|
||||
|
||||
/* Status bits */
|
||||
#define DM_READONLY_FLAG (1 << 0) /* In/Out */
|
||||
|
||||
@@ -420,9 +420,6 @@ typedef struct elf64_shdr {
|
||||
#define NT_ARM_HW_WATCH 0x403 /* ARM hardware watchpoint registers */
|
||||
#define NT_ARM_SYSTEM_CALL 0x404 /* ARM system call number */
|
||||
#define NT_ARM_SVE 0x405 /* ARM Scalable Vector Extension registers */
|
||||
#define NT_METAG_CBUF 0x500 /* Metag catch buffer registers */
|
||||
#define NT_METAG_RPIPE 0x501 /* Metag read pipeline state */
|
||||
#define NT_METAG_TLS 0x502 /* Metag TLS pointer */
|
||||
#define NT_ARC_V2 0x600 /* ARCv2 accumulator/extra registers */
|
||||
|
||||
/* Note header in a PT_NOTE section */
|
||||
|
||||
@@ -217,10 +217,14 @@ struct ethtool_value {
|
||||
__u32 data;
|
||||
};
|
||||
|
||||
#define PFC_STORM_PREVENTION_AUTO 0xffff
|
||||
#define PFC_STORM_PREVENTION_DISABLE 0
|
||||
|
||||
enum tunable_id {
|
||||
ETHTOOL_ID_UNSPEC,
|
||||
ETHTOOL_RX_COPYBREAK,
|
||||
ETHTOOL_TX_COPYBREAK,
|
||||
ETHTOOL_PFC_PREVENTION_TOUT, /* timeout in msecs */
|
||||
/*
|
||||
* Add your fresh new tubale attribute above and remember to update
|
||||
* tunable_strings[] in net/core/ethtool.c
|
||||
@@ -914,12 +918,15 @@ static inline __u64 ethtool_get_flow_spec_ring_vf(__u64 ring_cookie)
|
||||
* @flow_type: Type of flow to be affected, e.g. %TCP_V4_FLOW
|
||||
* @data: Command-dependent value
|
||||
* @fs: Flow classification rule
|
||||
* @rss_context: RSS context to be affected
|
||||
* @rule_cnt: Number of rules to be affected
|
||||
* @rule_locs: Array of used rule locations
|
||||
*
|
||||
* For %ETHTOOL_GRXFH and %ETHTOOL_SRXFH, @data is a bitmask indicating
|
||||
* the fields included in the flow hash, e.g. %RXH_IP_SRC. The following
|
||||
* structure fields must not be used.
|
||||
* structure fields must not be used, except that if @flow_type includes
|
||||
* the %FLOW_RSS flag, then @rss_context determines which RSS context to
|
||||
* act on.
|
||||
*
|
||||
* For %ETHTOOL_GRXRINGS, @data is set to the number of RX rings/queues
|
||||
* on return.
|
||||
@@ -931,7 +938,9 @@ static inline __u64 ethtool_get_flow_spec_ring_vf(__u64 ring_cookie)
|
||||
* set in @data then special location values should not be used.
|
||||
*
|
||||
* For %ETHTOOL_GRXCLSRULE, @fs.@location specifies the location of an
|
||||
* existing rule on entry and @fs contains the rule on return.
|
||||
* existing rule on entry and @fs contains the rule on return; if
|
||||
* @fs.@flow_type includes the %FLOW_RSS flag, then @rss_context is
|
||||
* filled with the RSS context ID associated with the rule.
|
||||
*
|
||||
* For %ETHTOOL_GRXCLSRLALL, @rule_cnt specifies the array size of the
|
||||
* user buffer for @rule_locs on entry. On return, @data is the size
|
||||
@@ -942,7 +951,11 @@ static inline __u64 ethtool_get_flow_spec_ring_vf(__u64 ring_cookie)
|
||||
* For %ETHTOOL_SRXCLSRLINS, @fs specifies the rule to add or update.
|
||||
* @fs.@location either specifies the location to use or is a special
|
||||
* location value with %RX_CLS_LOC_SPECIAL flag set. On return,
|
||||
* @fs.@location is the actual rule location.
|
||||
* @fs.@location is the actual rule location. If @fs.@flow_type
|
||||
* includes the %FLOW_RSS flag, @rss_context is the RSS context ID to
|
||||
* use for flow spreading traffic which matches this rule. The value
|
||||
* from the rxfh indirection table will be added to @fs.@ring_cookie
|
||||
* to choose which ring to deliver to.
|
||||
*
|
||||
* For %ETHTOOL_SRXCLSRLDEL, @fs.@location specifies the location of an
|
||||
* existing rule on entry.
|
||||
@@ -963,7 +976,10 @@ struct ethtool_rxnfc {
|
||||
__u32 flow_type;
|
||||
__u64 data;
|
||||
struct ethtool_rx_flow_spec fs;
|
||||
__u32 rule_cnt;
|
||||
union {
|
||||
__u32 rule_cnt;
|
||||
__u32 rss_context;
|
||||
};
|
||||
__u32 rule_locs[0];
|
||||
};
|
||||
|
||||
@@ -990,7 +1006,11 @@ struct ethtool_rxfh_indir {
|
||||
/**
|
||||
* struct ethtool_rxfh - command to get/set RX flow hash indir or/and hash key.
|
||||
* @cmd: Specific command number - %ETHTOOL_GRSSH or %ETHTOOL_SRSSH
|
||||
* @rss_context: RSS context identifier.
|
||||
* @rss_context: RSS context identifier. Context 0 is the default for normal
|
||||
* traffic; other contexts can be referenced as the destination for RX flow
|
||||
* classification rules. %ETH_RXFH_CONTEXT_ALLOC is used with command
|
||||
* %ETHTOOL_SRSSH to allocate a new RSS context; on return this field will
|
||||
* contain the ID of the newly allocated context.
|
||||
* @indir_size: On entry, the array size of the user buffer for the
|
||||
* indirection table, which may be zero, or (for %ETHTOOL_SRSSH),
|
||||
* %ETH_RXFH_INDIR_NO_CHANGE. On return from %ETHTOOL_GRSSH,
|
||||
@@ -1009,7 +1029,8 @@ struct ethtool_rxfh_indir {
|
||||
* size should be returned. For %ETHTOOL_SRSSH, an @indir_size of
|
||||
* %ETH_RXFH_INDIR_NO_CHANGE means that indir table setting is not requested
|
||||
* and a @indir_size of zero means the indir table should be reset to default
|
||||
* values. An hfunc of zero means that hash function setting is not requested.
|
||||
* values (if @rss_context == 0) or that the RSS context should be deleted.
|
||||
* An hfunc of zero means that hash function setting is not requested.
|
||||
*/
|
||||
struct ethtool_rxfh {
|
||||
__u32 cmd;
|
||||
@@ -1021,6 +1042,7 @@ struct ethtool_rxfh {
|
||||
__u32 rsvd32;
|
||||
__u32 rss_config[0];
|
||||
};
|
||||
#define ETH_RXFH_CONTEXT_ALLOC 0xffffffff
|
||||
#define ETH_RXFH_INDIR_NO_CHANGE 0xffffffff
|
||||
|
||||
/**
|
||||
@@ -1635,6 +1657,8 @@ static inline int ethtool_validate_duplex(__u8 duplex)
|
||||
/* Flag to enable additional fields in struct ethtool_rx_flow_spec */
|
||||
#define FLOW_EXT 0x80000000
|
||||
#define FLOW_MAC_EXT 0x40000000
|
||||
/* Flag to enable RSS spreading of traffic matching rule (nfc only) */
|
||||
#define FLOW_RSS 0x20000000
|
||||
|
||||
/* L3-L4 network traffic flow hash options */
|
||||
#define RXH_L2DA (1 << 1)
|
||||
|
||||
@@ -23,7 +23,7 @@ struct fib_rule_hdr {
|
||||
__u8 tos;
|
||||
|
||||
__u8 table;
|
||||
__u8 res1; /* reserved */
|
||||
__u8 res1; /* reserved */
|
||||
__u8 res2; /* reserved */
|
||||
__u8 action;
|
||||
|
||||
@@ -35,6 +35,11 @@ struct fib_rule_uid_range {
|
||||
__u32 end;
|
||||
};
|
||||
|
||||
struct fib_rule_port_range {
|
||||
__u16 start;
|
||||
__u16 end;
|
||||
};
|
||||
|
||||
enum {
|
||||
FRA_UNSPEC,
|
||||
FRA_DST, /* destination address */
|
||||
@@ -58,6 +63,10 @@ enum {
|
||||
FRA_PAD,
|
||||
FRA_L3MDEV, /* iif or oif is l3mdev goto its table */
|
||||
FRA_UID_RANGE, /* UID range */
|
||||
FRA_PROTOCOL, /* Originator of the rule */
|
||||
FRA_IP_PROTO, /* ip proto */
|
||||
FRA_SPORT_RANGE, /* sport */
|
||||
FRA_DPORT_RANGE, /* dport */
|
||||
__FRA_MAX
|
||||
};
|
||||
|
||||
|
||||
@@ -89,6 +89,7 @@
|
||||
#define ETH_P_AOE 0x88A2 /* ATA over Ethernet */
|
||||
#define ETH_P_8021AD 0x88A8 /* 802.1ad Service VLAN */
|
||||
#define ETH_P_802_EX1 0x88B5 /* 802.1 Local Experimental 1. */
|
||||
#define ETH_P_PREAUTH 0x88C7 /* 802.11 Preauthentication */
|
||||
#define ETH_P_TIPC 0x88CA /* TIPC */
|
||||
#define ETH_P_MACSEC 0x88E5 /* 802.1ae MACsec */
|
||||
#define ETH_P_8021AH 0x88E7 /* 802.1ah Backbone Service Tag */
|
||||
|
||||
@@ -941,4 +941,43 @@ enum {
|
||||
IFLA_EVENT_BONDING_OPTIONS, /* change in bonding options */
|
||||
};
|
||||
|
||||
/* tun section */
|
||||
|
||||
enum {
|
||||
IFLA_TUN_UNSPEC,
|
||||
IFLA_TUN_OWNER,
|
||||
IFLA_TUN_GROUP,
|
||||
IFLA_TUN_TYPE,
|
||||
IFLA_TUN_PI,
|
||||
IFLA_TUN_VNET_HDR,
|
||||
IFLA_TUN_PERSIST,
|
||||
IFLA_TUN_MULTI_QUEUE,
|
||||
IFLA_TUN_NUM_QUEUES,
|
||||
IFLA_TUN_NUM_DISABLED_QUEUES,
|
||||
__IFLA_TUN_MAX,
|
||||
};
|
||||
|
||||
#define IFLA_TUN_MAX (__IFLA_TUN_MAX - 1)
|
||||
|
||||
/* rmnet section */
|
||||
|
||||
#define RMNET_FLAGS_INGRESS_DEAGGREGATION (1U << 0)
|
||||
#define RMNET_FLAGS_INGRESS_MAP_COMMANDS (1U << 1)
|
||||
#define RMNET_FLAGS_INGRESS_MAP_CKSUMV4 (1U << 2)
|
||||
#define RMNET_FLAGS_EGRESS_MAP_CKSUMV4 (1U << 3)
|
||||
|
||||
enum {
|
||||
IFLA_RMNET_UNSPEC,
|
||||
IFLA_RMNET_MUX_ID,
|
||||
IFLA_RMNET_FLAGS,
|
||||
__IFLA_RMNET_MAX,
|
||||
};
|
||||
|
||||
#define IFLA_RMNET_MAX (__IFLA_RMNET_MAX - 1)
|
||||
|
||||
struct ifla_rmnet_flags {
|
||||
__u32 flags;
|
||||
__u32 mask;
|
||||
};
|
||||
|
||||
#endif /* _UAPI_LINUX_IF_LINK_H */
|
||||
|
||||
@@ -71,5 +71,13 @@ struct inotify_event {
|
||||
#define IN_CLOEXEC O_CLOEXEC
|
||||
#define IN_NONBLOCK O_NONBLOCK
|
||||
|
||||
/*
|
||||
* ioctl numbers: inotify uses 'I' prefix for all ioctls,
|
||||
* except historical FIONREAD, which is based on 'T'.
|
||||
*
|
||||
* INOTIFY_IOC_SETNEXTWD: set desired number of next created
|
||||
* watch descriptor.
|
||||
*/
|
||||
#define INOTIFY_IOC_SETNEXTWD _IOW('I', 0, __s32)
|
||||
|
||||
#endif /* _UAPI_LINUX_INOTIFY_H */
|
||||
|
||||
@@ -10,26 +10,6 @@
|
||||
*
|
||||
* Copyright 2002 MontaVista Software Inc.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||||
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#ifndef _UAPI__LINUX_IPMI_H
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Copyright (c) 2015-2018, Intel Corporation.
|
||||
*/
|
||||
|
||||
#ifndef _UAPI_LINUX_IPMI_BMC_H
|
||||
#define _UAPI_LINUX_IPMI_BMC_H
|
||||
|
||||
#include <linux/ioctl.h>
|
||||
|
||||
#define __IPMI_BMC_IOCTL_MAGIC 0xB1
|
||||
#define IPMI_BMC_IOCTL_SET_SMS_ATN _IO(__IPMI_BMC_IOCTL_MAGIC, 0x00)
|
||||
#define IPMI_BMC_IOCTL_CLEAR_SMS_ATN _IO(__IPMI_BMC_IOCTL_MAGIC, 0x01)
|
||||
#define IPMI_BMC_IOCTL_FORCE_ABORT _IO(__IPMI_BMC_IOCTL_MAGIC, 0x02)
|
||||
|
||||
#endif /* _UAPI_LINUX_IPMI_BMC_H */
|
||||
@@ -10,26 +10,6 @@
|
||||
*
|
||||
* Copyright 2002 MontaVista Software Inc.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||||
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#ifndef __LINUX_IPMI_MSGDEFS_H
|
||||
|
||||
@@ -1,252 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
|
||||
/*********************************************************************
|
||||
*
|
||||
* Filename: irda.h
|
||||
* Version:
|
||||
* Description:
|
||||
* Status: Experimental.
|
||||
* Author: Dag Brattli <dagb@cs.uit.no>
|
||||
* Created at: Mon Mar 8 14:06:12 1999
|
||||
* Modified at: Sat Dec 25 16:06:42 1999
|
||||
* Modified by: Dag Brattli <dagb@cs.uit.no>
|
||||
*
|
||||
* Copyright (c) 1999 Dag Brattli, All Rights Reserved.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* Neither Dag Brattli nor University of Tromsø admit liability nor
|
||||
* provide warranty for any of this software. This material is
|
||||
* provided "AS-IS" and at no charge.
|
||||
*
|
||||
********************************************************************/
|
||||
|
||||
#ifndef KERNEL_IRDA_H
|
||||
#define KERNEL_IRDA_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/socket.h>
|
||||
|
||||
/* Note that this file is shared with user space. */
|
||||
|
||||
/* Hint bit positions for first hint byte */
|
||||
#define HINT_PNP 0x01
|
||||
#define HINT_PDA 0x02
|
||||
#define HINT_COMPUTER 0x04
|
||||
#define HINT_PRINTER 0x08
|
||||
#define HINT_MODEM 0x10
|
||||
#define HINT_FAX 0x20
|
||||
#define HINT_LAN 0x40
|
||||
#define HINT_EXTENSION 0x80
|
||||
|
||||
/* Hint bit positions for second hint byte (first extension byte) */
|
||||
#define HINT_TELEPHONY 0x01
|
||||
#define HINT_FILE_SERVER 0x02
|
||||
#define HINT_COMM 0x04
|
||||
#define HINT_MESSAGE 0x08
|
||||
#define HINT_HTTP 0x10
|
||||
#define HINT_OBEX 0x20
|
||||
|
||||
/* IrLMP character code values */
|
||||
#define CS_ASCII 0x00
|
||||
#define CS_ISO_8859_1 0x01
|
||||
#define CS_ISO_8859_2 0x02
|
||||
#define CS_ISO_8859_3 0x03
|
||||
#define CS_ISO_8859_4 0x04
|
||||
#define CS_ISO_8859_5 0x05
|
||||
#define CS_ISO_8859_6 0x06
|
||||
#define CS_ISO_8859_7 0x07
|
||||
#define CS_ISO_8859_8 0x08
|
||||
#define CS_ISO_8859_9 0x09
|
||||
#define CS_UNICODE 0xff
|
||||
|
||||
/* These are the currently known dongles */
|
||||
typedef enum {
|
||||
IRDA_TEKRAM_DONGLE = 0,
|
||||
IRDA_ESI_DONGLE = 1,
|
||||
IRDA_ACTISYS_DONGLE = 2,
|
||||
IRDA_ACTISYS_PLUS_DONGLE = 3,
|
||||
IRDA_GIRBIL_DONGLE = 4,
|
||||
IRDA_LITELINK_DONGLE = 5,
|
||||
IRDA_AIRPORT_DONGLE = 6,
|
||||
IRDA_OLD_BELKIN_DONGLE = 7,
|
||||
IRDA_EP7211_IR = 8,
|
||||
IRDA_MCP2120_DONGLE = 9,
|
||||
IRDA_ACT200L_DONGLE = 10,
|
||||
IRDA_MA600_DONGLE = 11,
|
||||
IRDA_TOIM3232_DONGLE = 12,
|
||||
IRDA_EP7211_DONGLE = 13,
|
||||
} IRDA_DONGLE;
|
||||
|
||||
/* Protocol types to be used for SOCK_DGRAM */
|
||||
enum {
|
||||
IRDAPROTO_UNITDATA = 0,
|
||||
IRDAPROTO_ULTRA = 1,
|
||||
IRDAPROTO_MAX
|
||||
};
|
||||
|
||||
#define SOL_IRLMP 266 /* Same as SOL_IRDA for now */
|
||||
#define SOL_IRTTP 266 /* Same as SOL_IRDA for now */
|
||||
|
||||
#define IRLMP_ENUMDEVICES 1 /* Return discovery log */
|
||||
#define IRLMP_IAS_SET 2 /* Set an attribute in local IAS */
|
||||
#define IRLMP_IAS_QUERY 3 /* Query remote IAS for attribute */
|
||||
#define IRLMP_HINTS_SET 4 /* Set hint bits advertised */
|
||||
#define IRLMP_QOS_SET 5
|
||||
#define IRLMP_QOS_GET 6
|
||||
#define IRLMP_MAX_SDU_SIZE 7
|
||||
#define IRLMP_IAS_GET 8 /* Get an attribute from local IAS */
|
||||
#define IRLMP_IAS_DEL 9 /* Remove attribute from local IAS */
|
||||
#define IRLMP_HINT_MASK_SET 10 /* Set discovery filter */
|
||||
#define IRLMP_WAITDEVICE 11 /* Wait for a new discovery */
|
||||
|
||||
#define IRTTP_MAX_SDU_SIZE IRLMP_MAX_SDU_SIZE /* Compatibility */
|
||||
|
||||
#define IAS_MAX_STRING 256 /* See IrLMP 1.1, 4.3.3.2 */
|
||||
#define IAS_MAX_OCTET_STRING 1024 /* See IrLMP 1.1, 4.3.3.2 */
|
||||
#define IAS_MAX_CLASSNAME 60 /* See IrLMP 1.1, 4.3.1 */
|
||||
#define IAS_MAX_ATTRIBNAME 60 /* See IrLMP 1.1, 4.3.3.1 */
|
||||
#define IAS_MAX_ATTRIBNUMBER 256 /* See IrLMP 1.1, 4.3.3.1 */
|
||||
/* For user space backward compatibility - may be fixed in kernel 2.5.X
|
||||
* Note : need 60+1 ('\0'), make it 64 for alignement - Jean II */
|
||||
#define IAS_EXPORT_CLASSNAME 64
|
||||
#define IAS_EXPORT_ATTRIBNAME 256
|
||||
|
||||
/* Attribute type needed for struct irda_ias_set */
|
||||
#define IAS_MISSING 0
|
||||
#define IAS_INTEGER 1
|
||||
#define IAS_OCT_SEQ 2
|
||||
#define IAS_STRING 3
|
||||
|
||||
#define LSAP_ANY 0xff
|
||||
|
||||
struct sockaddr_irda {
|
||||
__kernel_sa_family_t sir_family; /* AF_IRDA */
|
||||
__u8 sir_lsap_sel; /* LSAP selector */
|
||||
__u32 sir_addr; /* Device address */
|
||||
char sir_name[25]; /* Usually <service>:IrDA:TinyTP */
|
||||
};
|
||||
|
||||
struct irda_device_info {
|
||||
__u32 saddr; /* Address of local interface */
|
||||
__u32 daddr; /* Address of remote device */
|
||||
char info[22]; /* Description */
|
||||
__u8 charset; /* Charset used for description */
|
||||
__u8 hints[2]; /* Hint bits */
|
||||
};
|
||||
|
||||
struct irda_device_list {
|
||||
__u32 len;
|
||||
struct irda_device_info dev[1];
|
||||
};
|
||||
|
||||
struct irda_ias_set {
|
||||
char irda_class_name[IAS_EXPORT_CLASSNAME];
|
||||
char irda_attrib_name[IAS_EXPORT_ATTRIBNAME];
|
||||
unsigned int irda_attrib_type;
|
||||
union {
|
||||
unsigned int irda_attrib_int;
|
||||
struct {
|
||||
unsigned short len;
|
||||
__u8 octet_seq[IAS_MAX_OCTET_STRING];
|
||||
} irda_attrib_octet_seq;
|
||||
struct {
|
||||
__u8 len;
|
||||
__u8 charset;
|
||||
__u8 string[IAS_MAX_STRING];
|
||||
} irda_attrib_string;
|
||||
} attribute;
|
||||
__u32 daddr; /* Address of device (for some queries only) */
|
||||
};
|
||||
|
||||
/* Some private IOCTL's (max 16) */
|
||||
#define SIOCSDONGLE (SIOCDEVPRIVATE + 0)
|
||||
#define SIOCGDONGLE (SIOCDEVPRIVATE + 1)
|
||||
#define SIOCSBANDWIDTH (SIOCDEVPRIVATE + 2)
|
||||
#define SIOCSMEDIABUSY (SIOCDEVPRIVATE + 3)
|
||||
#define SIOCGMEDIABUSY (SIOCDEVPRIVATE + 4)
|
||||
#define SIOCGRECEIVING (SIOCDEVPRIVATE + 5)
|
||||
#define SIOCSMODE (SIOCDEVPRIVATE + 6)
|
||||
#define SIOCGMODE (SIOCDEVPRIVATE + 7)
|
||||
#define SIOCSDTRRTS (SIOCDEVPRIVATE + 8)
|
||||
#define SIOCGQOS (SIOCDEVPRIVATE + 9)
|
||||
|
||||
/* No reason to include <linux/if.h> just because of this one ;-) */
|
||||
#define IRNAMSIZ 16
|
||||
|
||||
/* IrDA quality of service information (must not exceed 16 bytes) */
|
||||
struct if_irda_qos {
|
||||
unsigned long baudrate;
|
||||
unsigned short data_size;
|
||||
unsigned short window_size;
|
||||
unsigned short min_turn_time;
|
||||
unsigned short max_turn_time;
|
||||
unsigned char add_bofs;
|
||||
unsigned char link_disc;
|
||||
};
|
||||
|
||||
/* For setting RTS and DTR lines of a dongle */
|
||||
struct if_irda_line {
|
||||
__u8 dtr;
|
||||
__u8 rts;
|
||||
};
|
||||
|
||||
/* IrDA interface configuration (data part must not exceed 16 bytes) */
|
||||
struct if_irda_req {
|
||||
union {
|
||||
char ifrn_name[IRNAMSIZ]; /* if name, e.g. "irda0" */
|
||||
} ifr_ifrn;
|
||||
|
||||
/* Data part */
|
||||
union {
|
||||
struct if_irda_line ifru_line;
|
||||
struct if_irda_qos ifru_qos;
|
||||
unsigned short ifru_flags;
|
||||
unsigned int ifru_receiving;
|
||||
unsigned int ifru_mode;
|
||||
unsigned int ifru_dongle;
|
||||
} ifr_ifru;
|
||||
};
|
||||
|
||||
#define ifr_baudrate ifr_ifru.ifru_qos.baudrate
|
||||
#define ifr_receiving ifr_ifru.ifru_receiving
|
||||
#define ifr_dongle ifr_ifru.ifru_dongle
|
||||
#define ifr_mode ifr_ifru.ifru_mode
|
||||
#define ifr_dtr ifr_ifru.ifru_line.dtr
|
||||
#define ifr_rts ifr_ifru.ifru_line.rts
|
||||
|
||||
|
||||
/* IrDA netlink definitions */
|
||||
#define IRDA_NL_NAME "irda"
|
||||
#define IRDA_NL_VERSION 1
|
||||
|
||||
enum irda_nl_commands {
|
||||
IRDA_NL_CMD_UNSPEC,
|
||||
IRDA_NL_CMD_SET_MODE,
|
||||
IRDA_NL_CMD_GET_MODE,
|
||||
|
||||
__IRDA_NL_CMD_AFTER_LAST
|
||||
};
|
||||
#define IRDA_NL_CMD_MAX (__IRDA_NL_CMD_AFTER_LAST - 1)
|
||||
|
||||
enum nl80211_attrs {
|
||||
IRDA_NL_ATTR_UNSPEC,
|
||||
IRDA_NL_ATTR_IFNAME,
|
||||
IRDA_NL_ATTR_MODE,
|
||||
|
||||
__IRDA_NL_ATTR_AFTER_LAST
|
||||
};
|
||||
#define IRDA_NL_ATTR_MAX (__IRDA_NL_ATTR_AFTER_LAST - 1)
|
||||
|
||||
/* IrDA modes */
|
||||
#define IRDA_MODE_PRIMARY 0x1
|
||||
#define IRDA_MODE_SECONDARY 0x2
|
||||
#define IRDA_MODE_MONITOR 0x4
|
||||
|
||||
#endif /* KERNEL_IRDA_H */
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,721 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
|
||||
#ifndef __LINUX_IXJUSER_H
|
||||
#define __LINUX_IXJUSER_H
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* ixjuser.h
|
||||
*
|
||||
* Device Driver for Quicknet Technologies, Inc.'s Telephony cards
|
||||
* including the Internet PhoneJACK, Internet PhoneJACK Lite,
|
||||
* Internet PhoneJACK PCI, Internet LineJACK, Internet PhoneCARD and
|
||||
* SmartCABLE
|
||||
*
|
||||
* (c) Copyright 1999-2001 Quicknet Technologies, Inc.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* Author: Ed Okerson, <eokerson@quicknet.net>
|
||||
*
|
||||
* Contributors: Greg Herlein, <gherlein@quicknet.net>
|
||||
* David W. Erhart, <derhart@quicknet.net>
|
||||
* John Sellers, <jsellers@quicknet.net>
|
||||
* Mike Preston, <mpreston@quicknet.net>
|
||||
*
|
||||
* More information about the hardware related to this driver can be found
|
||||
* at our website: http://www.quicknet.net
|
||||
*
|
||||
* Fixes:
|
||||
*
|
||||
* IN NO EVENT SHALL QUICKNET TECHNOLOGIES, INC. BE LIABLE TO ANY PARTY FOR
|
||||
* DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
|
||||
* OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF QUICKNET
|
||||
* TECHNOLOGIES, INC.HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* QUICKNET TECHNOLOGIES, INC. SPECIFICALLY DISCLAIMS ANY WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
|
||||
* ON AN "AS IS" BASIS, AND QUICKNET TECHNOLOGIES, INC. HAS NO OBLIGATION
|
||||
* TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#include <linux/telephony.h>
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* IOCTL's used for the Quicknet Telephony Cards
|
||||
*
|
||||
* If you use the IXJCTL_TESTRAM command, the card must be power cycled to
|
||||
* reset the SRAM values before further use.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
#define IXJCTL_DSP_RESET _IO ('q', 0xC0)
|
||||
|
||||
#define IXJCTL_RING PHONE_RING
|
||||
#define IXJCTL_HOOKSTATE PHONE_HOOKSTATE
|
||||
#define IXJCTL_MAXRINGS PHONE_MAXRINGS
|
||||
#define IXJCTL_RING_CADENCE PHONE_RING_CADENCE
|
||||
#define IXJCTL_RING_START PHONE_RING_START
|
||||
#define IXJCTL_RING_STOP PHONE_RING_STOP
|
||||
|
||||
#define IXJCTL_CARDTYPE _IOR ('q', 0xC1, int)
|
||||
#define IXJCTL_SERIAL _IOR ('q', 0xC2, int)
|
||||
#define IXJCTL_DSP_TYPE _IOR ('q', 0xC3, int)
|
||||
#define IXJCTL_DSP_VERSION _IOR ('q', 0xC4, int)
|
||||
#define IXJCTL_VERSION _IOR ('q', 0xDA, char *)
|
||||
#define IXJCTL_DSP_IDLE _IO ('q', 0xC5)
|
||||
#define IXJCTL_TESTRAM _IO ('q', 0xC6)
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* This group of IOCTLs deal with the record settings of the DSP
|
||||
*
|
||||
* The IXJCTL_REC_DEPTH command sets the internal buffer depth of the DSP.
|
||||
* Setting a lower depth reduces latency, but increases the demand of the
|
||||
* application to service the driver without frame loss. The DSP has 480
|
||||
* bytes of physical buffer memory for the record channel so the true
|
||||
* maximum limit is determined by how many frames will fit in the buffer.
|
||||
*
|
||||
* 1 uncompressed (480 byte) 16-bit linear frame.
|
||||
* 2 uncompressed (240 byte) 8-bit A-law/mu-law frames.
|
||||
* 15 TrueSpeech 8.5 frames.
|
||||
* 20 TrueSpeech 6.3,5.3,4.8 or 4.1 frames.
|
||||
*
|
||||
* The default in the driver is currently set to 2 frames.
|
||||
*
|
||||
* The IXJCTL_REC_VOLUME and IXJCTL_PLAY_VOLUME commands both use a Q8
|
||||
* number as a parameter, 0x100 scales the signal by 1.0, 0x200 scales the
|
||||
* signal by 2.0, 0x80 scales the signal by 0.5. No protection is given
|
||||
* against over-scaling, if the multiplication factor times the input
|
||||
* signal exceeds 16 bits, overflow distortion will occur. The default
|
||||
* setting is 0x100 (1.0).
|
||||
*
|
||||
* The IXJCTL_REC_LEVEL returns the average signal level (not r.m.s.) on
|
||||
* the most recently recorded frame as a 16 bit value.
|
||||
******************************************************************************/
|
||||
|
||||
#define IXJCTL_REC_CODEC PHONE_REC_CODEC
|
||||
#define IXJCTL_REC_START PHONE_REC_START
|
||||
#define IXJCTL_REC_STOP PHONE_REC_STOP
|
||||
#define IXJCTL_REC_DEPTH PHONE_REC_DEPTH
|
||||
#define IXJCTL_FRAME PHONE_FRAME
|
||||
#define IXJCTL_REC_VOLUME PHONE_REC_VOLUME
|
||||
#define IXJCTL_REC_LEVEL PHONE_REC_LEVEL
|
||||
|
||||
typedef enum {
|
||||
f300_640 = 4, f300_500, f1100, f350, f400, f480, f440, f620, f20_50,
|
||||
f133_200, f300, f300_420, f330, f300_425, f330_440, f340, f350_400,
|
||||
f350_440, f350_450, f360, f380_420, f392, f400_425, f400_440, f400_450,
|
||||
f420, f425, f425_450, f425_475, f435, f440_450, f440_480, f445, f450,
|
||||
f452, f475, f480_620, f494, f500, f520, f523, f525, f540_660, f587,
|
||||
f590, f600, f660, f700, f740, f750, f750_1450, f770, f800, f816, f850,
|
||||
f857_1645, f900, f900_1300, f935_1215, f941_1477, f942, f950, f950_1400,
|
||||
f975, f1000, f1020, f1050, f1100_1750, f1140, f1200, f1209, f1330, f1336,
|
||||
lf1366, f1380, f1400, f1477, f1600, f1633_1638, f1800, f1860
|
||||
} IXJ_FILTER_FREQ;
|
||||
|
||||
typedef struct {
|
||||
unsigned int filter;
|
||||
IXJ_FILTER_FREQ freq;
|
||||
char enable;
|
||||
} IXJ_FILTER;
|
||||
|
||||
typedef struct {
|
||||
char enable;
|
||||
char en_filter;
|
||||
unsigned int filter;
|
||||
unsigned int on1;
|
||||
unsigned int off1;
|
||||
unsigned int on2;
|
||||
unsigned int off2;
|
||||
unsigned int on3;
|
||||
unsigned int off3;
|
||||
} IXJ_FILTER_CADENCE;
|
||||
|
||||
#define IXJCTL_SET_FILTER _IOW ('q', 0xC7, IXJ_FILTER *)
|
||||
#define IXJCTL_SET_FILTER_RAW _IOW ('q', 0xDD, IXJ_FILTER_RAW *)
|
||||
#define IXJCTL_GET_FILTER_HIST _IOW ('q', 0xC8, int)
|
||||
#define IXJCTL_FILTER_CADENCE _IOW ('q', 0xD6, IXJ_FILTER_CADENCE *)
|
||||
#define IXJCTL_PLAY_CID _IO ('q', 0xD7)
|
||||
/******************************************************************************
|
||||
*
|
||||
* This IOCTL allows you to reassign values in the tone index table. The
|
||||
* tone table has 32 entries (0 - 31), but the driver only allows entries
|
||||
* 13 - 27 to be modified, entry 0 is reserved for silence and 1 - 12 are
|
||||
* the standard DTMF digits and 28 - 31 are the DTMF tones for A, B, C & D.
|
||||
* The positions used internally for Call Progress Tones are as follows:
|
||||
* Dial Tone - 25
|
||||
* Ring Back - 26
|
||||
* Busy Signal - 27
|
||||
*
|
||||
* The freq values are calculated as:
|
||||
* freq = cos(2 * PI * frequency / 8000)
|
||||
*
|
||||
* The most commonly needed values are already calculated and listed in the
|
||||
* enum IXJ_TONE_FREQ. Each tone index can have two frequencies with
|
||||
* different gains, if you are only using a single frequency set the unused
|
||||
* one to 0.
|
||||
*
|
||||
* The gain values range from 0 to 15 indicating +6dB to -24dB in 2dB
|
||||
* increments.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
typedef enum {
|
||||
hz20 = 0x7ffa,
|
||||
hz50 = 0x7fe5,
|
||||
hz133 = 0x7f4c,
|
||||
hz200 = 0x7e6b,
|
||||
hz261 = 0x7d50, /* .63 C1 */
|
||||
hz277 = 0x7cfa, /* .18 CS1 */
|
||||
hz293 = 0x7c9f, /* .66 D1 */
|
||||
hz300 = 0x7c75,
|
||||
hz311 = 0x7c32, /* .13 DS1 */
|
||||
hz329 = 0x7bbf, /* .63 E1 */
|
||||
hz330 = 0x7bb8,
|
||||
hz340 = 0x7b75,
|
||||
hz349 = 0x7b37, /* .23 F1 */
|
||||
hz350 = 0x7b30,
|
||||
hz360 = 0x7ae9,
|
||||
hz369 = 0x7aa8, /* .99 FS1 */
|
||||
hz380 = 0x7a56,
|
||||
hz392 = 0x79fa, /* .00 G1 */
|
||||
hz400 = 0x79bb,
|
||||
hz415 = 0x7941, /* .30 GS1 */
|
||||
hz420 = 0x7918,
|
||||
hz425 = 0x78ee,
|
||||
hz435 = 0x7899,
|
||||
hz440 = 0x786d, /* .00 A1 */
|
||||
hz445 = 0x7842,
|
||||
hz450 = 0x7815,
|
||||
hz452 = 0x7803,
|
||||
hz466 = 0x7784, /* .16 AS1 */
|
||||
hz475 = 0x7731,
|
||||
hz480 = 0x7701,
|
||||
hz493 = 0x7685, /* .88 B1 */
|
||||
hz494 = 0x767b,
|
||||
hz500 = 0x7640,
|
||||
hz520 = 0x7578,
|
||||
hz523 = 0x7559, /* .25 C2 */
|
||||
hz525 = 0x7544,
|
||||
hz540 = 0x74a7,
|
||||
hz554 = 0x7411, /* .37 CS2 */
|
||||
hz587 = 0x72a1, /* .33 D2 */
|
||||
hz590 = 0x727f,
|
||||
hz600 = 0x720b,
|
||||
hz620 = 0x711e,
|
||||
hz622 = 0x7106, /* .25 DS2 */
|
||||
hz659 = 0x6f3b, /* .26 E2 */
|
||||
hz660 = 0x6f2e,
|
||||
hz698 = 0x6d3d, /* .46 F2 */
|
||||
hz700 = 0x6d22,
|
||||
hz739 = 0x6b09, /* .99 FS2 */
|
||||
hz740 = 0x6afa,
|
||||
hz750 = 0x6a6c,
|
||||
hz770 = 0x694b,
|
||||
hz783 = 0x688b, /* .99 G2 */
|
||||
hz800 = 0x678d,
|
||||
hz816 = 0x6698,
|
||||
hz830 = 0x65bf, /* .61 GS2 */
|
||||
hz850 = 0x6484,
|
||||
hz857 = 0x6414,
|
||||
hz880 = 0x629f, /* .00 A2 */
|
||||
hz900 = 0x6154,
|
||||
hz932 = 0x5f35, /* .33 AS2 */
|
||||
hz935 = 0x5f01,
|
||||
hz941 = 0x5e9a,
|
||||
hz942 = 0x5e88,
|
||||
hz950 = 0x5dfd,
|
||||
hz975 = 0x5c44,
|
||||
hz1000 = 0x5a81,
|
||||
hz1020 = 0x5912,
|
||||
hz1050 = 0x56e2,
|
||||
hz1100 = 0x5320,
|
||||
hz1140 = 0x5007,
|
||||
hz1200 = 0x4b3b,
|
||||
hz1209 = 0x4a80,
|
||||
hz1215 = 0x4a02,
|
||||
hz1250 = 0x471c,
|
||||
hz1300 = 0x42e0,
|
||||
hz1330 = 0x4049,
|
||||
hz1336 = 0x3fc4,
|
||||
hz1366 = 0x3d22,
|
||||
hz1380 = 0x3be4,
|
||||
hz1400 = 0x3a1b,
|
||||
hz1450 = 0x3596,
|
||||
hz1477 = 0x331c,
|
||||
hz1500 = 0x30fb,
|
||||
hz1600 = 0x278d,
|
||||
hz1633 = 0x2462,
|
||||
hz1638 = 0x23e7,
|
||||
hz1645 = 0x233a,
|
||||
hz1750 = 0x18f8,
|
||||
hz1800 = 0x1405,
|
||||
hz1860 = 0xe0b,
|
||||
hz2100 = 0xf5f6,
|
||||
hz2130 = 0xf2f5,
|
||||
hz2450 = 0xd3b3,
|
||||
hz2750 = 0xb8e4
|
||||
} IXJ_FREQ;
|
||||
|
||||
typedef enum {
|
||||
C1 = hz261,
|
||||
CS1 = hz277,
|
||||
D1 = hz293,
|
||||
DS1 = hz311,
|
||||
E1 = hz329,
|
||||
F1 = hz349,
|
||||
FS1 = hz369,
|
||||
G1 = hz392,
|
||||
GS1 = hz415,
|
||||
A1 = hz440,
|
||||
AS1 = hz466,
|
||||
B1 = hz493,
|
||||
C2 = hz523,
|
||||
CS2 = hz554,
|
||||
D2 = hz587,
|
||||
DS2 = hz622,
|
||||
E2 = hz659,
|
||||
F2 = hz698,
|
||||
FS2 = hz739,
|
||||
G2 = hz783,
|
||||
GS2 = hz830,
|
||||
A2 = hz880,
|
||||
AS2 = hz932,
|
||||
} IXJ_NOTE;
|
||||
|
||||
typedef struct {
|
||||
int tone_index;
|
||||
int freq0;
|
||||
int gain0;
|
||||
int freq1;
|
||||
int gain1;
|
||||
} IXJ_TONE;
|
||||
|
||||
#define IXJCTL_INIT_TONE _IOW ('q', 0xC9, IXJ_TONE *)
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* The IXJCTL_TONE_CADENCE ioctl defines tone sequences used for various
|
||||
* Call Progress Tones (CPT). This is accomplished by setting up an array of
|
||||
* IXJ_CADENCE_ELEMENT structures that sequentially define the states of
|
||||
* the tone sequence. The tone_on_time and tone_off time are in
|
||||
* 250 microsecond intervals. A pointer to this array is passed to the
|
||||
* driver as the ce element of an IXJ_CADENCE structure. The elements_used
|
||||
* must be set to the number of IXJ_CADENCE_ELEMENTS in the array. The
|
||||
* termination variable defines what to do at the end of a cadence, the
|
||||
* options are to play the cadence once and stop, to repeat the last
|
||||
* element of the cadence indefinitely, or to repeat the entire cadence
|
||||
* indefinitely. The ce variable is a pointer to the array of IXJ_TONE
|
||||
* structures. If the freq0 variable is non-zero, the tone table contents
|
||||
* for the tone_index are updated to the frequencies and gains defined. It
|
||||
* should be noted that DTMF tones cannot be reassigned, so if DTMF tone
|
||||
* table indexes are used in a cadence the frequency and gain variables will
|
||||
* be ignored.
|
||||
*
|
||||
* If the array elements contain frequency parameters the driver will
|
||||
* initialize the needed tone table elements and begin playing the tone,
|
||||
* there is no preset limit on the number of elements in the cadence. If
|
||||
* there is more than one frequency used in the cadence, sequential elements
|
||||
* of different frequencies MUST use different tone table indexes. Only one
|
||||
* cadence can be played at a time. It is possible to build complex
|
||||
* cadences with multiple frequencies using 2 tone table indexes by
|
||||
* alternating between them.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
typedef struct {
|
||||
int index;
|
||||
int tone_on_time;
|
||||
int tone_off_time;
|
||||
int freq0;
|
||||
int gain0;
|
||||
int freq1;
|
||||
int gain1;
|
||||
} IXJ_CADENCE_ELEMENT;
|
||||
|
||||
typedef enum {
|
||||
PLAY_ONCE,
|
||||
REPEAT_LAST_ELEMENT,
|
||||
REPEAT_ALL
|
||||
} IXJ_CADENCE_TERM;
|
||||
|
||||
typedef struct {
|
||||
int elements_used;
|
||||
IXJ_CADENCE_TERM termination;
|
||||
IXJ_CADENCE_ELEMENT __user *ce;
|
||||
} IXJ_CADENCE;
|
||||
|
||||
#define IXJCTL_TONE_CADENCE _IOW ('q', 0xCA, IXJ_CADENCE *)
|
||||
/******************************************************************************
|
||||
*
|
||||
* This group of IOCTLs deal with the playback settings of the DSP
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
#define IXJCTL_PLAY_CODEC PHONE_PLAY_CODEC
|
||||
#define IXJCTL_PLAY_START PHONE_PLAY_START
|
||||
#define IXJCTL_PLAY_STOP PHONE_PLAY_STOP
|
||||
#define IXJCTL_PLAY_DEPTH PHONE_PLAY_DEPTH
|
||||
#define IXJCTL_PLAY_VOLUME PHONE_PLAY_VOLUME
|
||||
#define IXJCTL_PLAY_LEVEL PHONE_PLAY_LEVEL
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* This group of IOCTLs deal with the Acoustic Echo Cancellation settings
|
||||
* of the DSP
|
||||
*
|
||||
* Issuing the IXJCTL_AEC_START command with a value of AEC_OFF has the
|
||||
* same effect as IXJCTL_AEC_STOP. This is to simplify slider bar
|
||||
* controls. IXJCTL_AEC_GET_LEVEL returns the current setting of the AEC.
|
||||
******************************************************************************/
|
||||
#define IXJCTL_AEC_START _IOW ('q', 0xCB, int)
|
||||
#define IXJCTL_AEC_STOP _IO ('q', 0xCC)
|
||||
#define IXJCTL_AEC_GET_LEVEL _IO ('q', 0xCD)
|
||||
|
||||
#define AEC_OFF 0
|
||||
#define AEC_LOW 1
|
||||
#define AEC_MED 2
|
||||
#define AEC_HIGH 3
|
||||
#define AEC_AUTO 4
|
||||
#define AEC_AGC 5
|
||||
/******************************************************************************
|
||||
*
|
||||
* Call Progress Tones, DTMF, etc.
|
||||
* IXJCTL_DTMF_OOB determines if DTMF signaling is sent as Out-Of-Band
|
||||
* only. If you pass a 1, DTMF is suppressed from the audio stream.
|
||||
* Tone on and off times are in 250 microsecond intervals so
|
||||
* ioctl(ixj1, IXJCTL_SET_TONE_ON_TIME, 360);
|
||||
* will set the tone on time of board ixj1 to 360 * 250us = 90ms
|
||||
* the default values of tone on and off times is 840 or 210ms
|
||||
******************************************************************************/
|
||||
|
||||
#define IXJCTL_DTMF_READY PHONE_DTMF_READY
|
||||
#define IXJCTL_GET_DTMF PHONE_GET_DTMF
|
||||
#define IXJCTL_GET_DTMF_ASCII PHONE_GET_DTMF_ASCII
|
||||
#define IXJCTL_DTMF_OOB PHONE_DTMF_OOB
|
||||
#define IXJCTL_EXCEPTION PHONE_EXCEPTION
|
||||
#define IXJCTL_PLAY_TONE PHONE_PLAY_TONE
|
||||
#define IXJCTL_SET_TONE_ON_TIME PHONE_SET_TONE_ON_TIME
|
||||
#define IXJCTL_SET_TONE_OFF_TIME PHONE_SET_TONE_OFF_TIME
|
||||
#define IXJCTL_GET_TONE_ON_TIME PHONE_GET_TONE_ON_TIME
|
||||
#define IXJCTL_GET_TONE_OFF_TIME PHONE_GET_TONE_OFF_TIME
|
||||
#define IXJCTL_GET_TONE_STATE PHONE_GET_TONE_STATE
|
||||
#define IXJCTL_BUSY PHONE_BUSY
|
||||
#define IXJCTL_RINGBACK PHONE_RINGBACK
|
||||
#define IXJCTL_DIALTONE PHONE_DIALTONE
|
||||
#define IXJCTL_CPT_STOP PHONE_CPT_STOP
|
||||
|
||||
/******************************************************************************
|
||||
* LineJACK specific IOCTLs
|
||||
*
|
||||
* The lsb 4 bits of the LED argument represent the state of each of the 4
|
||||
* LED's on the LineJACK
|
||||
******************************************************************************/
|
||||
|
||||
#define IXJCTL_SET_LED _IOW ('q', 0xCE, int)
|
||||
#define IXJCTL_MIXER _IOW ('q', 0xCF, int)
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* The master volume controls use attenuation with 32 levels from 0 to -62dB
|
||||
* with steps of 2dB each, the defines should be OR'ed together then sent
|
||||
* as the parameter to the mixer command to change the mixer settings.
|
||||
*
|
||||
******************************************************************************/
|
||||
#define MIXER_MASTER_L 0x0000
|
||||
#define MIXER_MASTER_R 0x0100
|
||||
#define ATT00DB 0x00
|
||||
#define ATT02DB 0x01
|
||||
#define ATT04DB 0x02
|
||||
#define ATT06DB 0x03
|
||||
#define ATT08DB 0x04
|
||||
#define ATT10DB 0x05
|
||||
#define ATT12DB 0x06
|
||||
#define ATT14DB 0x07
|
||||
#define ATT16DB 0x08
|
||||
#define ATT18DB 0x09
|
||||
#define ATT20DB 0x0A
|
||||
#define ATT22DB 0x0B
|
||||
#define ATT24DB 0x0C
|
||||
#define ATT26DB 0x0D
|
||||
#define ATT28DB 0x0E
|
||||
#define ATT30DB 0x0F
|
||||
#define ATT32DB 0x10
|
||||
#define ATT34DB 0x11
|
||||
#define ATT36DB 0x12
|
||||
#define ATT38DB 0x13
|
||||
#define ATT40DB 0x14
|
||||
#define ATT42DB 0x15
|
||||
#define ATT44DB 0x16
|
||||
#define ATT46DB 0x17
|
||||
#define ATT48DB 0x18
|
||||
#define ATT50DB 0x19
|
||||
#define ATT52DB 0x1A
|
||||
#define ATT54DB 0x1B
|
||||
#define ATT56DB 0x1C
|
||||
#define ATT58DB 0x1D
|
||||
#define ATT60DB 0x1E
|
||||
#define ATT62DB 0x1F
|
||||
#define MASTER_MUTE 0x80
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* The input volume controls use gain with 32 levels from +12dB to -50dB
|
||||
* with steps of 2dB each, the defines should be OR'ed together then sent
|
||||
* as the parameter to the mixer command to change the mixer settings.
|
||||
*
|
||||
******************************************************************************/
|
||||
#define MIXER_PORT_CD_L 0x0600
|
||||
#define MIXER_PORT_CD_R 0x0700
|
||||
#define MIXER_PORT_LINE_IN_L 0x0800
|
||||
#define MIXER_PORT_LINE_IN_R 0x0900
|
||||
#define MIXER_PORT_POTS_REC 0x0C00
|
||||
#define MIXER_PORT_MIC 0x0E00
|
||||
|
||||
#define GAIN12DB 0x00
|
||||
#define GAIN10DB 0x01
|
||||
#define GAIN08DB 0x02
|
||||
#define GAIN06DB 0x03
|
||||
#define GAIN04DB 0x04
|
||||
#define GAIN02DB 0x05
|
||||
#define GAIN00DB 0x06
|
||||
#define GAIN_02DB 0x07
|
||||
#define GAIN_04DB 0x08
|
||||
#define GAIN_06DB 0x09
|
||||
#define GAIN_08DB 0x0A
|
||||
#define GAIN_10DB 0x0B
|
||||
#define GAIN_12DB 0x0C
|
||||
#define GAIN_14DB 0x0D
|
||||
#define GAIN_16DB 0x0E
|
||||
#define GAIN_18DB 0x0F
|
||||
#define GAIN_20DB 0x10
|
||||
#define GAIN_22DB 0x11
|
||||
#define GAIN_24DB 0x12
|
||||
#define GAIN_26DB 0x13
|
||||
#define GAIN_28DB 0x14
|
||||
#define GAIN_30DB 0x15
|
||||
#define GAIN_32DB 0x16
|
||||
#define GAIN_34DB 0x17
|
||||
#define GAIN_36DB 0x18
|
||||
#define GAIN_38DB 0x19
|
||||
#define GAIN_40DB 0x1A
|
||||
#define GAIN_42DB 0x1B
|
||||
#define GAIN_44DB 0x1C
|
||||
#define GAIN_46DB 0x1D
|
||||
#define GAIN_48DB 0x1E
|
||||
#define GAIN_50DB 0x1F
|
||||
#define INPUT_MUTE 0x80
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* The POTS volume control use attenuation with 8 levels from 0dB to -28dB
|
||||
* with steps of 4dB each, the defines should be OR'ed together then sent
|
||||
* as the parameter to the mixer command to change the mixer settings.
|
||||
*
|
||||
******************************************************************************/
|
||||
#define MIXER_PORT_POTS_PLAY 0x0F00
|
||||
|
||||
#define POTS_ATT_00DB 0x00
|
||||
#define POTS_ATT_04DB 0x01
|
||||
#define POTS_ATT_08DB 0x02
|
||||
#define POTS_ATT_12DB 0x03
|
||||
#define POTS_ATT_16DB 0x04
|
||||
#define POTS_ATT_20DB 0x05
|
||||
#define POTS_ATT_24DB 0x06
|
||||
#define POTS_ATT_28DB 0x07
|
||||
#define POTS_MUTE 0x80
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* The DAA controls the interface to the PSTN port. The driver loads the
|
||||
* US coefficients by default, so if you live in a different country you
|
||||
* need to load the set for your countries phone system.
|
||||
*
|
||||
******************************************************************************/
|
||||
#define IXJCTL_DAA_COEFF_SET _IOW ('q', 0xD0, int)
|
||||
|
||||
#define DAA_US 1 /*PITA 8kHz */
|
||||
#define DAA_UK 2 /*ISAR34 8kHz */
|
||||
#define DAA_FRANCE 3 /* */
|
||||
#define DAA_GERMANY 4
|
||||
#define DAA_AUSTRALIA 5
|
||||
#define DAA_JAPAN 6
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Use IXJCTL_PORT to set or query the port the card is set to. If the
|
||||
* argument is set to PORT_QUERY, the return value of the ioctl will
|
||||
* indicate which port is currently in use, otherwise it will change the
|
||||
* port.
|
||||
*
|
||||
******************************************************************************/
|
||||
#define IXJCTL_PORT _IOW ('q', 0xD1, int)
|
||||
|
||||
#define PORT_QUERY 0
|
||||
#define PORT_POTS 1
|
||||
#define PORT_PSTN 2
|
||||
#define PORT_SPEAKER 3
|
||||
#define PORT_HANDSET 4
|
||||
|
||||
#define IXJCTL_PSTN_SET_STATE PHONE_PSTN_SET_STATE
|
||||
#define IXJCTL_PSTN_GET_STATE PHONE_PSTN_GET_STATE
|
||||
|
||||
#define PSTN_ON_HOOK 0
|
||||
#define PSTN_RINGING 1
|
||||
#define PSTN_OFF_HOOK 2
|
||||
#define PSTN_PULSE_DIAL 3
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* The DAA Analog GAIN sets 2 parameters at one time, the receive gain (AGRR),
|
||||
* and the transmit gain (AGX). OR together the components and pass them
|
||||
* as the parameter to IXJCTL_DAA_AGAIN. The default setting is both at 0dB.
|
||||
*
|
||||
******************************************************************************/
|
||||
#define IXJCTL_DAA_AGAIN _IOW ('q', 0xD2, int)
|
||||
|
||||
#define AGRR00DB 0x00 /* Analog gain in receive direction 0dB */
|
||||
#define AGRR3_5DB 0x10 /* Analog gain in receive direction 3.5dB */
|
||||
#define AGRR06DB 0x30 /* Analog gain in receive direction 6dB */
|
||||
|
||||
#define AGX00DB 0x00 /* Analog gain in transmit direction 0dB */
|
||||
#define AGX_6DB 0x04 /* Analog gain in transmit direction -6dB */
|
||||
#define AGX3_5DB 0x08 /* Analog gain in transmit direction 3.5dB */
|
||||
#define AGX_2_5B 0x0C /* Analog gain in transmit direction -2.5dB */
|
||||
|
||||
#define IXJCTL_PSTN_LINETEST _IO ('q', 0xD3)
|
||||
|
||||
#define IXJCTL_CID _IOR ('q', 0xD4, PHONE_CID *)
|
||||
#define IXJCTL_VMWI _IOR ('q', 0xD8, int)
|
||||
#define IXJCTL_CIDCW _IOW ('q', 0xD9, PHONE_CID *)
|
||||
/******************************************************************************
|
||||
*
|
||||
* The wink duration is tunable with this ioctl. The default wink duration
|
||||
* is 320ms. You do not need to use this ioctl if you do not require a
|
||||
* different wink duration.
|
||||
*
|
||||
******************************************************************************/
|
||||
#define IXJCTL_WINK_DURATION PHONE_WINK_DURATION
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* This ioctl will connect the POTS port to the PSTN port on the LineJACK
|
||||
* In order for this to work properly the port selection should be set to
|
||||
* the PSTN port with IXJCTL_PORT prior to calling this ioctl. This will
|
||||
* enable conference calls between PSTN callers and network callers.
|
||||
* Passing a 1 to this ioctl enables the POTS<->PSTN connection while
|
||||
* passing a 0 turns it back off.
|
||||
*
|
||||
******************************************************************************/
|
||||
#define IXJCTL_POTS_PSTN _IOW ('q', 0xD5, int)
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* IOCTLs added by request.
|
||||
*
|
||||
* IXJCTL_HZ sets the value your Linux kernel uses for HZ as defined in
|
||||
* /usr/include/asm/param.h, this determines the fundamental
|
||||
* frequency of the clock ticks on your Linux system. The kernel
|
||||
* must be rebuilt if you change this value, also all modules you
|
||||
* use (except this one) must be recompiled. The default value
|
||||
* is 100, and you only need to use this IOCTL if you use some
|
||||
* other value.
|
||||
*
|
||||
*
|
||||
* IXJCTL_RATE sets the number of times per second that the driver polls
|
||||
* the DSP. This value cannot be larger than HZ. By
|
||||
* increasing both of these values, you may be able to reduce
|
||||
* latency because the max hang time that can exist between the
|
||||
* driver and the DSP will be reduced.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
#define IXJCTL_HZ _IOW ('q', 0xE0, int)
|
||||
#define IXJCTL_RATE _IOW ('q', 0xE1, int)
|
||||
#define IXJCTL_FRAMES_READ _IOR ('q', 0xE2, unsigned long)
|
||||
#define IXJCTL_FRAMES_WRITTEN _IOR ('q', 0xE3, unsigned long)
|
||||
#define IXJCTL_READ_WAIT _IOR ('q', 0xE4, unsigned long)
|
||||
#define IXJCTL_WRITE_WAIT _IOR ('q', 0xE5, unsigned long)
|
||||
#define IXJCTL_DRYBUFFER_READ _IOR ('q', 0xE6, unsigned long)
|
||||
#define IXJCTL_DRYBUFFER_CLEAR _IO ('q', 0xE7)
|
||||
#define IXJCTL_DTMF_PRESCALE _IOW ('q', 0xE8, int)
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* This ioctl allows the user application to control what events the driver
|
||||
* will send signals for, and what signals it will send for which event.
|
||||
* By default, if signaling is enabled, all events will send SIGIO when
|
||||
* they occur. To disable signals for an event set the signal to 0.
|
||||
*
|
||||
******************************************************************************/
|
||||
typedef enum {
|
||||
SIG_DTMF_READY,
|
||||
SIG_HOOKSTATE,
|
||||
SIG_FLASH,
|
||||
SIG_PSTN_RING,
|
||||
SIG_CALLER_ID,
|
||||
SIG_PSTN_WINK,
|
||||
SIG_F0, SIG_F1, SIG_F2, SIG_F3,
|
||||
SIG_FC0, SIG_FC1, SIG_FC2, SIG_FC3,
|
||||
SIG_READ_READY = 33,
|
||||
SIG_WRITE_READY = 34
|
||||
} IXJ_SIGEVENT;
|
||||
|
||||
typedef struct {
|
||||
unsigned int event;
|
||||
int signal;
|
||||
} IXJ_SIGDEF;
|
||||
|
||||
#define IXJCTL_SIGCTL _IOW ('q', 0xE9, IXJ_SIGDEF *)
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* These ioctls allow the user application to change the gain in the
|
||||
* Smart Cable of the Internet Phone Card. Sending -1 as a value will cause
|
||||
* return value to be the current setting. Valid values to set are 0x00 - 0x1F
|
||||
*
|
||||
* 11111 = +12 dB
|
||||
* 10111 = 0 dB
|
||||
* 00000 = -34.5 dB
|
||||
*
|
||||
* IXJCTL_SC_RXG sets the Receive gain
|
||||
* IXJCTL_SC_TXG sets the Transmit gain
|
||||
*
|
||||
******************************************************************************/
|
||||
#define IXJCTL_SC_RXG _IOW ('q', 0xEA, int)
|
||||
#define IXJCTL_SC_TXG _IOW ('q', 0xEB, int)
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* The intercom IOCTL's short the output from one card to the input of the
|
||||
* other and vice versa (actually done in the DSP read function). It is only
|
||||
* necessary to execute the IOCTL on one card, but it is necessary to have
|
||||
* both devices open to be able to detect hook switch changes. The record
|
||||
* codec and rate of each card must match the playback codec and rate of
|
||||
* the other card for this to work properly.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
#define IXJCTL_INTERCOM_START _IOW ('q', 0xFD, int)
|
||||
#define IXJCTL_INTERCOM_STOP _IOW ('q', 0xFE, int)
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* new structure for accessing raw filter information
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
typedef struct {
|
||||
unsigned int filter;
|
||||
char enable;
|
||||
unsigned int coeff[19];
|
||||
} IXJ_FILTER_RAW;
|
||||
|
||||
#endif
|
||||
@@ -396,6 +396,10 @@ struct kvm_run {
|
||||
char padding[256];
|
||||
};
|
||||
|
||||
/* 2048 is the size of the char array used to bound/pad the size
|
||||
* of the union that holds sync regs.
|
||||
*/
|
||||
#define SYNC_REGS_SIZE_BYTES 2048
|
||||
/*
|
||||
* shared registers between kvm and userspace.
|
||||
* kvm_valid_regs specifies the register classes set by the host
|
||||
@@ -407,7 +411,7 @@ struct kvm_run {
|
||||
__u64 kvm_dirty_regs;
|
||||
union {
|
||||
struct kvm_sync_regs regs;
|
||||
char padding[2048];
|
||||
char padding[SYNC_REGS_SIZE_BYTES];
|
||||
} s;
|
||||
};
|
||||
|
||||
@@ -672,6 +676,13 @@ struct kvm_ioeventfd {
|
||||
__u8 pad[36];
|
||||
};
|
||||
|
||||
#define KVM_X86_DISABLE_EXITS_MWAIT (1 << 0)
|
||||
#define KVM_X86_DISABLE_EXITS_HTL (1 << 1)
|
||||
#define KVM_X86_DISABLE_EXITS_PAUSE (1 << 2)
|
||||
#define KVM_X86_DISABLE_VALID_EXITS (KVM_X86_DISABLE_EXITS_MWAIT | \
|
||||
KVM_X86_DISABLE_EXITS_HTL | \
|
||||
KVM_X86_DISABLE_EXITS_PAUSE)
|
||||
|
||||
/* for KVM_ENABLE_CAP */
|
||||
struct kvm_enable_cap {
|
||||
/* in */
|
||||
@@ -925,7 +936,7 @@ struct kvm_ppc_resize_hpt {
|
||||
#define KVM_CAP_S390_GS 140
|
||||
#define KVM_CAP_S390_AIS 141
|
||||
#define KVM_CAP_SPAPR_TCE_VFIO 142
|
||||
#define KVM_CAP_X86_GUEST_MWAIT 143
|
||||
#define KVM_CAP_X86_DISABLE_EXITS 143
|
||||
#define KVM_CAP_ARM_USER_IRQ 144
|
||||
#define KVM_CAP_S390_CMMA_MIGRATION 145
|
||||
#define KVM_CAP_PPC_FWNMI 146
|
||||
@@ -936,6 +947,7 @@ struct kvm_ppc_resize_hpt {
|
||||
#define KVM_CAP_PPC_GET_CPU_CHAR 151
|
||||
#define KVM_CAP_S390_BPB 152
|
||||
#define KVM_CAP_GET_MSR_FEATURES 153
|
||||
#define KVM_CAP_HYPERV_EVENTFD 154
|
||||
|
||||
#ifdef KVM_CAP_IRQ_ROUTING
|
||||
|
||||
@@ -1375,6 +1387,10 @@ struct kvm_enc_region {
|
||||
#define KVM_MEMORY_ENCRYPT_REG_REGION _IOR(KVMIO, 0xbb, struct kvm_enc_region)
|
||||
#define KVM_MEMORY_ENCRYPT_UNREG_REGION _IOR(KVMIO, 0xbc, struct kvm_enc_region)
|
||||
|
||||
/* Available with KVM_CAP_HYPERV_EVENTFD */
|
||||
#define KVM_HYPERV_EVENTFD _IOW(KVMIO, 0xbd, struct kvm_hyperv_eventfd)
|
||||
|
||||
|
||||
/* Secure Encrypted Virtualization command */
|
||||
enum sev_cmd_id {
|
||||
/* Guest initialization commands */
|
||||
@@ -1515,4 +1531,14 @@ struct kvm_assigned_msix_entry {
|
||||
#define KVM_ARM_DEV_EL1_PTIMER (1 << 1)
|
||||
#define KVM_ARM_DEV_PMU (1 << 2)
|
||||
|
||||
struct kvm_hyperv_eventfd {
|
||||
__u32 conn_id;
|
||||
__s32 fd;
|
||||
__u32 flags;
|
||||
__u32 padding[3];
|
||||
};
|
||||
|
||||
#define KVM_HYPERV_CONN_ID_MASK 0x00ffffff
|
||||
#define KVM_HYPERV_EVENTFD_DEASSIGN (1 << 0)
|
||||
|
||||
#endif /* __LINUX_KVM_H */
|
||||
|
||||
@@ -185,6 +185,7 @@ struct lirc_scancode {
|
||||
* @RC_PROTO_SHARP: Sharp protocol
|
||||
* @RC_PROTO_XMP: XMP protocol
|
||||
* @RC_PROTO_CEC: CEC protocol
|
||||
* @RC_PROTO_IMON: iMon Pad protocol
|
||||
*/
|
||||
enum rc_proto {
|
||||
RC_PROTO_UNKNOWN = 0,
|
||||
@@ -210,6 +211,7 @@ enum rc_proto {
|
||||
RC_PROTO_SHARP = 20,
|
||||
RC_PROTO_XMP = 21,
|
||||
RC_PROTO_CEC = 22,
|
||||
RC_PROTO_IMON = 23,
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
+170
-184
@@ -15,10 +15,6 @@
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __LINUX_MEDIA_H
|
||||
@@ -42,59 +38,93 @@ struct media_device_info {
|
||||
__u32 reserved[31];
|
||||
};
|
||||
|
||||
#define MEDIA_ENT_ID_FLAG_NEXT (1 << 31)
|
||||
|
||||
/*
|
||||
* Initial value to be used when a new entity is created
|
||||
* Drivers should change it to something useful
|
||||
*/
|
||||
#define MEDIA_ENT_F_UNKNOWN 0x00000000
|
||||
|
||||
/*
|
||||
* Base number ranges for entity functions
|
||||
*
|
||||
* NOTE: those ranges and entity function number are phased just to
|
||||
* make it easier to maintain this file. Userspace should not rely on
|
||||
* the ranges to identify a group of function types, as newer
|
||||
* functions can be added with any name within the full u32 range.
|
||||
* NOTE: Userspace should not rely on these ranges to identify a group
|
||||
* of function types, as newer functions can be added with any name within
|
||||
* the full u32 range.
|
||||
*
|
||||
* Some older functions use the MEDIA_ENT_F_OLD_*_BASE range. Do not
|
||||
* change this, this is for backwards compatibility. When adding new
|
||||
* functions always use MEDIA_ENT_F_BASE.
|
||||
*/
|
||||
#define MEDIA_ENT_F_BASE 0x00000000
|
||||
#define MEDIA_ENT_F_OLD_BASE 0x00010000
|
||||
#define MEDIA_ENT_F_OLD_SUBDEV_BASE 0x00020000
|
||||
#define MEDIA_ENT_F_BASE 0x00000000
|
||||
#define MEDIA_ENT_F_OLD_BASE 0x00010000
|
||||
#define MEDIA_ENT_F_OLD_SUBDEV_BASE 0x00020000
|
||||
|
||||
/*
|
||||
* DVB entities
|
||||
* Initial value to be used when a new entity is created
|
||||
* Drivers should change it to something useful.
|
||||
*/
|
||||
#define MEDIA_ENT_F_DTV_DEMOD (MEDIA_ENT_F_BASE + 0x00001)
|
||||
#define MEDIA_ENT_F_TS_DEMUX (MEDIA_ENT_F_BASE + 0x00002)
|
||||
#define MEDIA_ENT_F_DTV_CA (MEDIA_ENT_F_BASE + 0x00003)
|
||||
#define MEDIA_ENT_F_DTV_NET_DECAP (MEDIA_ENT_F_BASE + 0x00004)
|
||||
#define MEDIA_ENT_F_UNKNOWN MEDIA_ENT_F_BASE
|
||||
|
||||
/*
|
||||
* I/O entities
|
||||
* Subdevs are initialized with MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN in order
|
||||
* to preserve backward compatibility. Drivers must change to the proper
|
||||
* subdev type before registering the entity.
|
||||
*/
|
||||
#define MEDIA_ENT_F_IO_DTV (MEDIA_ENT_F_BASE + 0x01001)
|
||||
#define MEDIA_ENT_F_IO_VBI (MEDIA_ENT_F_BASE + 0x01002)
|
||||
#define MEDIA_ENT_F_IO_SWRADIO (MEDIA_ENT_F_BASE + 0x01003)
|
||||
#define MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN MEDIA_ENT_F_OLD_SUBDEV_BASE
|
||||
|
||||
/*
|
||||
* Analog TV IF-PLL decoders
|
||||
* DVB entity functions
|
||||
*/
|
||||
#define MEDIA_ENT_F_DTV_DEMOD (MEDIA_ENT_F_BASE + 0x00001)
|
||||
#define MEDIA_ENT_F_TS_DEMUX (MEDIA_ENT_F_BASE + 0x00002)
|
||||
#define MEDIA_ENT_F_DTV_CA (MEDIA_ENT_F_BASE + 0x00003)
|
||||
#define MEDIA_ENT_F_DTV_NET_DECAP (MEDIA_ENT_F_BASE + 0x00004)
|
||||
|
||||
/*
|
||||
* I/O entity functions
|
||||
*/
|
||||
#define MEDIA_ENT_F_IO_V4L (MEDIA_ENT_F_OLD_BASE + 1)
|
||||
#define MEDIA_ENT_F_IO_DTV (MEDIA_ENT_F_BASE + 0x01001)
|
||||
#define MEDIA_ENT_F_IO_VBI (MEDIA_ENT_F_BASE + 0x01002)
|
||||
#define MEDIA_ENT_F_IO_SWRADIO (MEDIA_ENT_F_BASE + 0x01003)
|
||||
|
||||
/*
|
||||
* Sensor functions
|
||||
*/
|
||||
#define MEDIA_ENT_F_CAM_SENSOR (MEDIA_ENT_F_OLD_SUBDEV_BASE + 1)
|
||||
#define MEDIA_ENT_F_FLASH (MEDIA_ENT_F_OLD_SUBDEV_BASE + 2)
|
||||
#define MEDIA_ENT_F_LENS (MEDIA_ENT_F_OLD_SUBDEV_BASE + 3)
|
||||
|
||||
/*
|
||||
* Video decoder functions
|
||||
*/
|
||||
#define MEDIA_ENT_F_ATV_DECODER (MEDIA_ENT_F_OLD_SUBDEV_BASE + 4)
|
||||
#define MEDIA_ENT_F_DTV_DECODER (MEDIA_ENT_F_BASE + 0x6001)
|
||||
|
||||
/*
|
||||
* Digital TV, analog TV, radio and/or software defined radio tuner functions.
|
||||
*
|
||||
* It is a responsibility of the master/bridge drivers to add connectors
|
||||
* and links for MEDIA_ENT_F_TUNER. Please notice that some old tuners
|
||||
* may require the usage of separate I2C chips to decode analog TV signals,
|
||||
* when the master/bridge chipset doesn't have its own TV standard decoder.
|
||||
* On such cases, the IF-PLL staging is mapped via one or two entities:
|
||||
* MEDIA_ENT_F_IF_VID_DECODER and/or MEDIA_ENT_F_IF_AUD_DECODER.
|
||||
*/
|
||||
#define MEDIA_ENT_F_TUNER (MEDIA_ENT_F_OLD_SUBDEV_BASE + 5)
|
||||
|
||||
/*
|
||||
* Analog TV IF-PLL decoder functions
|
||||
*
|
||||
* It is a responsibility of the master/bridge drivers to create links
|
||||
* for MEDIA_ENT_F_IF_VID_DECODER and MEDIA_ENT_F_IF_AUD_DECODER.
|
||||
*/
|
||||
#define MEDIA_ENT_F_IF_VID_DECODER (MEDIA_ENT_F_BASE + 0x02001)
|
||||
#define MEDIA_ENT_F_IF_AUD_DECODER (MEDIA_ENT_F_BASE + 0x02002)
|
||||
#define MEDIA_ENT_F_IF_VID_DECODER (MEDIA_ENT_F_BASE + 0x02001)
|
||||
#define MEDIA_ENT_F_IF_AUD_DECODER (MEDIA_ENT_F_BASE + 0x02002)
|
||||
|
||||
/*
|
||||
* Audio Entity Functions
|
||||
* Audio entity functions
|
||||
*/
|
||||
#define MEDIA_ENT_F_AUDIO_CAPTURE (MEDIA_ENT_F_BASE + 0x03001)
|
||||
#define MEDIA_ENT_F_AUDIO_PLAYBACK (MEDIA_ENT_F_BASE + 0x03002)
|
||||
#define MEDIA_ENT_F_AUDIO_MIXER (MEDIA_ENT_F_BASE + 0x03003)
|
||||
#define MEDIA_ENT_F_AUDIO_CAPTURE (MEDIA_ENT_F_BASE + 0x03001)
|
||||
#define MEDIA_ENT_F_AUDIO_PLAYBACK (MEDIA_ENT_F_BASE + 0x03002)
|
||||
#define MEDIA_ENT_F_AUDIO_MIXER (MEDIA_ENT_F_BASE + 0x03003)
|
||||
|
||||
/*
|
||||
* Processing entities
|
||||
* Processing entity functions
|
||||
*/
|
||||
#define MEDIA_ENT_F_PROC_VIDEO_COMPOSER (MEDIA_ENT_F_BASE + 0x4001)
|
||||
#define MEDIA_ENT_F_PROC_VIDEO_PIXEL_FORMATTER (MEDIA_ENT_F_BASE + 0x4002)
|
||||
@@ -104,96 +134,17 @@ struct media_device_info {
|
||||
#define MEDIA_ENT_F_PROC_VIDEO_STATISTICS (MEDIA_ENT_F_BASE + 0x4006)
|
||||
|
||||
/*
|
||||
* Switch and bridge entitites
|
||||
* Switch and bridge entity functions
|
||||
*/
|
||||
#define MEDIA_ENT_F_VID_MUX (MEDIA_ENT_F_BASE + 0x5001)
|
||||
#define MEDIA_ENT_F_VID_IF_BRIDGE (MEDIA_ENT_F_BASE + 0x5002)
|
||||
|
||||
/*
|
||||
* Connectors
|
||||
*/
|
||||
/* It is a responsibility of the entity drivers to add connectors and links */
|
||||
#ifdef __KERNEL__
|
||||
/*
|
||||
* For now, it should not be used in userspace, as some
|
||||
* definitions may change
|
||||
*/
|
||||
|
||||
#define MEDIA_ENT_F_CONN_RF (MEDIA_ENT_F_BASE + 0x30001)
|
||||
#define MEDIA_ENT_F_CONN_SVIDEO (MEDIA_ENT_F_BASE + 0x30002)
|
||||
#define MEDIA_ENT_F_CONN_COMPOSITE (MEDIA_ENT_F_BASE + 0x30003)
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Don't touch on those. The ranges MEDIA_ENT_F_OLD_BASE and
|
||||
* MEDIA_ENT_F_OLD_SUBDEV_BASE are kept to keep backward compatibility
|
||||
* with the legacy v1 API.The number range is out of range by purpose:
|
||||
* several previously reserved numbers got excluded from this range.
|
||||
*
|
||||
* Subdevs are initialized with MEDIA_ENT_T_V4L2_SUBDEV_UNKNOWN,
|
||||
* in order to preserve backward compatibility.
|
||||
* Drivers must change to the proper subdev type before
|
||||
* registering the entity.
|
||||
*/
|
||||
|
||||
#define MEDIA_ENT_F_IO_V4L (MEDIA_ENT_F_OLD_BASE + 1)
|
||||
|
||||
#define MEDIA_ENT_F_CAM_SENSOR (MEDIA_ENT_F_OLD_SUBDEV_BASE + 1)
|
||||
#define MEDIA_ENT_F_FLASH (MEDIA_ENT_F_OLD_SUBDEV_BASE + 2)
|
||||
#define MEDIA_ENT_F_LENS (MEDIA_ENT_F_OLD_SUBDEV_BASE + 3)
|
||||
#define MEDIA_ENT_F_ATV_DECODER (MEDIA_ENT_F_OLD_SUBDEV_BASE + 4)
|
||||
/*
|
||||
* It is a responsibility of the master/bridge drivers to add connectors
|
||||
* and links for MEDIA_ENT_F_TUNER. Please notice that some old tuners
|
||||
* may require the usage of separate I2C chips to decode analog TV signals,
|
||||
* when the master/bridge chipset doesn't have its own TV standard decoder.
|
||||
* On such cases, the IF-PLL staging is mapped via one or two entities:
|
||||
* MEDIA_ENT_F_IF_VID_DECODER and/or MEDIA_ENT_F_IF_AUD_DECODER.
|
||||
*/
|
||||
#define MEDIA_ENT_F_TUNER (MEDIA_ENT_F_OLD_SUBDEV_BASE + 5)
|
||||
|
||||
#define MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN MEDIA_ENT_F_OLD_SUBDEV_BASE
|
||||
|
||||
#if !defined(__KERNEL__) || defined(__NEED_MEDIA_LEGACY_API)
|
||||
|
||||
/*
|
||||
* Legacy symbols used to avoid userspace compilation breakages
|
||||
*
|
||||
* Those symbols map the entity function into types and should be
|
||||
* used only on legacy programs for legacy hardware. Don't rely
|
||||
* on those for MEDIA_IOC_G_TOPOLOGY.
|
||||
*/
|
||||
#define MEDIA_ENT_TYPE_SHIFT 16
|
||||
#define MEDIA_ENT_TYPE_MASK 0x00ff0000
|
||||
#define MEDIA_ENT_SUBTYPE_MASK 0x0000ffff
|
||||
|
||||
/* End of the old subdev reserved numberspace */
|
||||
#define MEDIA_ENT_T_DEVNODE_UNKNOWN (MEDIA_ENT_T_DEVNODE | \
|
||||
MEDIA_ENT_SUBTYPE_MASK)
|
||||
|
||||
#define MEDIA_ENT_T_DEVNODE MEDIA_ENT_F_OLD_BASE
|
||||
#define MEDIA_ENT_T_DEVNODE_V4L MEDIA_ENT_F_IO_V4L
|
||||
#define MEDIA_ENT_T_DEVNODE_FB (MEDIA_ENT_T_DEVNODE + 2)
|
||||
#define MEDIA_ENT_T_DEVNODE_ALSA (MEDIA_ENT_T_DEVNODE + 3)
|
||||
#define MEDIA_ENT_T_DEVNODE_DVB (MEDIA_ENT_T_DEVNODE + 4)
|
||||
|
||||
#define MEDIA_ENT_T_UNKNOWN MEDIA_ENT_F_UNKNOWN
|
||||
#define MEDIA_ENT_T_V4L2_VIDEO MEDIA_ENT_F_IO_V4L
|
||||
#define MEDIA_ENT_T_V4L2_SUBDEV MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN
|
||||
#define MEDIA_ENT_T_V4L2_SUBDEV_SENSOR MEDIA_ENT_F_CAM_SENSOR
|
||||
#define MEDIA_ENT_T_V4L2_SUBDEV_FLASH MEDIA_ENT_F_FLASH
|
||||
#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 */
|
||||
#define MEDIA_ENT_FL_DEFAULT (1 << 0)
|
||||
#define MEDIA_ENT_FL_CONNECTOR (1 << 1)
|
||||
#define MEDIA_ENT_FL_DEFAULT (1 << 0)
|
||||
#define MEDIA_ENT_FL_CONNECTOR (1 << 1)
|
||||
|
||||
/* OR with the entity id value to find the next entity */
|
||||
#define MEDIA_ENT_ID_FLAG_NEXT (1 << 31)
|
||||
|
||||
struct media_entity_desc {
|
||||
__u32 id;
|
||||
@@ -214,7 +165,7 @@ struct media_entity_desc {
|
||||
__u32 minor;
|
||||
} dev;
|
||||
|
||||
#if 1
|
||||
#if !defined(__KERNEL__)
|
||||
/*
|
||||
* TODO: this shouldn't have been added without
|
||||
* actual drivers that use this. When the first real driver
|
||||
@@ -225,24 +176,17 @@ struct media_entity_desc {
|
||||
* contain the subdevice information. In addition, struct dev
|
||||
* can only refer to a single device, and not to multiple (e.g.
|
||||
* pcm and mixer devices).
|
||||
*
|
||||
* So for now mark this as a to do.
|
||||
*/
|
||||
struct {
|
||||
__u32 card;
|
||||
__u32 device;
|
||||
__u32 subdevice;
|
||||
} alsa;
|
||||
#endif
|
||||
|
||||
#if 1
|
||||
/*
|
||||
* DEPRECATED: previous node specifications. Kept just to
|
||||
* avoid breaking compilation, but media_entity_desc.dev
|
||||
* should be used instead. In particular, alsa and dvb
|
||||
* fields below are wrong: for all devnodes, there should
|
||||
* be just major/minor inside the struct, as this is enough
|
||||
* to represent any devnode, no matter what type.
|
||||
* avoid breaking compilation. Use media_entity_desc.dev
|
||||
* instead.
|
||||
*/
|
||||
struct {
|
||||
__u32 major;
|
||||
@@ -261,9 +205,9 @@ struct media_entity_desc {
|
||||
};
|
||||
};
|
||||
|
||||
#define MEDIA_PAD_FL_SINK (1 << 0)
|
||||
#define MEDIA_PAD_FL_SOURCE (1 << 1)
|
||||
#define MEDIA_PAD_FL_MUST_CONNECT (1 << 2)
|
||||
#define MEDIA_PAD_FL_SINK (1 << 0)
|
||||
#define MEDIA_PAD_FL_SOURCE (1 << 1)
|
||||
#define MEDIA_PAD_FL_MUST_CONNECT (1 << 2)
|
||||
|
||||
struct media_pad_desc {
|
||||
__u32 entity; /* entity ID */
|
||||
@@ -272,13 +216,13 @@ struct media_pad_desc {
|
||||
__u32 reserved[2];
|
||||
};
|
||||
|
||||
#define MEDIA_LNK_FL_ENABLED (1 << 0)
|
||||
#define MEDIA_LNK_FL_IMMUTABLE (1 << 1)
|
||||
#define MEDIA_LNK_FL_DYNAMIC (1 << 2)
|
||||
#define MEDIA_LNK_FL_ENABLED (1 << 0)
|
||||
#define MEDIA_LNK_FL_IMMUTABLE (1 << 1)
|
||||
#define MEDIA_LNK_FL_DYNAMIC (1 << 2)
|
||||
|
||||
#define MEDIA_LNK_FL_LINK_TYPE (0xf << 28)
|
||||
# define MEDIA_LNK_FL_DATA_LINK (0 << 28)
|
||||
# define MEDIA_LNK_FL_INTERFACE_LINK (1 << 28)
|
||||
#define MEDIA_LNK_FL_LINK_TYPE (0xf << 28)
|
||||
# define MEDIA_LNK_FL_DATA_LINK (0 << 28)
|
||||
# define MEDIA_LNK_FL_INTERFACE_LINK (1 << 28)
|
||||
|
||||
struct media_link_desc {
|
||||
struct media_pad_desc source;
|
||||
@@ -298,57 +242,47 @@ struct media_links_enum {
|
||||
|
||||
/* Interface type ranges */
|
||||
|
||||
#define MEDIA_INTF_T_DVB_BASE 0x00000100
|
||||
#define MEDIA_INTF_T_V4L_BASE 0x00000200
|
||||
#define MEDIA_INTF_T_ALSA_BASE 0x00000300
|
||||
#define MEDIA_INTF_T_DVB_BASE 0x00000100
|
||||
#define MEDIA_INTF_T_V4L_BASE 0x00000200
|
||||
|
||||
/* Interface types */
|
||||
|
||||
#define MEDIA_INTF_T_DVB_FE (MEDIA_INTF_T_DVB_BASE)
|
||||
#define MEDIA_INTF_T_DVB_DEMUX (MEDIA_INTF_T_DVB_BASE + 1)
|
||||
#define MEDIA_INTF_T_DVB_DVR (MEDIA_INTF_T_DVB_BASE + 2)
|
||||
#define MEDIA_INTF_T_DVB_CA (MEDIA_INTF_T_DVB_BASE + 3)
|
||||
#define MEDIA_INTF_T_DVB_NET (MEDIA_INTF_T_DVB_BASE + 4)
|
||||
#define MEDIA_INTF_T_DVB_FE (MEDIA_INTF_T_DVB_BASE)
|
||||
#define MEDIA_INTF_T_DVB_DEMUX (MEDIA_INTF_T_DVB_BASE + 1)
|
||||
#define MEDIA_INTF_T_DVB_DVR (MEDIA_INTF_T_DVB_BASE + 2)
|
||||
#define MEDIA_INTF_T_DVB_CA (MEDIA_INTF_T_DVB_BASE + 3)
|
||||
#define MEDIA_INTF_T_DVB_NET (MEDIA_INTF_T_DVB_BASE + 4)
|
||||
|
||||
#define MEDIA_INTF_T_V4L_VIDEO (MEDIA_INTF_T_V4L_BASE)
|
||||
#define MEDIA_INTF_T_V4L_VBI (MEDIA_INTF_T_V4L_BASE + 1)
|
||||
#define MEDIA_INTF_T_V4L_RADIO (MEDIA_INTF_T_V4L_BASE + 2)
|
||||
#define MEDIA_INTF_T_V4L_SUBDEV (MEDIA_INTF_T_V4L_BASE + 3)
|
||||
#define MEDIA_INTF_T_V4L_SWRADIO (MEDIA_INTF_T_V4L_BASE + 4)
|
||||
#define MEDIA_INTF_T_V4L_TOUCH (MEDIA_INTF_T_V4L_BASE + 5)
|
||||
#define MEDIA_INTF_T_V4L_VIDEO (MEDIA_INTF_T_V4L_BASE)
|
||||
#define MEDIA_INTF_T_V4L_VBI (MEDIA_INTF_T_V4L_BASE + 1)
|
||||
#define MEDIA_INTF_T_V4L_RADIO (MEDIA_INTF_T_V4L_BASE + 2)
|
||||
#define MEDIA_INTF_T_V4L_SUBDEV (MEDIA_INTF_T_V4L_BASE + 3)
|
||||
#define MEDIA_INTF_T_V4L_SWRADIO (MEDIA_INTF_T_V4L_BASE + 4)
|
||||
#define MEDIA_INTF_T_V4L_TOUCH (MEDIA_INTF_T_V4L_BASE + 5)
|
||||
|
||||
#define MEDIA_INTF_T_ALSA_PCM_CAPTURE (MEDIA_INTF_T_ALSA_BASE)
|
||||
#define MEDIA_INTF_T_ALSA_PCM_PLAYBACK (MEDIA_INTF_T_ALSA_BASE + 1)
|
||||
#define MEDIA_INTF_T_ALSA_CONTROL (MEDIA_INTF_T_ALSA_BASE + 2)
|
||||
#define MEDIA_INTF_T_ALSA_COMPRESS (MEDIA_INTF_T_ALSA_BASE + 3)
|
||||
#define MEDIA_INTF_T_ALSA_RAWMIDI (MEDIA_INTF_T_ALSA_BASE + 4)
|
||||
#define MEDIA_INTF_T_ALSA_HWDEP (MEDIA_INTF_T_ALSA_BASE + 5)
|
||||
#define MEDIA_INTF_T_ALSA_SEQUENCER (MEDIA_INTF_T_ALSA_BASE + 6)
|
||||
#define MEDIA_INTF_T_ALSA_TIMER (MEDIA_INTF_T_ALSA_BASE + 7)
|
||||
#if defined(__KERNEL__)
|
||||
|
||||
/*
|
||||
* Connector functions
|
||||
*
|
||||
* For now these should not be used in userspace, as some definitions may
|
||||
* change.
|
||||
*
|
||||
* It is the responsibility of the entity drivers to add connectors and links.
|
||||
*/
|
||||
#define MEDIA_ENT_F_CONN_RF (MEDIA_ENT_F_BASE + 0x30001)
|
||||
#define MEDIA_ENT_F_CONN_SVIDEO (MEDIA_ENT_F_BASE + 0x30002)
|
||||
#define MEDIA_ENT_F_CONN_COMPOSITE (MEDIA_ENT_F_BASE + 0x30003)
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* MC next gen API definitions
|
||||
*
|
||||
* NOTE: The declarations below are close to the MC RFC for the Media
|
||||
* Controller, the next generation. Yet, there are a few adjustments
|
||||
* to do, as we want to be able to have a functional API before
|
||||
* the MC properties change. Those will be properly marked below.
|
||||
* Please also notice that I removed "num_pads", "num_links",
|
||||
* from the proposal, as a proper userspace application will likely
|
||||
* use lists for pads/links, just as we intend to do in Kernelspace.
|
||||
* The API definition should be freed from fields that are bound to
|
||||
* some specific data structure.
|
||||
*
|
||||
* FIXME: Currently, I opted to name the new types as "media_v2", as this
|
||||
* won't cause any conflict with the Kernelspace namespace, nor with
|
||||
* the previous kAPI media_*_desc namespace. This can be changed
|
||||
* later, before the adding this API upstream.
|
||||
*/
|
||||
|
||||
|
||||
struct media_v2_entity {
|
||||
__u32 id;
|
||||
char name[64]; /* FIXME: move to a property? (RFC says so) */
|
||||
char name[64];
|
||||
__u32 function; /* Main function of the entity */
|
||||
__u32 reserved[6];
|
||||
} __attribute__ ((packed));
|
||||
@@ -408,10 +342,62 @@ struct media_v2_topology {
|
||||
|
||||
/* ioctls */
|
||||
|
||||
#define MEDIA_IOC_DEVICE_INFO _IOWR('|', 0x00, struct media_device_info)
|
||||
#define MEDIA_IOC_ENUM_ENTITIES _IOWR('|', 0x01, struct media_entity_desc)
|
||||
#define MEDIA_IOC_ENUM_LINKS _IOWR('|', 0x02, struct media_links_enum)
|
||||
#define MEDIA_IOC_SETUP_LINK _IOWR('|', 0x03, struct media_link_desc)
|
||||
#define MEDIA_IOC_G_TOPOLOGY _IOWR('|', 0x04, struct media_v2_topology)
|
||||
#define MEDIA_IOC_DEVICE_INFO _IOWR('|', 0x00, struct media_device_info)
|
||||
#define MEDIA_IOC_ENUM_ENTITIES _IOWR('|', 0x01, struct media_entity_desc)
|
||||
#define MEDIA_IOC_ENUM_LINKS _IOWR('|', 0x02, struct media_links_enum)
|
||||
#define MEDIA_IOC_SETUP_LINK _IOWR('|', 0x03, struct media_link_desc)
|
||||
#define MEDIA_IOC_G_TOPOLOGY _IOWR('|', 0x04, struct media_v2_topology)
|
||||
|
||||
#if !defined(__KERNEL__) || defined(__NEED_MEDIA_LEGACY_API)
|
||||
|
||||
/*
|
||||
* Legacy symbols used to avoid userspace compilation breakages.
|
||||
* Do not use any of this in new applications!
|
||||
*
|
||||
* Those symbols map the entity function into types and should be
|
||||
* used only on legacy programs for legacy hardware. Don't rely
|
||||
* on those for MEDIA_IOC_G_TOPOLOGY.
|
||||
*/
|
||||
#define MEDIA_ENT_TYPE_SHIFT 16
|
||||
#define MEDIA_ENT_TYPE_MASK 0x00ff0000
|
||||
#define MEDIA_ENT_SUBTYPE_MASK 0x0000ffff
|
||||
|
||||
#define MEDIA_ENT_T_DEVNODE_UNKNOWN (MEDIA_ENT_F_OLD_BASE | \
|
||||
MEDIA_ENT_SUBTYPE_MASK)
|
||||
|
||||
#define MEDIA_ENT_T_DEVNODE MEDIA_ENT_F_OLD_BASE
|
||||
#define MEDIA_ENT_T_DEVNODE_V4L MEDIA_ENT_F_IO_V4L
|
||||
#define MEDIA_ENT_T_DEVNODE_FB (MEDIA_ENT_F_OLD_BASE + 2)
|
||||
#define MEDIA_ENT_T_DEVNODE_ALSA (MEDIA_ENT_F_OLD_BASE + 3)
|
||||
#define MEDIA_ENT_T_DEVNODE_DVB (MEDIA_ENT_F_OLD_BASE + 4)
|
||||
|
||||
#define MEDIA_ENT_T_UNKNOWN MEDIA_ENT_F_UNKNOWN
|
||||
#define MEDIA_ENT_T_V4L2_VIDEO MEDIA_ENT_F_IO_V4L
|
||||
#define MEDIA_ENT_T_V4L2_SUBDEV MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN
|
||||
#define MEDIA_ENT_T_V4L2_SUBDEV_SENSOR MEDIA_ENT_F_CAM_SENSOR
|
||||
#define MEDIA_ENT_T_V4L2_SUBDEV_FLASH MEDIA_ENT_F_FLASH
|
||||
#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
|
||||
|
||||
/*
|
||||
* There is still no ALSA support in the media controller. These
|
||||
* defines should not have been added and we leave them here only
|
||||
* in case some application tries to use these defines.
|
||||
*/
|
||||
#define MEDIA_INTF_T_ALSA_BASE 0x00000300
|
||||
#define MEDIA_INTF_T_ALSA_PCM_CAPTURE (MEDIA_INTF_T_ALSA_BASE)
|
||||
#define MEDIA_INTF_T_ALSA_PCM_PLAYBACK (MEDIA_INTF_T_ALSA_BASE + 1)
|
||||
#define MEDIA_INTF_T_ALSA_CONTROL (MEDIA_INTF_T_ALSA_BASE + 2)
|
||||
#define MEDIA_INTF_T_ALSA_COMPRESS (MEDIA_INTF_T_ALSA_BASE + 3)
|
||||
#define MEDIA_INTF_T_ALSA_RAWMIDI (MEDIA_INTF_T_ALSA_BASE + 4)
|
||||
#define MEDIA_INTF_T_ALSA_HWDEP (MEDIA_INTF_T_ALSA_BASE + 5)
|
||||
#define MEDIA_INTF_T_ALSA_SEQUENCER (MEDIA_INTF_T_ALSA_BASE + 6)
|
||||
#define MEDIA_INTF_T_ALSA_TIMER (MEDIA_INTF_T_ALSA_BASE + 7)
|
||||
|
||||
/* Obsolete symbol for media_version, no longer used in the kernel */
|
||||
#define MEDIA_API_VERSION KERNEL_VERSION(0, 1, 0)
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* __LINUX_MEDIA_H */
|
||||
|
||||
@@ -10,7 +10,9 @@
|
||||
* The MS-DOS filesystem constants/structures
|
||||
*/
|
||||
|
||||
#ifndef SECTOR_SIZE
|
||||
#define SECTOR_SIZE 512 /* sector size (bytes) */
|
||||
#endif
|
||||
#define SECTOR_BITS 9 /* log2(SECTOR_SIZE) */
|
||||
#define MSDOS_DPB (MSDOS_DPS) /* dir entries per block */
|
||||
#define MSDOS_DPB_BITS 4 /* log2(MSDOS_DPB) */
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
/* ipcs ctl commands */
|
||||
#define MSG_STAT 11
|
||||
#define MSG_INFO 12
|
||||
#define MSG_STAT_ANY 13
|
||||
|
||||
/* msgrcv options */
|
||||
#define MSG_NOERROR 010000 /* no error if message is too big */
|
||||
|
||||
@@ -0,0 +1,115 @@
|
||||
/*
|
||||
* Copyright Samuel Mendoza-Jonas, IBM Corporation 2018.
|
||||
*
|
||||
* 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_NCSI_NETLINK_H__
|
||||
#define __UAPI_NCSI_NETLINK_H__
|
||||
|
||||
/**
|
||||
* enum ncsi_nl_commands - supported NCSI commands
|
||||
*
|
||||
* @NCSI_CMD_UNSPEC: unspecified command to catch errors
|
||||
* @NCSI_CMD_PKG_INFO: list package and channel attributes. Requires
|
||||
* NCSI_ATTR_IFINDEX. If NCSI_ATTR_PACKAGE_ID is specified returns the
|
||||
* specific package and its channels - otherwise a dump request returns
|
||||
* all packages and their associated channels.
|
||||
* @NCSI_CMD_SET_INTERFACE: set preferred package and channel combination.
|
||||
* Requires NCSI_ATTR_IFINDEX and the preferred NCSI_ATTR_PACKAGE_ID and
|
||||
* optionally the preferred NCSI_ATTR_CHANNEL_ID.
|
||||
* @NCSI_CMD_CLEAR_INTERFACE: clear any preferred package/channel combination.
|
||||
* Requires NCSI_ATTR_IFINDEX.
|
||||
* @NCSI_CMD_MAX: highest command number
|
||||
*/
|
||||
enum ncsi_nl_commands {
|
||||
NCSI_CMD_UNSPEC,
|
||||
NCSI_CMD_PKG_INFO,
|
||||
NCSI_CMD_SET_INTERFACE,
|
||||
NCSI_CMD_CLEAR_INTERFACE,
|
||||
|
||||
__NCSI_CMD_AFTER_LAST,
|
||||
NCSI_CMD_MAX = __NCSI_CMD_AFTER_LAST - 1
|
||||
};
|
||||
|
||||
/**
|
||||
* enum ncsi_nl_attrs - General NCSI netlink attributes
|
||||
*
|
||||
* @NCSI_ATTR_UNSPEC: unspecified attributes to catch errors
|
||||
* @NCSI_ATTR_IFINDEX: ifindex of network device using NCSI
|
||||
* @NCSI_ATTR_PACKAGE_LIST: nested array of NCSI_PKG_ATTR attributes
|
||||
* @NCSI_ATTR_PACKAGE_ID: package ID
|
||||
* @NCSI_ATTR_CHANNEL_ID: channel ID
|
||||
* @NCSI_ATTR_MAX: highest attribute number
|
||||
*/
|
||||
enum ncsi_nl_attrs {
|
||||
NCSI_ATTR_UNSPEC,
|
||||
NCSI_ATTR_IFINDEX,
|
||||
NCSI_ATTR_PACKAGE_LIST,
|
||||
NCSI_ATTR_PACKAGE_ID,
|
||||
NCSI_ATTR_CHANNEL_ID,
|
||||
|
||||
__NCSI_ATTR_AFTER_LAST,
|
||||
NCSI_ATTR_MAX = __NCSI_ATTR_AFTER_LAST - 1
|
||||
};
|
||||
|
||||
/**
|
||||
* enum ncsi_nl_pkg_attrs - NCSI netlink package-specific attributes
|
||||
*
|
||||
* @NCSI_PKG_ATTR_UNSPEC: unspecified attributes to catch errors
|
||||
* @NCSI_PKG_ATTR: nested array of package attributes
|
||||
* @NCSI_PKG_ATTR_ID: package ID
|
||||
* @NCSI_PKG_ATTR_FORCED: flag signifying a package has been set as preferred
|
||||
* @NCSI_PKG_ATTR_CHANNEL_LIST: nested array of NCSI_CHANNEL_ATTR attributes
|
||||
* @NCSI_PKG_ATTR_MAX: highest attribute number
|
||||
*/
|
||||
enum ncsi_nl_pkg_attrs {
|
||||
NCSI_PKG_ATTR_UNSPEC,
|
||||
NCSI_PKG_ATTR,
|
||||
NCSI_PKG_ATTR_ID,
|
||||
NCSI_PKG_ATTR_FORCED,
|
||||
NCSI_PKG_ATTR_CHANNEL_LIST,
|
||||
|
||||
__NCSI_PKG_ATTR_AFTER_LAST,
|
||||
NCSI_PKG_ATTR_MAX = __NCSI_PKG_ATTR_AFTER_LAST - 1
|
||||
};
|
||||
|
||||
/**
|
||||
* enum ncsi_nl_channel_attrs - NCSI netlink channel-specific attributes
|
||||
*
|
||||
* @NCSI_CHANNEL_ATTR_UNSPEC: unspecified attributes to catch errors
|
||||
* @NCSI_CHANNEL_ATTR: nested array of channel attributes
|
||||
* @NCSI_CHANNEL_ATTR_ID: channel ID
|
||||
* @NCSI_CHANNEL_ATTR_VERSION_MAJOR: channel major version number
|
||||
* @NCSI_CHANNEL_ATTR_VERSION_MINOR: channel minor version number
|
||||
* @NCSI_CHANNEL_ATTR_VERSION_STR: channel version string
|
||||
* @NCSI_CHANNEL_ATTR_LINK_STATE: channel link state flags
|
||||
* @NCSI_CHANNEL_ATTR_ACTIVE: channels with this flag are in
|
||||
* NCSI_CHANNEL_ACTIVE state
|
||||
* @NCSI_CHANNEL_ATTR_FORCED: flag signifying a channel has been set as
|
||||
* preferred
|
||||
* @NCSI_CHANNEL_ATTR_VLAN_LIST: nested array of NCSI_CHANNEL_ATTR_VLAN_IDs
|
||||
* @NCSI_CHANNEL_ATTR_VLAN_ID: VLAN ID being filtered on this channel
|
||||
* @NCSI_CHANNEL_ATTR_MAX: highest attribute number
|
||||
*/
|
||||
enum ncsi_nl_channel_attrs {
|
||||
NCSI_CHANNEL_ATTR_UNSPEC,
|
||||
NCSI_CHANNEL_ATTR,
|
||||
NCSI_CHANNEL_ATTR_ID,
|
||||
NCSI_CHANNEL_ATTR_VERSION_MAJOR,
|
||||
NCSI_CHANNEL_ATTR_VERSION_MINOR,
|
||||
NCSI_CHANNEL_ATTR_VERSION_STR,
|
||||
NCSI_CHANNEL_ATTR_LINK_STATE,
|
||||
NCSI_CHANNEL_ATTR_ACTIVE,
|
||||
NCSI_CHANNEL_ATTR_FORCED,
|
||||
NCSI_CHANNEL_ATTR_VLAN_LIST,
|
||||
NCSI_CHANNEL_ATTR_VLAN_ID,
|
||||
|
||||
__NCSI_CHANNEL_ATTR_AFTER_LAST,
|
||||
NCSI_CHANNEL_ATTR_MAX = __NCSI_CHANNEL_ATTR_AFTER_LAST - 1
|
||||
};
|
||||
|
||||
#endif /* __UAPI_NCSI_NETLINK_H__ */
|
||||
@@ -129,6 +129,7 @@ enum ip_conntrack_events {
|
||||
IPCT_NATSEQADJ = IPCT_SEQADJ,
|
||||
IPCT_SECMARK, /* new security mark has been set */
|
||||
IPCT_LABEL, /* new connlabel has been set */
|
||||
IPCT_SYNPROXY, /* synproxy has been set */
|
||||
#ifdef __KERNEL__
|
||||
__IPCT_MAX
|
||||
#endif
|
||||
|
||||
@@ -909,8 +909,8 @@ enum nft_rt_attributes {
|
||||
* @NFT_CT_EXPIRATION: relative conntrack expiration time in ms
|
||||
* @NFT_CT_HELPER: connection tracking helper assigned to conntrack
|
||||
* @NFT_CT_L3PROTOCOL: conntrack layer 3 protocol
|
||||
* @NFT_CT_SRC: conntrack layer 3 protocol source (IPv4/IPv6 address)
|
||||
* @NFT_CT_DST: conntrack layer 3 protocol destination (IPv4/IPv6 address)
|
||||
* @NFT_CT_SRC: conntrack layer 3 protocol source (IPv4/IPv6 address, deprecated)
|
||||
* @NFT_CT_DST: conntrack layer 3 protocol destination (IPv4/IPv6 address, deprecated)
|
||||
* @NFT_CT_PROTOCOL: conntrack layer 4 protocol
|
||||
* @NFT_CT_PROTO_SRC: conntrack layer 4 protocol source
|
||||
* @NFT_CT_PROTO_DST: conntrack layer 4 protocol destination
|
||||
@@ -920,6 +920,10 @@ enum nft_rt_attributes {
|
||||
* @NFT_CT_AVGPKT: conntrack average bytes per packet
|
||||
* @NFT_CT_ZONE: conntrack zone
|
||||
* @NFT_CT_EVENTMASK: ctnetlink events to be generated for this conntrack
|
||||
* @NFT_CT_SRC_IP: conntrack layer 3 protocol source (IPv4 address)
|
||||
* @NFT_CT_DST_IP: conntrack layer 3 protocol destination (IPv4 address)
|
||||
* @NFT_CT_SRC_IP6: conntrack layer 3 protocol source (IPv6 address)
|
||||
* @NFT_CT_DST_IP6: conntrack layer 3 protocol destination (IPv6 address)
|
||||
*/
|
||||
enum nft_ct_keys {
|
||||
NFT_CT_STATE,
|
||||
@@ -941,6 +945,10 @@ enum nft_ct_keys {
|
||||
NFT_CT_AVGPKT,
|
||||
NFT_CT_ZONE,
|
||||
NFT_CT_EVENTMASK,
|
||||
NFT_CT_SRC_IP,
|
||||
NFT_CT_DST_IP,
|
||||
NFT_CT_SRC_IP6,
|
||||
NFT_CT_DST_IP6,
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -54,6 +54,7 @@ enum ctattr_type {
|
||||
CTA_MARK_MASK,
|
||||
CTA_LABELS,
|
||||
CTA_LABELS_MASK,
|
||||
CTA_SYNPROXY,
|
||||
__CTA_MAX
|
||||
};
|
||||
#define CTA_MAX (__CTA_MAX - 1)
|
||||
@@ -190,6 +191,15 @@ enum ctattr_natseq {
|
||||
};
|
||||
#define CTA_NAT_SEQ_MAX (__CTA_NAT_SEQ_MAX - 1)
|
||||
|
||||
enum ctattr_synproxy {
|
||||
CTA_SYNPROXY_UNSPEC,
|
||||
CTA_SYNPROXY_ISN,
|
||||
CTA_SYNPROXY_ITS,
|
||||
CTA_SYNPROXY_TSOFF,
|
||||
__CTA_SYNPROXY_MAX,
|
||||
};
|
||||
#define CTA_SYNPROXY_MAX (__CTA_SYNPROXY_MAX - 1)
|
||||
|
||||
enum ctattr_expect {
|
||||
CTA_EXPECT_UNSPEC,
|
||||
CTA_EXPECT_MASTER,
|
||||
|
||||
@@ -19,11 +19,21 @@ enum {
|
||||
XT_CONNMARK_RESTORE
|
||||
};
|
||||
|
||||
enum {
|
||||
D_SHIFT_LEFT = 0,
|
||||
D_SHIFT_RIGHT,
|
||||
};
|
||||
|
||||
struct xt_connmark_tginfo1 {
|
||||
__u32 ctmark, ctmask, nfmask;
|
||||
__u8 mode;
|
||||
};
|
||||
|
||||
struct xt_connmark_tginfo2 {
|
||||
__u32 ctmark, ctmask, nfmask;
|
||||
__u8 shift_dir, shift_bits, mode;
|
||||
};
|
||||
|
||||
struct xt_connmark_mtinfo1 {
|
||||
__u32 mark, mask;
|
||||
__u8 invert;
|
||||
|
||||
@@ -24,8 +24,10 @@
|
||||
#define EBT_IP_PROTO 0x08
|
||||
#define EBT_IP_SPORT 0x10
|
||||
#define EBT_IP_DPORT 0x20
|
||||
#define EBT_IP_ICMP 0x40
|
||||
#define EBT_IP_IGMP 0x80
|
||||
#define EBT_IP_MASK (EBT_IP_SOURCE | EBT_IP_DEST | EBT_IP_TOS | EBT_IP_PROTO |\
|
||||
EBT_IP_SPORT | EBT_IP_DPORT )
|
||||
EBT_IP_SPORT | EBT_IP_DPORT | EBT_IP_ICMP | EBT_IP_IGMP)
|
||||
#define EBT_IP_MATCH "ip"
|
||||
|
||||
/* the same values are used for the invflags */
|
||||
@@ -38,8 +40,15 @@ struct ebt_ip_info {
|
||||
__u8 protocol;
|
||||
__u8 bitmask;
|
||||
__u8 invflags;
|
||||
__u16 sport[2];
|
||||
__u16 dport[2];
|
||||
union {
|
||||
__u16 sport[2];
|
||||
__u8 icmp_type[2];
|
||||
__u8 igmp_type[2];
|
||||
};
|
||||
union {
|
||||
__u16 dport[2];
|
||||
__u8 icmp_code[2];
|
||||
};
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#define EBT_TABLE_MAXNAMELEN 32
|
||||
#define EBT_CHAIN_MAXNAMELEN EBT_TABLE_MAXNAMELEN
|
||||
#define EBT_FUNCTION_MAXNAMELEN EBT_TABLE_MAXNAMELEN
|
||||
#define EBT_EXTENSION_MAXNAMELEN 31
|
||||
|
||||
/* verdicts >0 are "branches" */
|
||||
#define EBT_ACCEPT -1
|
||||
@@ -120,7 +121,10 @@ struct ebt_entries {
|
||||
|
||||
struct ebt_entry_match {
|
||||
union {
|
||||
char name[EBT_FUNCTION_MAXNAMELEN];
|
||||
struct {
|
||||
char name[EBT_EXTENSION_MAXNAMELEN];
|
||||
uint8_t revision;
|
||||
};
|
||||
struct xt_match *match;
|
||||
} u;
|
||||
/* size of data */
|
||||
@@ -130,7 +134,10 @@ struct ebt_entry_match {
|
||||
|
||||
struct ebt_entry_watcher {
|
||||
union {
|
||||
char name[EBT_FUNCTION_MAXNAMELEN];
|
||||
struct {
|
||||
char name[EBT_EXTENSION_MAXNAMELEN];
|
||||
uint8_t revision;
|
||||
};
|
||||
struct xt_target *watcher;
|
||||
} u;
|
||||
/* size of data */
|
||||
@@ -140,7 +147,10 @@ struct ebt_entry_watcher {
|
||||
|
||||
struct ebt_entry_target {
|
||||
union {
|
||||
char name[EBT_FUNCTION_MAXNAMELEN];
|
||||
struct {
|
||||
char name[EBT_EXTENSION_MAXNAMELEN];
|
||||
uint8_t revision;
|
||||
};
|
||||
struct xt_target *target;
|
||||
} u;
|
||||
/* size of data */
|
||||
|
||||
@@ -542,7 +542,8 @@
|
||||
* IEs in %NL80211_ATTR_IE, %NL80211_ATTR_AUTH_TYPE, %NL80211_ATTR_USE_MFP,
|
||||
* %NL80211_ATTR_MAC, %NL80211_ATTR_WIPHY_FREQ, %NL80211_ATTR_CONTROL_PORT,
|
||||
* %NL80211_ATTR_CONTROL_PORT_ETHERTYPE,
|
||||
* %NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT, %NL80211_ATTR_MAC_HINT, and
|
||||
* %NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT,
|
||||
* %NL80211_ATTR_CONTROL_PORT_OVER_NL80211, %NL80211_ATTR_MAC_HINT, and
|
||||
* %NL80211_ATTR_WIPHY_FREQ_HINT.
|
||||
* If included, %NL80211_ATTR_MAC and %NL80211_ATTR_WIPHY_FREQ are
|
||||
* restrictions on BSS selection, i.e., they effectively prevent roaming
|
||||
@@ -990,8 +991,45 @@
|
||||
* &NL80211_CMD_CONNECT or &NL80211_CMD_ROAM. If the 4 way handshake failed
|
||||
* &NL80211_CMD_DISCONNECT should be indicated instead.
|
||||
*
|
||||
* @NL80211_CMD_CONTROL_PORT_FRAME: Control Port (e.g. PAE) frame TX request
|
||||
* and RX notification. This command is used both as a request to transmit
|
||||
* a control port frame and as a notification that a control port frame
|
||||
* has been received. %NL80211_ATTR_FRAME is used to specify the
|
||||
* frame contents. The frame is the raw EAPoL data, without ethernet or
|
||||
* 802.11 headers.
|
||||
* When used as an event indication %NL80211_ATTR_CONTROL_PORT_ETHERTYPE,
|
||||
* %NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT and %NL80211_ATTR_MAC are added
|
||||
* indicating the protocol type of the received frame; whether the frame
|
||||
* was received unencrypted and the MAC address of the peer respectively.
|
||||
*
|
||||
* @NL80211_CMD_RELOAD_REGDB: Request that the regdb firmware file is reloaded.
|
||||
*
|
||||
* @NL80211_CMD_EXTERNAL_AUTH: This interface is exclusively defined for host
|
||||
* drivers that do not define separate commands for authentication and
|
||||
* association, but rely on user space for the authentication to happen.
|
||||
* This interface acts both as the event request (driver to user space)
|
||||
* to trigger the authentication and command response (userspace to
|
||||
* driver) to indicate the authentication status.
|
||||
*
|
||||
* User space uses the %NL80211_CMD_CONNECT command to the host driver to
|
||||
* trigger a connection. The host driver selects a BSS and further uses
|
||||
* this interface to offload only the authentication part to the user
|
||||
* space. Authentication frames are passed between the driver and user
|
||||
* space through the %NL80211_CMD_FRAME interface. Host driver proceeds
|
||||
* further with the association after getting successful authentication
|
||||
* status. User space indicates the authentication status through
|
||||
* %NL80211_ATTR_STATUS_CODE attribute in %NL80211_CMD_EXTERNAL_AUTH
|
||||
* command interface.
|
||||
*
|
||||
* Host driver reports this status on an authentication failure to the
|
||||
* user space through the connect result as the user space would have
|
||||
* initiated the connection through the connect request.
|
||||
*
|
||||
* @NL80211_CMD_STA_OPMODE_CHANGED: An event that notify station's
|
||||
* ht opmode or vht opmode changes using any of &NL80211_ATTR_SMPS_MODE,
|
||||
* &NL80211_ATTR_CHANNEL_WIDTH,&NL80211_ATTR_NSS attributes with its
|
||||
* address(specified in &NL80211_ATTR_MAC).
|
||||
*
|
||||
* @NL80211_CMD_MAX: highest used command number
|
||||
* @__NL80211_CMD_AFTER_LAST: internal use
|
||||
*/
|
||||
@@ -1198,6 +1236,12 @@ enum nl80211_commands {
|
||||
|
||||
NL80211_CMD_RELOAD_REGDB,
|
||||
|
||||
NL80211_CMD_EXTERNAL_AUTH,
|
||||
|
||||
NL80211_CMD_STA_OPMODE_CHANGED,
|
||||
|
||||
NL80211_CMD_CONTROL_PORT_FRAME,
|
||||
|
||||
/* add new commands above here */
|
||||
|
||||
/* used to define NL80211_CMD_MAX below */
|
||||
@@ -1445,6 +1489,15 @@ enum nl80211_commands {
|
||||
* @NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT: When included along with
|
||||
* %NL80211_ATTR_CONTROL_PORT_ETHERTYPE, indicates that the custom
|
||||
* ethertype frames used for key negotiation must not be encrypted.
|
||||
* @NL80211_ATTR_CONTROL_PORT_OVER_NL80211: A flag indicating whether control
|
||||
* port frames (e.g. of type given in %NL80211_ATTR_CONTROL_PORT_ETHERTYPE)
|
||||
* will be sent directly to the network interface or sent via the NL80211
|
||||
* socket. If this attribute is missing, then legacy behavior of sending
|
||||
* control port frames directly to the network interface is used. If the
|
||||
* flag is included, then control port frames are sent over NL80211 instead
|
||||
* using %CMD_CONTROL_PORT_FRAME. If control port routing over NL80211 is
|
||||
* to be used then userspace must also use the %NL80211_ATTR_SOCKET_OWNER
|
||||
* flag.
|
||||
*
|
||||
* @NL80211_ATTR_TESTDATA: Testmode data blob, passed through to the driver.
|
||||
* We recommend using nested, driver-specific attributes within this.
|
||||
@@ -1932,6 +1985,12 @@ enum nl80211_commands {
|
||||
* multicast group.
|
||||
* If set during %NL80211_CMD_ASSOCIATE or %NL80211_CMD_CONNECT the
|
||||
* station will deauthenticate when the socket is closed.
|
||||
* If set during %NL80211_CMD_JOIN_IBSS the IBSS will be automatically
|
||||
* torn down when the socket is closed.
|
||||
* If set during %NL80211_CMD_JOIN_MESH the mesh setup will be
|
||||
* automatically torn down when the socket is closed.
|
||||
* If set during %NL80211_CMD_START_AP the AP will be automatically
|
||||
* disabled when the socket is closed.
|
||||
*
|
||||
* @NL80211_ATTR_TDLS_INITIATOR: flag attribute indicating the current end is
|
||||
* the TDLS link initiator.
|
||||
@@ -2153,6 +2212,19 @@ enum nl80211_commands {
|
||||
* @NL80211_ATTR_PMKR0_NAME: PMK-R0 Name for offloaded FT.
|
||||
* @NL80211_ATTR_PORT_AUTHORIZED: (reserved)
|
||||
*
|
||||
* @NL80211_ATTR_EXTERNAL_AUTH_ACTION: Identify the requested external
|
||||
* authentication operation (u32 attribute with an
|
||||
* &enum nl80211_external_auth_action value). This is used with the
|
||||
* &NL80211_CMD_EXTERNAL_AUTH request event.
|
||||
* @NL80211_ATTR_EXTERNAL_AUTH_SUPPORT: Flag attribute indicating that the user
|
||||
* space supports external authentication. This attribute shall be used
|
||||
* only with %NL80211_CMD_CONNECT request. The driver may offload
|
||||
* authentication processing to user space if this capability is indicated
|
||||
* in NL80211_CMD_CONNECT requests from the user space.
|
||||
*
|
||||
* @NL80211_ATTR_NSS: Station's New/updated RX_NSS value notified using this
|
||||
* u8 attribute. This is used with %NL80211_CMD_STA_OPMODE_CHANGED.
|
||||
*
|
||||
* @NUM_NL80211_ATTR: total number of nl80211_attrs available
|
||||
* @NL80211_ATTR_MAX: highest attribute number currently defined
|
||||
* @__NL80211_ATTR_AFTER_LAST: internal use
|
||||
@@ -2579,6 +2651,14 @@ enum nl80211_attrs {
|
||||
NL80211_ATTR_PMKR0_NAME,
|
||||
NL80211_ATTR_PORT_AUTHORIZED,
|
||||
|
||||
NL80211_ATTR_EXTERNAL_AUTH_ACTION,
|
||||
NL80211_ATTR_EXTERNAL_AUTH_SUPPORT,
|
||||
|
||||
NL80211_ATTR_NSS,
|
||||
NL80211_ATTR_ACK_SIGNAL,
|
||||
|
||||
NL80211_ATTR_CONTROL_PORT_OVER_NL80211,
|
||||
|
||||
/* add attributes here, update the policy in nl80211.c */
|
||||
|
||||
__NL80211_ATTR_AFTER_LAST,
|
||||
@@ -2899,6 +2979,7 @@ enum nl80211_sta_bss_param {
|
||||
* @NL80211_STA_INFO_RX_DURATION: aggregate PPDU duration for all frames
|
||||
* received from the station (u64, usec)
|
||||
* @NL80211_STA_INFO_PAD: attribute used for padding for 64-bit alignment
|
||||
* @NL80211_STA_INFO_ACK_SIGNAL: signal strength of the last ACK frame(u8, dBm)
|
||||
* @__NL80211_STA_INFO_AFTER_LAST: internal
|
||||
* @NL80211_STA_INFO_MAX: highest possible station info attribute
|
||||
*/
|
||||
@@ -2937,6 +3018,7 @@ enum nl80211_sta_info {
|
||||
NL80211_STA_INFO_TID_STATS,
|
||||
NL80211_STA_INFO_RX_DURATION,
|
||||
NL80211_STA_INFO_PAD,
|
||||
NL80211_STA_INFO_ACK_SIGNAL,
|
||||
|
||||
/* keep last */
|
||||
__NL80211_STA_INFO_AFTER_LAST,
|
||||
@@ -4945,6 +5027,17 @@ enum nl80211_feature_flags {
|
||||
* probe request tx deferral and suppression
|
||||
* @NL80211_EXT_FEATURE_MFP_OPTIONAL: Driver supports the %NL80211_MFP_OPTIONAL
|
||||
* value in %NL80211_ATTR_USE_MFP.
|
||||
* @NL80211_EXT_FEATURE_LOW_SPAN_SCAN: Driver supports low span scan.
|
||||
* @NL80211_EXT_FEATURE_LOW_POWER_SCAN: Driver supports low power scan.
|
||||
* @NL80211_EXT_FEATURE_HIGH_ACCURACY_SCAN: Driver supports high accuracy scan.
|
||||
* @NL80211_EXT_FEATURE_DFS_OFFLOAD: HW/driver will offload DFS actions.
|
||||
* Device or driver will do all DFS-related actions by itself,
|
||||
* informing user-space about CAC progress, radar detection event,
|
||||
* channel change triggered by radar detection event.
|
||||
* No need to start CAC from user-space, no need to react to
|
||||
* "radar detected" event.
|
||||
* @NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211: Driver supports sending and
|
||||
* receiving control port frames over nl80211 instead of the netdevice.
|
||||
*
|
||||
* @NUM_NL80211_EXT_FEATURES: number of extended features.
|
||||
* @MAX_NL80211_EXT_FEATURES: highest extended feature index.
|
||||
@@ -4972,6 +5065,11 @@ enum nl80211_ext_feature_index {
|
||||
NL80211_EXT_FEATURE_OCE_PROBE_REQ_HIGH_TX_RATE,
|
||||
NL80211_EXT_FEATURE_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION,
|
||||
NL80211_EXT_FEATURE_MFP_OPTIONAL,
|
||||
NL80211_EXT_FEATURE_LOW_SPAN_SCAN,
|
||||
NL80211_EXT_FEATURE_LOW_POWER_SCAN,
|
||||
NL80211_EXT_FEATURE_HIGH_ACCURACY_SCAN,
|
||||
NL80211_EXT_FEATURE_DFS_OFFLOAD,
|
||||
NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211,
|
||||
|
||||
/* add new features before the definition below */
|
||||
NUM_NL80211_EXT_FEATURES,
|
||||
@@ -5032,6 +5130,10 @@ enum nl80211_timeout_reason {
|
||||
* of NL80211_CMD_TRIGGER_SCAN and NL80211_CMD_START_SCHED_SCAN
|
||||
* requests.
|
||||
*
|
||||
* NL80211_SCAN_FLAG_LOW_SPAN, NL80211_SCAN_FLAG_LOW_POWER, and
|
||||
* NL80211_SCAN_FLAG_HIGH_ACCURACY flags are exclusive of each other, i.e., only
|
||||
* one of them can be used in the request.
|
||||
*
|
||||
* @NL80211_SCAN_FLAG_LOW_PRIORITY: scan request has low priority
|
||||
* @NL80211_SCAN_FLAG_FLUSH: flush cache before scanning
|
||||
* @NL80211_SCAN_FLAG_AP: force a scan even if the interface is configured
|
||||
@@ -5059,7 +5161,20 @@ enum nl80211_timeout_reason {
|
||||
* and suppression (if it has received a broadcast Probe Response frame,
|
||||
* Beacon frame or FILS Discovery frame from an AP that the STA considers
|
||||
* a suitable candidate for (re-)association - suitable in terms of
|
||||
* SSID and/or RSSI
|
||||
* SSID and/or RSSI.
|
||||
* @NL80211_SCAN_FLAG_LOW_SPAN: Span corresponds to the total time taken to
|
||||
* accomplish the scan. Thus, this flag intends the driver to perform the
|
||||
* scan request with lesser span/duration. It is specific to the driver
|
||||
* implementations on how this is accomplished. Scan accuracy may get
|
||||
* impacted with this flag.
|
||||
* @NL80211_SCAN_FLAG_LOW_POWER: This flag intends the scan attempts to consume
|
||||
* optimal possible power. Drivers can resort to their specific means to
|
||||
* optimize the power. Scan accuracy may get impacted with this flag.
|
||||
* @NL80211_SCAN_FLAG_HIGH_ACCURACY: Accuracy here intends to the extent of scan
|
||||
* results obtained. Thus HIGH_ACCURACY scan flag aims to get maximum
|
||||
* possible scan results. This flag hints the driver to use the best
|
||||
* possible scan configuration to improve the accuracy in scanning.
|
||||
* Latency and power use may get impacted with this flag.
|
||||
*/
|
||||
enum nl80211_scan_flags {
|
||||
NL80211_SCAN_FLAG_LOW_PRIORITY = 1<<0,
|
||||
@@ -5070,6 +5185,9 @@ enum nl80211_scan_flags {
|
||||
NL80211_SCAN_FLAG_ACCEPT_BCAST_PROBE_RESP = 1<<5,
|
||||
NL80211_SCAN_FLAG_OCE_PROBE_REQ_HIGH_TX_RATE = 1<<6,
|
||||
NL80211_SCAN_FLAG_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION = 1<<7,
|
||||
NL80211_SCAN_FLAG_LOW_SPAN = 1<<8,
|
||||
NL80211_SCAN_FLAG_LOW_POWER = 1<<9,
|
||||
NL80211_SCAN_FLAG_HIGH_ACCURACY = 1<<10,
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -5127,6 +5245,8 @@ enum nl80211_smps_mode {
|
||||
* non-operating channel is expired and no longer valid. New CAC must
|
||||
* be done on this channel before starting the operation. This is not
|
||||
* applicable for ETSI dfs domain where pre-CAC is valid for ever.
|
||||
* @NL80211_RADAR_CAC_STARTED: Channel Availability Check has been started,
|
||||
* should be generated by HW if NL80211_EXT_FEATURE_DFS_OFFLOAD is enabled.
|
||||
*/
|
||||
enum nl80211_radar_event {
|
||||
NL80211_RADAR_DETECTED,
|
||||
@@ -5134,6 +5254,7 @@ enum nl80211_radar_event {
|
||||
NL80211_RADAR_CAC_ABORTED,
|
||||
NL80211_RADAR_NOP_FINISHED,
|
||||
NL80211_RADAR_PRE_CAC_EXPIRED,
|
||||
NL80211_RADAR_CAC_STARTED,
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -5469,4 +5590,15 @@ enum nl80211_nan_match_attributes {
|
||||
NL80211_NAN_MATCH_ATTR_MAX = NUM_NL80211_NAN_MATCH_ATTR - 1
|
||||
};
|
||||
|
||||
/**
|
||||
* nl80211_external_auth_action - Action to perform with external
|
||||
* authentication request. Used by NL80211_ATTR_EXTERNAL_AUTH_ACTION.
|
||||
* @NL80211_EXTERNAL_AUTH_START: Start the authentication.
|
||||
* @NL80211_EXTERNAL_AUTH_ABORT: Abort the ongoing authentication.
|
||||
*/
|
||||
enum nl80211_external_auth_action {
|
||||
NL80211_EXTERNAL_AUTH_START,
|
||||
NL80211_EXTERNAL_AUTH_ABORT,
|
||||
};
|
||||
|
||||
#endif /* __LINUX_NL80211_H */
|
||||
|
||||
@@ -520,6 +520,7 @@
|
||||
#define PCI_EXP_LNKCAP_SLS_2_5GB 0x00000001 /* LNKCAP2 SLS Vector bit 0 */
|
||||
#define PCI_EXP_LNKCAP_SLS_5_0GB 0x00000002 /* LNKCAP2 SLS Vector bit 1 */
|
||||
#define PCI_EXP_LNKCAP_SLS_8_0GB 0x00000003 /* LNKCAP2 SLS Vector bit 2 */
|
||||
#define PCI_EXP_LNKCAP_SLS_16_0GB 0x00000004 /* LNKCAP2 SLS Vector bit 3 */
|
||||
#define PCI_EXP_LNKCAP_MLW 0x000003f0 /* Maximum Link Width */
|
||||
#define PCI_EXP_LNKCAP_ASPMS 0x00000c00 /* ASPM Support */
|
||||
#define PCI_EXP_LNKCAP_L0SEL 0x00007000 /* L0s Exit Latency */
|
||||
@@ -547,6 +548,7 @@
|
||||
#define PCI_EXP_LNKSTA_CLS_2_5GB 0x0001 /* Current Link Speed 2.5GT/s */
|
||||
#define PCI_EXP_LNKSTA_CLS_5_0GB 0x0002 /* Current Link Speed 5.0GT/s */
|
||||
#define PCI_EXP_LNKSTA_CLS_8_0GB 0x0003 /* Current Link Speed 8.0GT/s */
|
||||
#define PCI_EXP_LNKSTA_CLS_16_0GB 0x0004 /* Current Link Speed 16.0GT/s */
|
||||
#define PCI_EXP_LNKSTA_NLW 0x03f0 /* Negotiated Link Width */
|
||||
#define PCI_EXP_LNKSTA_NLW_X1 0x0010 /* Current Link Width x1 */
|
||||
#define PCI_EXP_LNKSTA_NLW_X2 0x0020 /* Current Link Width x2 */
|
||||
@@ -648,8 +650,9 @@
|
||||
#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 */
|
||||
#define PCI_EXP_LNKCAP2_SLS_8_0GB 0x00000008 /* Supported Speed 8.0GT/s */
|
||||
#define PCI_EXP_LNKCAP2_SLS_5_0GB 0x00000004 /* Supported Speed 5GT/s */
|
||||
#define PCI_EXP_LNKCAP2_SLS_8_0GB 0x00000008 /* Supported Speed 8GT/s */
|
||||
#define PCI_EXP_LNKCAP2_SLS_16_0GB 0x00000010 /* Supported Speed 16GT/s */
|
||||
#define PCI_EXP_LNKCAP2_CROSSLINK 0x00000100 /* Crosslink supported */
|
||||
#define PCI_EXP_LNKCTL2 48 /* Link Control 2 */
|
||||
#define PCI_EXP_LNKSTA2 50 /* Link Status 2 */
|
||||
|
||||
@@ -380,10 +380,14 @@ struct perf_event_attr {
|
||||
__u32 bp_type;
|
||||
union {
|
||||
__u64 bp_addr;
|
||||
__u64 kprobe_func; /* for perf_kprobe */
|
||||
__u64 uprobe_path; /* for perf_uprobe */
|
||||
__u64 config1; /* extension of config */
|
||||
};
|
||||
union {
|
||||
__u64 bp_len;
|
||||
__u64 kprobe_addr; /* when kprobe_func == NULL */
|
||||
__u64 probe_offset; /* for perf_[k,u]probe */
|
||||
__u64 config2; /* extension of config1 */
|
||||
};
|
||||
__u64 branch_sample_type; /* enum perf_branch_sample_type */
|
||||
@@ -444,17 +448,18 @@ struct perf_event_query_bpf {
|
||||
/*
|
||||
* Ioctls that can be done on a perf event fd:
|
||||
*/
|
||||
#define PERF_EVENT_IOC_ENABLE _IO ('$', 0)
|
||||
#define PERF_EVENT_IOC_DISABLE _IO ('$', 1)
|
||||
#define PERF_EVENT_IOC_REFRESH _IO ('$', 2)
|
||||
#define PERF_EVENT_IOC_RESET _IO ('$', 3)
|
||||
#define PERF_EVENT_IOC_PERIOD _IOW('$', 4, __u64)
|
||||
#define PERF_EVENT_IOC_SET_OUTPUT _IO ('$', 5)
|
||||
#define PERF_EVENT_IOC_SET_FILTER _IOW('$', 6, char *)
|
||||
#define PERF_EVENT_IOC_ID _IOR('$', 7, __u64 *)
|
||||
#define PERF_EVENT_IOC_SET_BPF _IOW('$', 8, __u32)
|
||||
#define PERF_EVENT_IOC_PAUSE_OUTPUT _IOW('$', 9, __u32)
|
||||
#define PERF_EVENT_IOC_QUERY_BPF _IOWR('$', 10, struct perf_event_query_bpf *)
|
||||
#define PERF_EVENT_IOC_ENABLE _IO ('$', 0)
|
||||
#define PERF_EVENT_IOC_DISABLE _IO ('$', 1)
|
||||
#define PERF_EVENT_IOC_REFRESH _IO ('$', 2)
|
||||
#define PERF_EVENT_IOC_RESET _IO ('$', 3)
|
||||
#define PERF_EVENT_IOC_PERIOD _IOW('$', 4, __u64)
|
||||
#define PERF_EVENT_IOC_SET_OUTPUT _IO ('$', 5)
|
||||
#define PERF_EVENT_IOC_SET_FILTER _IOW('$', 6, char *)
|
||||
#define PERF_EVENT_IOC_ID _IOR('$', 7, __u64 *)
|
||||
#define PERF_EVENT_IOC_SET_BPF _IOW('$', 8, __u32)
|
||||
#define PERF_EVENT_IOC_PAUSE_OUTPUT _IOW('$', 9, __u32)
|
||||
#define PERF_EVENT_IOC_QUERY_BPF _IOWR('$', 10, struct perf_event_query_bpf *)
|
||||
#define PERF_EVENT_IOC_MODIFY_ATTRIBUTES _IOW('$', 11, struct perf_event_attr *)
|
||||
|
||||
enum perf_event_ioc_flags {
|
||||
PERF_IOC_FLAG_GROUP = 1U << 0,
|
||||
@@ -645,11 +650,23 @@ struct perf_event_mmap_page {
|
||||
#define PERF_RECORD_MISC_COMM_EXEC (1 << 13)
|
||||
#define PERF_RECORD_MISC_SWITCH_OUT (1 << 13)
|
||||
/*
|
||||
* Indicates that the content of PERF_SAMPLE_IP points to
|
||||
* the actual instruction that triggered the event. See also
|
||||
* perf_event_attr::precise_ip.
|
||||
* These PERF_RECORD_MISC_* flags below are safely reused
|
||||
* for the following events:
|
||||
*
|
||||
* PERF_RECORD_MISC_EXACT_IP - PERF_RECORD_SAMPLE of precise events
|
||||
* PERF_RECORD_MISC_SWITCH_OUT_PREEMPT - PERF_RECORD_SWITCH* events
|
||||
*
|
||||
*
|
||||
* PERF_RECORD_MISC_EXACT_IP:
|
||||
* Indicates that the content of PERF_SAMPLE_IP points to
|
||||
* the actual instruction that triggered the event. See also
|
||||
* perf_event_attr::precise_ip.
|
||||
*
|
||||
* PERF_RECORD_MISC_SWITCH_OUT_PREEMPT:
|
||||
* Indicates that thread was preempted in TASK_RUNNING state.
|
||||
*/
|
||||
#define PERF_RECORD_MISC_EXACT_IP (1 << 14)
|
||||
#define PERF_RECORD_MISC_SWITCH_OUT_PREEMPT (1 << 14)
|
||||
/*
|
||||
* Reserve the last bit to indicate some extended misc field
|
||||
*/
|
||||
|
||||
@@ -475,6 +475,7 @@ enum {
|
||||
|
||||
enum {
|
||||
TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = (1 << 0),
|
||||
TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST = (1 << 1),
|
||||
};
|
||||
|
||||
/* Match-all classifier */
|
||||
@@ -555,7 +556,8 @@ enum {
|
||||
#define TCF_EM_VLAN 6
|
||||
#define TCF_EM_CANID 7
|
||||
#define TCF_EM_IPSET 8
|
||||
#define TCF_EM_MAX 8
|
||||
#define TCF_EM_IPT 9
|
||||
#define TCF_EM_MAX 9
|
||||
|
||||
enum {
|
||||
TCF_EM_PROG_TC
|
||||
|
||||
@@ -0,0 +1,97 @@
|
||||
/* SPDX-License-Identifier: BSD-3-Clause */
|
||||
#ifndef _LINUX_FW_CFG_H
|
||||
#define _LINUX_FW_CFG_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
#define FW_CFG_ACPI_DEVICE_ID "QEMU0002"
|
||||
|
||||
/* selector key values for "well-known" fw_cfg entries */
|
||||
#define FW_CFG_SIGNATURE 0x00
|
||||
#define FW_CFG_ID 0x01
|
||||
#define FW_CFG_UUID 0x02
|
||||
#define FW_CFG_RAM_SIZE 0x03
|
||||
#define FW_CFG_NOGRAPHIC 0x04
|
||||
#define FW_CFG_NB_CPUS 0x05
|
||||
#define FW_CFG_MACHINE_ID 0x06
|
||||
#define FW_CFG_KERNEL_ADDR 0x07
|
||||
#define FW_CFG_KERNEL_SIZE 0x08
|
||||
#define FW_CFG_KERNEL_CMDLINE 0x09
|
||||
#define FW_CFG_INITRD_ADDR 0x0a
|
||||
#define FW_CFG_INITRD_SIZE 0x0b
|
||||
#define FW_CFG_BOOT_DEVICE 0x0c
|
||||
#define FW_CFG_NUMA 0x0d
|
||||
#define FW_CFG_BOOT_MENU 0x0e
|
||||
#define FW_CFG_MAX_CPUS 0x0f
|
||||
#define FW_CFG_KERNEL_ENTRY 0x10
|
||||
#define FW_CFG_KERNEL_DATA 0x11
|
||||
#define FW_CFG_INITRD_DATA 0x12
|
||||
#define FW_CFG_CMDLINE_ADDR 0x13
|
||||
#define FW_CFG_CMDLINE_SIZE 0x14
|
||||
#define FW_CFG_CMDLINE_DATA 0x15
|
||||
#define FW_CFG_SETUP_ADDR 0x16
|
||||
#define FW_CFG_SETUP_SIZE 0x17
|
||||
#define FW_CFG_SETUP_DATA 0x18
|
||||
#define FW_CFG_FILE_DIR 0x19
|
||||
|
||||
#define FW_CFG_FILE_FIRST 0x20
|
||||
#define FW_CFG_FILE_SLOTS_MIN 0x10
|
||||
|
||||
#define FW_CFG_WRITE_CHANNEL 0x4000
|
||||
#define FW_CFG_ARCH_LOCAL 0x8000
|
||||
#define FW_CFG_ENTRY_MASK (~(FW_CFG_WRITE_CHANNEL | FW_CFG_ARCH_LOCAL))
|
||||
|
||||
#define FW_CFG_INVALID 0xffff
|
||||
|
||||
/* width in bytes of fw_cfg control register */
|
||||
#define FW_CFG_CTL_SIZE 0x02
|
||||
|
||||
/* fw_cfg "file name" is up to 56 characters (including terminating nul) */
|
||||
#define FW_CFG_MAX_FILE_PATH 56
|
||||
|
||||
/* size in bytes of fw_cfg signature */
|
||||
#define FW_CFG_SIG_SIZE 4
|
||||
|
||||
/* FW_CFG_ID bits */
|
||||
#define FW_CFG_VERSION 0x01
|
||||
#define FW_CFG_VERSION_DMA 0x02
|
||||
|
||||
/* fw_cfg file directory entry type */
|
||||
struct fw_cfg_file {
|
||||
__be32 size;
|
||||
__be16 select;
|
||||
__u16 reserved;
|
||||
char name[FW_CFG_MAX_FILE_PATH];
|
||||
};
|
||||
|
||||
/* FW_CFG_DMA_CONTROL bits */
|
||||
#define FW_CFG_DMA_CTL_ERROR 0x01
|
||||
#define FW_CFG_DMA_CTL_READ 0x02
|
||||
#define FW_CFG_DMA_CTL_SKIP 0x04
|
||||
#define FW_CFG_DMA_CTL_SELECT 0x08
|
||||
#define FW_CFG_DMA_CTL_WRITE 0x10
|
||||
|
||||
#define FW_CFG_DMA_SIGNATURE 0x51454d5520434647ULL /* "QEMU CFG" */
|
||||
|
||||
/* Control as first field allows for different structures selected by this
|
||||
* field, which might be useful in the future
|
||||
*/
|
||||
struct fw_cfg_dma_access {
|
||||
__be32 control;
|
||||
__be32 length;
|
||||
__be64 address;
|
||||
};
|
||||
|
||||
#define FW_CFG_VMCOREINFO_FILENAME "etc/vmcoreinfo"
|
||||
|
||||
#define FW_CFG_VMCOREINFO_FORMAT_NONE 0x0
|
||||
#define FW_CFG_VMCOREINFO_FORMAT_ELF 0x1
|
||||
|
||||
struct fw_cfg_vmcoreinfo {
|
||||
__le16 host_format;
|
||||
__le16 guest_format;
|
||||
__le32 size;
|
||||
__le64 paddr;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -35,6 +35,9 @@
|
||||
/* Clear the entropy pool and associated counters. (Superuser only.) */
|
||||
#define RNDCLEARPOOL _IO( 'R', 0x06 )
|
||||
|
||||
/* Reseed CRNG. (Superuser only.) */
|
||||
#define RNDRESEEDCRNG _IO( 'R', 0x07 )
|
||||
|
||||
struct rand_pool_info {
|
||||
int entropy_count;
|
||||
int buf_size;
|
||||
|
||||
@@ -103,6 +103,8 @@
|
||||
#define RDS_CMSG_MASKED_ATOMIC_FADD 8
|
||||
#define RDS_CMSG_MASKED_ATOMIC_CSWP 9
|
||||
#define RDS_CMSG_RXPATH_LATENCY 11
|
||||
#define RDS_CMSG_ZCOPY_COOKIE 12
|
||||
#define RDS_CMSG_ZCOPY_COMPLETION 13
|
||||
|
||||
#define RDS_INFO_FIRST 10000
|
||||
#define RDS_INFO_COUNTERS 10000
|
||||
@@ -316,6 +318,12 @@ struct rds_rdma_notify {
|
||||
#define RDS_RDMA_DROPPED 3
|
||||
#define RDS_RDMA_OTHER_ERROR 4
|
||||
|
||||
#define RDS_MAX_ZCOOKIES 8
|
||||
struct rds_zcopy_cookies {
|
||||
__u32 num;
|
||||
__u32 cookies[RDS_MAX_ZCOOKIES];
|
||||
};
|
||||
|
||||
/*
|
||||
* Common set of flags for all RDMA related structs
|
||||
*/
|
||||
|
||||
@@ -99,6 +99,7 @@ typedef __s32 sctp_assoc_t;
|
||||
#define SCTP_RECVRCVINFO 32
|
||||
#define SCTP_RECVNXTINFO 33
|
||||
#define SCTP_DEFAULT_SNDINFO 34
|
||||
#define SCTP_AUTH_DEACTIVATE_KEY 35
|
||||
|
||||
/* Internal Socket Options. Some of the sctp library functions are
|
||||
* implemented using these socket options.
|
||||
@@ -126,6 +127,7 @@ typedef __s32 sctp_assoc_t;
|
||||
#define SCTP_STREAM_SCHEDULER 123
|
||||
#define SCTP_STREAM_SCHEDULER_VALUE 124
|
||||
#define SCTP_INTERLEAVING_SUPPORTED 125
|
||||
#define SCTP_SENDMSG_CONNECT 126
|
||||
|
||||
/* PR-SCTP policies */
|
||||
#define SCTP_PR_SCTP_NONE 0x0000
|
||||
@@ -260,6 +262,31 @@ struct sctp_nxtinfo {
|
||||
sctp_assoc_t nxt_assoc_id;
|
||||
};
|
||||
|
||||
/* 5.3.7 SCTP PR-SCTP Information Structure (SCTP_PRINFO)
|
||||
*
|
||||
* This cmsghdr structure specifies SCTP options for sendmsg().
|
||||
*
|
||||
* cmsg_level cmsg_type cmsg_data[]
|
||||
* ------------ ------------ -------------------
|
||||
* IPPROTO_SCTP SCTP_PRINFO struct sctp_prinfo
|
||||
*/
|
||||
struct sctp_prinfo {
|
||||
__u16 pr_policy;
|
||||
__u32 pr_value;
|
||||
};
|
||||
|
||||
/* 5.3.8 SCTP AUTH Information Structure (SCTP_AUTHINFO)
|
||||
*
|
||||
* This cmsghdr structure specifies SCTP options for sendmsg().
|
||||
*
|
||||
* cmsg_level cmsg_type cmsg_data[]
|
||||
* ------------ ------------ -------------------
|
||||
* IPPROTO_SCTP SCTP_AUTHINFO struct sctp_authinfo
|
||||
*/
|
||||
struct sctp_authinfo {
|
||||
__u16 auth_keynumber;
|
||||
};
|
||||
|
||||
/*
|
||||
* sinfo_flags: 16 bits (unsigned integer)
|
||||
*
|
||||
@@ -271,6 +298,8 @@ enum sctp_sinfo_flags {
|
||||
SCTP_ADDR_OVER = (1 << 1), /* Override the primary destination. */
|
||||
SCTP_ABORT = (1 << 2), /* Send an ABORT message to the peer. */
|
||||
SCTP_SACK_IMMEDIATELY = (1 << 3), /* SACK should be sent without delay. */
|
||||
/* 2 bits here have been used by SCTP_PR_SCTP_MASK */
|
||||
SCTP_SENDALL = (1 << 6),
|
||||
SCTP_NOTIFICATION = MSG_NOTIFICATION, /* Next message is not user msg but notification. */
|
||||
SCTP_EOF = MSG_FIN, /* Initiate graceful shutdown process. */
|
||||
};
|
||||
@@ -293,6 +322,14 @@ typedef enum sctp_cmsg_type {
|
||||
#define SCTP_RCVINFO SCTP_RCVINFO
|
||||
SCTP_NXTINFO, /* 5.3.6 SCTP Next Receive Information Structure */
|
||||
#define SCTP_NXTINFO SCTP_NXTINFO
|
||||
SCTP_PRINFO, /* 5.3.7 SCTP PR-SCTP Information Structure */
|
||||
#define SCTP_PRINFO SCTP_PRINFO
|
||||
SCTP_AUTHINFO, /* 5.3.8 SCTP AUTH Information Structure */
|
||||
#define SCTP_AUTHINFO SCTP_AUTHINFO
|
||||
SCTP_DSTADDRV4, /* 5.3.9 SCTP Destination IPv4 Address Structure */
|
||||
#define SCTP_DSTADDRV4 SCTP_DSTADDRV4
|
||||
SCTP_DSTADDRV6, /* 5.3.10 SCTP Destination IPv6 Address Structure */
|
||||
#define SCTP_DSTADDRV6 SCTP_DSTADDRV6
|
||||
} sctp_cmsg_t;
|
||||
|
||||
/*
|
||||
@@ -482,7 +519,12 @@ struct sctp_authkey_event {
|
||||
sctp_assoc_t auth_assoc_id;
|
||||
};
|
||||
|
||||
enum { SCTP_AUTH_NEWKEY = 0, };
|
||||
enum {
|
||||
SCTP_AUTH_NEW_KEY,
|
||||
#define SCTP_AUTH_NEWKEY SCTP_AUTH_NEW_KEY /* compatible with before */
|
||||
SCTP_AUTH_FREE_KEY,
|
||||
SCTP_AUTH_NO_AUTH,
|
||||
};
|
||||
|
||||
/*
|
||||
* 6.1.9. SCTP_SENDER_DRY_EVENT
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
/* ipcs ctl cmds */
|
||||
#define SEM_STAT 18
|
||||
#define SEM_INFO 19
|
||||
#define SEM_STAT_ANY 20
|
||||
|
||||
/* Obsolete, used only for backwards compatibility and libc5 compiles */
|
||||
struct semid_ds {
|
||||
|
||||
@@ -76,6 +76,9 @@
|
||||
#define PORT_SUNZILOG 38
|
||||
#define PORT_SUNSAB 39
|
||||
|
||||
/* Nuvoton UART */
|
||||
#define PORT_NPCM 40
|
||||
|
||||
/* Intel EG20 */
|
||||
#define PORT_PCH_8LINE 44
|
||||
#define PORT_PCH_2LINE 45
|
||||
|
||||
@@ -83,8 +83,9 @@ struct shmid_ds {
|
||||
#define SHM_UNLOCK 12
|
||||
|
||||
/* ipcs ctl commands */
|
||||
#define SHM_STAT 13
|
||||
#define SHM_INFO 14
|
||||
#define SHM_STAT 13
|
||||
#define SHM_INFO 14
|
||||
#define SHM_STAT_ANY 15
|
||||
|
||||
/* Obsolete, used only for backwards compatibility */
|
||||
struct shminfo {
|
||||
|
||||
@@ -3,15 +3,6 @@
|
||||
* System Trace Module (STM) userspace interfaces
|
||||
* Copyright (c) 2014, Intel Corporation.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms and conditions of the GNU General Public License,
|
||||
* version 2, as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* STM class implements generic infrastructure for System Trace Module devices
|
||||
* as defined in MIPI STPv2 specification.
|
||||
*/
|
||||
@@ -21,6 +12,10 @@
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
/* Maximum allowed master and channel values */
|
||||
#define STP_MASTER_MAX 0xffff
|
||||
#define STP_CHANNEL_MAX 0xffff
|
||||
|
||||
/**
|
||||
* struct stp_policy_id - identification for the STP policy
|
||||
* @size: size of the structure including real id[] length
|
||||
|
||||
@@ -780,24 +780,6 @@ enum {
|
||||
NET_BRIDGE_NF_FILTER_PPPOE_TAGGED = 5,
|
||||
};
|
||||
|
||||
/* proc/sys/net/irda */
|
||||
enum {
|
||||
NET_IRDA_DISCOVERY=1,
|
||||
NET_IRDA_DEVNAME=2,
|
||||
NET_IRDA_DEBUG=3,
|
||||
NET_IRDA_FAST_POLL=4,
|
||||
NET_IRDA_DISCOVERY_SLOTS=5,
|
||||
NET_IRDA_DISCOVERY_TIMEOUT=6,
|
||||
NET_IRDA_SLOT_TIMEOUT=7,
|
||||
NET_IRDA_MAX_BAUD_RATE=8,
|
||||
NET_IRDA_MIN_TX_TURN_TIME=9,
|
||||
NET_IRDA_MAX_TX_DATA_SIZE=10,
|
||||
NET_IRDA_MAX_TX_WINDOW=11,
|
||||
NET_IRDA_MAX_NOREPLY_TIME=12,
|
||||
NET_IRDA_WARN_NOREPLY_TIME=13,
|
||||
NET_IRDA_LAP_KEEPALIVE_TIME=14,
|
||||
};
|
||||
|
||||
|
||||
/* CTL_FS names: */
|
||||
enum
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
#ifndef __LINUX_TC_EM_IPT_H
|
||||
#define __LINUX_TC_EM_IPT_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/pkt_cls.h>
|
||||
|
||||
enum {
|
||||
TCA_EM_IPT_UNSPEC,
|
||||
TCA_EM_IPT_HOOK,
|
||||
TCA_EM_IPT_MATCH_NAME,
|
||||
TCA_EM_IPT_MATCH_REVISION,
|
||||
TCA_EM_IPT_NFPROTO,
|
||||
TCA_EM_IPT_MATCH_DATA,
|
||||
__TCA_EM_IPT_MAX
|
||||
};
|
||||
|
||||
#define TCA_EM_IPT_MAX (__TCA_EM_IPT_MAX - 1)
|
||||
|
||||
#endif
|
||||
@@ -241,6 +241,9 @@ enum {
|
||||
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 ? */
|
||||
TCP_NLA_SNDQ_SIZE, /* Data (bytes) pending in send queue */
|
||||
TCP_NLA_CA_STATE, /* ca_state of socket */
|
||||
TCP_NLA_SND_SSTHRESH, /* Slow start size threshold */
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -1,263 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
|
||||
/******************************************************************************
|
||||
*
|
||||
* telephony.h
|
||||
*
|
||||
* Basic Linux Telephony Interface
|
||||
*
|
||||
* (c) Copyright 1999-2001 Quicknet Technologies, Inc.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* Authors: Ed Okerson, <eokerson@quicknet.net>
|
||||
* Greg Herlein, <gherlein@quicknet.net>
|
||||
*
|
||||
* Contributors: Alan Cox, <alan@lxorguk.ukuu.org.uk>
|
||||
* David W. Erhart, <derhart@quicknet.net>
|
||||
*
|
||||
* IN NO EVENT SHALL QUICKNET TECHNOLOGIES, INC. BE LIABLE TO ANY PARTY FOR
|
||||
* DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
|
||||
* OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF QUICKNET
|
||||
* TECHNOLOGIES, INC. HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* QUICKNET TECHNOLOGIES, INC. SPECIFICALLY DISCLAIMS ANY WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
|
||||
* ON AN "AS IS" BASIS, AND QUICKNET TECHNOLOGIES, INC. HAS NO OBLIGATION
|
||||
* TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef TELEPHONY_H
|
||||
#define TELEPHONY_H
|
||||
|
||||
#define TELEPHONY_VERSION 3013
|
||||
|
||||
#define PHONE_VENDOR_IXJ 1
|
||||
#define PHONE_VENDOR_QUICKNET PHONE_VENDOR_IXJ
|
||||
#define PHONE_VENDOR_VOICETRONIX 2
|
||||
#define PHONE_VENDOR_ACULAB 3
|
||||
#define PHONE_VENDOR_DIGI 4
|
||||
#define PHONE_VENDOR_FRANKLIN 5
|
||||
|
||||
/******************************************************************************
|
||||
* Vendor Summary Information Area
|
||||
*
|
||||
* Quicknet Technologies, Inc. - makes low density analog telephony cards
|
||||
* with audio compression, POTS and PSTN interfaces (www.quicknet.net)
|
||||
*
|
||||
* (other vendors following this API shuld add a short description of
|
||||
* the telephony products they support under Linux)
|
||||
*
|
||||
*****************************************************************************/
|
||||
#define QTI_PHONEJACK 100
|
||||
#define QTI_LINEJACK 300
|
||||
#define QTI_PHONEJACK_LITE 400
|
||||
#define QTI_PHONEJACK_PCI 500
|
||||
#define QTI_PHONECARD 600
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* The capabilities ioctls can inform you of the capabilities of each phone
|
||||
* device installed in your system. The PHONECTL_CAPABILITIES ioctl
|
||||
* returns an integer value indicating the number of capabilities the
|
||||
* device has. The PHONECTL_CAPABILITIES_LIST will fill an array of
|
||||
* capability structs with all of its capabilities. The
|
||||
* PHONECTL_CAPABILITIES_CHECK takes a single capability struct and returns
|
||||
* a TRUE if the device has that capability, otherwise it returns false.
|
||||
*
|
||||
******************************************************************************/
|
||||
typedef enum {
|
||||
vendor = 0,
|
||||
device,
|
||||
port,
|
||||
codec,
|
||||
dsp
|
||||
} phone_cap;
|
||||
|
||||
struct phone_capability {
|
||||
char desc[80];
|
||||
phone_cap captype;
|
||||
int cap;
|
||||
int handle;
|
||||
};
|
||||
|
||||
typedef enum {
|
||||
pots = 0,
|
||||
pstn,
|
||||
handset,
|
||||
speaker
|
||||
} phone_ports;
|
||||
|
||||
#define PHONE_CAPABILITIES _IO ('q', 0x80)
|
||||
#define PHONE_CAPABILITIES_LIST _IOR ('q', 0x81, struct phone_capability *)
|
||||
#define PHONE_CAPABILITIES_CHECK _IOW ('q', 0x82, struct phone_capability *)
|
||||
|
||||
typedef struct {
|
||||
char month[3];
|
||||
char day[3];
|
||||
char hour[3];
|
||||
char min[3];
|
||||
int numlen;
|
||||
char number[11];
|
||||
int namelen;
|
||||
char name[80];
|
||||
} PHONE_CID;
|
||||
|
||||
#define PHONE_RING _IO ('q', 0x83)
|
||||
#define PHONE_HOOKSTATE _IO ('q', 0x84)
|
||||
#define PHONE_MAXRINGS _IOW ('q', 0x85, char)
|
||||
#define PHONE_RING_CADENCE _IOW ('q', 0x86, short)
|
||||
#define OLD_PHONE_RING_START _IO ('q', 0x87)
|
||||
#define PHONE_RING_START _IOW ('q', 0x87, PHONE_CID *)
|
||||
#define PHONE_RING_STOP _IO ('q', 0x88)
|
||||
|
||||
#define USA_RING_CADENCE 0xC0C0
|
||||
|
||||
#define PHONE_REC_CODEC _IOW ('q', 0x89, int)
|
||||
#define PHONE_REC_START _IO ('q', 0x8A)
|
||||
#define PHONE_REC_STOP _IO ('q', 0x8B)
|
||||
#define PHONE_REC_DEPTH _IOW ('q', 0x8C, int)
|
||||
#define PHONE_FRAME _IOW ('q', 0x8D, int)
|
||||
#define PHONE_REC_VOLUME _IOW ('q', 0x8E, int)
|
||||
#define PHONE_REC_VOLUME_LINEAR _IOW ('q', 0xDB, int)
|
||||
#define PHONE_REC_LEVEL _IO ('q', 0x8F)
|
||||
|
||||
#define PHONE_PLAY_CODEC _IOW ('q', 0x90, int)
|
||||
#define PHONE_PLAY_START _IO ('q', 0x91)
|
||||
#define PHONE_PLAY_STOP _IO ('q', 0x92)
|
||||
#define PHONE_PLAY_DEPTH _IOW ('q', 0x93, int)
|
||||
#define PHONE_PLAY_VOLUME _IOW ('q', 0x94, int)
|
||||
#define PHONE_PLAY_VOLUME_LINEAR _IOW ('q', 0xDC, int)
|
||||
#define PHONE_PLAY_LEVEL _IO ('q', 0x95)
|
||||
#define PHONE_DTMF_READY _IOR ('q', 0x96, int)
|
||||
#define PHONE_GET_DTMF _IOR ('q', 0x97, int)
|
||||
#define PHONE_GET_DTMF_ASCII _IOR ('q', 0x98, int)
|
||||
#define PHONE_DTMF_OOB _IOW ('q', 0x99, int)
|
||||
#define PHONE_EXCEPTION _IOR ('q', 0x9A, int)
|
||||
#define PHONE_PLAY_TONE _IOW ('q', 0x9B, char)
|
||||
#define PHONE_SET_TONE_ON_TIME _IOW ('q', 0x9C, int)
|
||||
#define PHONE_SET_TONE_OFF_TIME _IOW ('q', 0x9D, int)
|
||||
#define PHONE_GET_TONE_ON_TIME _IO ('q', 0x9E)
|
||||
#define PHONE_GET_TONE_OFF_TIME _IO ('q', 0x9F)
|
||||
#define PHONE_GET_TONE_STATE _IO ('q', 0xA0)
|
||||
#define PHONE_BUSY _IO ('q', 0xA1)
|
||||
#define PHONE_RINGBACK _IO ('q', 0xA2)
|
||||
#define PHONE_DIALTONE _IO ('q', 0xA3)
|
||||
#define PHONE_CPT_STOP _IO ('q', 0xA4)
|
||||
|
||||
#define PHONE_PSTN_SET_STATE _IOW ('q', 0xA4, int)
|
||||
#define PHONE_PSTN_GET_STATE _IO ('q', 0xA5)
|
||||
|
||||
#define PSTN_ON_HOOK 0
|
||||
#define PSTN_RINGING 1
|
||||
#define PSTN_OFF_HOOK 2
|
||||
#define PSTN_PULSE_DIAL 3
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* The wink duration is tunable with this ioctl. The default wink duration
|
||||
* is 320ms. You do not need to use this ioctl if you do not require a
|
||||
* different wink duration.
|
||||
*
|
||||
******************************************************************************/
|
||||
#define PHONE_WINK_DURATION _IOW ('q', 0xA6, int)
|
||||
#define PHONE_WINK _IOW ('q', 0xAA, int)
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Codec Definitions
|
||||
*
|
||||
******************************************************************************/
|
||||
typedef enum {
|
||||
G723_63 = 1,
|
||||
G723_53 = 2,
|
||||
TS85 = 3,
|
||||
TS48 = 4,
|
||||
TS41 = 5,
|
||||
G728 = 6,
|
||||
G729 = 7,
|
||||
ULAW = 8,
|
||||
ALAW = 9,
|
||||
LINEAR16 = 10,
|
||||
LINEAR8 = 11,
|
||||
WSS = 12,
|
||||
G729B = 13
|
||||
} phone_codec;
|
||||
|
||||
struct phone_codec_data
|
||||
{
|
||||
phone_codec type;
|
||||
unsigned short buf_min, buf_opt, buf_max;
|
||||
};
|
||||
|
||||
#define PHONE_QUERY_CODEC _IOWR ('q', 0xA7, struct phone_codec_data *)
|
||||
#define PHONE_PSTN_LINETEST _IO ('q', 0xA8)
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* This controls the VAD/CNG functionality of G.723.1. The driver will
|
||||
* always pass full size frames, any unused bytes will be padded with zeros,
|
||||
* and frames passed to the driver should also be padded with zeros. The
|
||||
* frame type is encoded in the least significant two bits of the first
|
||||
* WORD of the frame as follows:
|
||||
*
|
||||
* bits 1-0 Frame Type Data Rate Significant Words
|
||||
* 00 0 G.723.1 6.3 12
|
||||
* 01 1 G.723.1 5.3 10
|
||||
* 10 2 VAD/CNG 2
|
||||
* 11 3 Repeat last CNG 2 bits
|
||||
*
|
||||
******************************************************************************/
|
||||
#define PHONE_VAD _IOW ('q', 0xA9, int)
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* The exception structure allows us to multiplex multiple events onto the
|
||||
* select() exception set. If any of these flags are set select() will
|
||||
* return with a positive indication on the exception set. The dtmf_ready
|
||||
* bit indicates if there is data waiting in the DTMF buffer. The
|
||||
* hookstate bit is set if there is a change in hookstate status, it does not
|
||||
* indicate the current state of the hookswitch. The pstn_ring bit
|
||||
* indicates that the DAA on a LineJACK card has detected ring voltage on
|
||||
* the PSTN port. The caller_id bit indicates that caller_id data has been
|
||||
* received and is available. The pstn_wink bit indicates that the DAA on
|
||||
* the LineJACK has received a wink from the telco switch. The f0, f1, f2
|
||||
* and f3 bits indicate that the filter has been triggered by detecting the
|
||||
* frequency programmed into that filter.
|
||||
*
|
||||
* The remaining bits should be set to zero. They will become defined over time
|
||||
* for other interface cards and their needs.
|
||||
*
|
||||
******************************************************************************/
|
||||
struct phone_except
|
||||
{
|
||||
unsigned int dtmf_ready:1;
|
||||
unsigned int hookstate:1;
|
||||
unsigned int pstn_ring:1;
|
||||
unsigned int caller_id:1;
|
||||
unsigned int pstn_wink:1;
|
||||
unsigned int f0:1;
|
||||
unsigned int f1:1;
|
||||
unsigned int f2:1;
|
||||
unsigned int f3:1;
|
||||
unsigned int flash:1;
|
||||
unsigned int fc0:1;
|
||||
unsigned int fc1:1;
|
||||
unsigned int fc2:1;
|
||||
unsigned int fc3:1;
|
||||
unsigned int reserved:18;
|
||||
};
|
||||
|
||||
union telephony_exception {
|
||||
struct phone_except bits;
|
||||
unsigned int bytes;
|
||||
};
|
||||
|
||||
|
||||
#endif /* TELEPHONY_H */
|
||||
|
||||
@@ -42,6 +42,18 @@ struct itimerval {
|
||||
struct timeval it_value; /* current value */
|
||||
};
|
||||
|
||||
/*
|
||||
* legacy timeval structure, only embedded in structures that
|
||||
* traditionally used 'timeval' to pass time intervals (not absolute
|
||||
* times). Do not add new users. If user space fails to compile
|
||||
* here, this is probably because it is not y2038 safe and needs to
|
||||
* be changed to use another interface.
|
||||
*/
|
||||
struct __kernel_old_timeval {
|
||||
__kernel_long_t tv_sec;
|
||||
__kernel_long_t tv_usec;
|
||||
};
|
||||
|
||||
/*
|
||||
* The IDs of the various system clocks (for POSIX.1b interval timers):
|
||||
*/
|
||||
|
||||
+89
-74
@@ -45,81 +45,38 @@
|
||||
* TIPC addressing primitives
|
||||
*/
|
||||
|
||||
struct tipc_portid {
|
||||
struct tipc_socket_addr {
|
||||
__u32 ref;
|
||||
__u32 node;
|
||||
};
|
||||
|
||||
struct tipc_name {
|
||||
struct tipc_service_addr {
|
||||
__u32 type;
|
||||
__u32 instance;
|
||||
};
|
||||
|
||||
struct tipc_name_seq {
|
||||
struct tipc_service_range {
|
||||
__u32 type;
|
||||
__u32 lower;
|
||||
__u32 upper;
|
||||
};
|
||||
|
||||
/* TIPC Address Size, Offset, Mask specification for Z.C.N
|
||||
/*
|
||||
* Application-accessible service types
|
||||
*/
|
||||
#define TIPC_NODE_BITS 12
|
||||
#define TIPC_CLUSTER_BITS 12
|
||||
#define TIPC_ZONE_BITS 8
|
||||
|
||||
#define TIPC_NODE_OFFSET 0
|
||||
#define TIPC_CLUSTER_OFFSET TIPC_NODE_BITS
|
||||
#define TIPC_ZONE_OFFSET (TIPC_CLUSTER_OFFSET + TIPC_CLUSTER_BITS)
|
||||
|
||||
#define TIPC_NODE_SIZE ((1UL << TIPC_NODE_BITS) - 1)
|
||||
#define TIPC_CLUSTER_SIZE ((1UL << TIPC_CLUSTER_BITS) - 1)
|
||||
#define TIPC_ZONE_SIZE ((1UL << TIPC_ZONE_BITS) - 1)
|
||||
|
||||
#define TIPC_NODE_MASK (TIPC_NODE_SIZE << TIPC_NODE_OFFSET)
|
||||
#define TIPC_CLUSTER_MASK (TIPC_CLUSTER_SIZE << TIPC_CLUSTER_OFFSET)
|
||||
#define TIPC_ZONE_MASK (TIPC_ZONE_SIZE << TIPC_ZONE_OFFSET)
|
||||
|
||||
#define TIPC_ZONE_CLUSTER_MASK (TIPC_ZONE_MASK | TIPC_CLUSTER_MASK)
|
||||
|
||||
static inline __u32 tipc_addr(unsigned int zone,
|
||||
unsigned int cluster,
|
||||
unsigned int node)
|
||||
{
|
||||
return (zone << TIPC_ZONE_OFFSET) |
|
||||
(cluster << TIPC_CLUSTER_OFFSET) |
|
||||
node;
|
||||
}
|
||||
|
||||
static inline unsigned int tipc_zone(__u32 addr)
|
||||
{
|
||||
return addr >> TIPC_ZONE_OFFSET;
|
||||
}
|
||||
|
||||
static inline unsigned int tipc_cluster(__u32 addr)
|
||||
{
|
||||
return (addr & TIPC_CLUSTER_MASK) >> TIPC_CLUSTER_OFFSET;
|
||||
}
|
||||
|
||||
static inline unsigned int tipc_node(__u32 addr)
|
||||
{
|
||||
return addr & TIPC_NODE_MASK;
|
||||
}
|
||||
#define TIPC_NODE_STATE 0 /* node state service type */
|
||||
#define TIPC_TOP_SRV 1 /* topology server service type */
|
||||
#define TIPC_LINK_STATE 2 /* link state service type */
|
||||
#define TIPC_RESERVED_TYPES 64 /* lowest user-allowed service type */
|
||||
|
||||
/*
|
||||
* Application-accessible port name types
|
||||
* Publication scopes when binding service / service range
|
||||
*/
|
||||
|
||||
#define TIPC_CFG_SRV 0 /* configuration service name type */
|
||||
#define TIPC_TOP_SRV 1 /* topology service name type */
|
||||
#define TIPC_LINK_STATE 2 /* link state name type */
|
||||
#define TIPC_RESERVED_TYPES 64 /* lowest user-publishable name type */
|
||||
|
||||
/*
|
||||
* Publication scopes when binding port names and port name sequences
|
||||
*/
|
||||
#define TIPC_ZONE_SCOPE 1
|
||||
#define TIPC_CLUSTER_SCOPE 2
|
||||
#define TIPC_NODE_SCOPE 3
|
||||
enum tipc_scope {
|
||||
TIPC_CLUSTER_SCOPE = 2, /* 0 can also be used */
|
||||
TIPC_NODE_SCOPE = 3
|
||||
};
|
||||
|
||||
/*
|
||||
* Limiting values for messages
|
||||
@@ -151,28 +108,28 @@ static inline unsigned int tipc_node(__u32 addr)
|
||||
* TIPC topology subscription service definitions
|
||||
*/
|
||||
|
||||
#define TIPC_SUB_PORTS 0x01 /* filter for port availability */
|
||||
#define TIPC_SUB_SERVICE 0x02 /* filter for service availability */
|
||||
#define TIPC_SUB_CANCEL 0x04 /* cancel a subscription */
|
||||
#define TIPC_SUB_PORTS 0x01 /* filter: evt at each match */
|
||||
#define TIPC_SUB_SERVICE 0x02 /* filter: evt at first up/last down */
|
||||
#define TIPC_SUB_CANCEL 0x04 /* filter: cancel a subscription */
|
||||
|
||||
#define TIPC_WAIT_FOREVER (~0) /* timeout for permanent subscription */
|
||||
|
||||
struct tipc_subscr {
|
||||
struct tipc_name_seq seq; /* name sequence of interest */
|
||||
struct tipc_service_range seq; /* range of interest */
|
||||
__u32 timeout; /* subscription duration (in ms) */
|
||||
__u32 filter; /* bitmask of filter options */
|
||||
char usr_handle[8]; /* available for subscriber use */
|
||||
};
|
||||
|
||||
#define TIPC_PUBLISHED 1 /* publication event */
|
||||
#define TIPC_WITHDRAWN 2 /* withdraw event */
|
||||
#define TIPC_WITHDRAWN 2 /* withdrawal event */
|
||||
#define TIPC_SUBSCR_TIMEOUT 3 /* subscription timeout event */
|
||||
|
||||
struct tipc_event {
|
||||
__u32 event; /* event type */
|
||||
__u32 found_lower; /* matching name seq instances */
|
||||
__u32 found_upper; /* " " " " */
|
||||
struct tipc_portid port; /* associated port */
|
||||
__u32 found_lower; /* matching range */
|
||||
__u32 found_upper; /* " " */
|
||||
struct tipc_socket_addr port; /* associated socket */
|
||||
struct tipc_subscr s; /* associated subscription */
|
||||
};
|
||||
|
||||
@@ -192,20 +149,20 @@ struct tipc_event {
|
||||
#define SOL_TIPC 271
|
||||
#endif
|
||||
|
||||
#define TIPC_ADDR_NAMESEQ 1
|
||||
#define TIPC_ADDR_MCAST 1
|
||||
#define TIPC_ADDR_NAME 2
|
||||
#define TIPC_ADDR_ID 3
|
||||
#define TIPC_ADDR_MCAST 1
|
||||
#define TIPC_SERVICE_RANGE 1
|
||||
#define TIPC_SERVICE_ADDR 2
|
||||
#define TIPC_SOCKET_ADDR 3
|
||||
|
||||
struct sockaddr_tipc {
|
||||
unsigned short family;
|
||||
unsigned char addrtype;
|
||||
signed char scope;
|
||||
union {
|
||||
struct tipc_portid id;
|
||||
struct tipc_name_seq nameseq;
|
||||
struct tipc_socket_addr id;
|
||||
struct tipc_service_range nameseq;
|
||||
struct {
|
||||
struct tipc_name name;
|
||||
struct tipc_service_addr name;
|
||||
__u32 domain;
|
||||
} name;
|
||||
} addr;
|
||||
@@ -243,7 +200,7 @@ struct sockaddr_tipc {
|
||||
struct tipc_group_req {
|
||||
__u32 type; /* group id */
|
||||
__u32 instance; /* member id */
|
||||
__u32 scope; /* zone/cluster/node */
|
||||
__u32 scope; /* cluster/node */
|
||||
__u32 flags;
|
||||
};
|
||||
|
||||
@@ -259,7 +216,7 @@ struct tipc_group_req {
|
||||
#define TIPC_MAX_MEDIA_NAME 16
|
||||
#define TIPC_MAX_IF_NAME 16
|
||||
#define TIPC_MAX_BEARER_NAME 32
|
||||
#define TIPC_MAX_LINK_NAME 60
|
||||
#define TIPC_MAX_LINK_NAME 68
|
||||
|
||||
#define SIOCGETLINKNAME SIOCPROTOPRIVATE
|
||||
|
||||
@@ -268,4 +225,62 @@ struct tipc_sioc_ln_req {
|
||||
__u32 bearer_id;
|
||||
char linkname[TIPC_MAX_LINK_NAME];
|
||||
};
|
||||
|
||||
|
||||
/* The macros and functions below are deprecated:
|
||||
*/
|
||||
|
||||
#define TIPC_CFG_SRV 0
|
||||
#define TIPC_ZONE_SCOPE 1
|
||||
|
||||
#define TIPC_ADDR_NAMESEQ 1
|
||||
#define TIPC_ADDR_NAME 2
|
||||
#define TIPC_ADDR_ID 3
|
||||
|
||||
#define TIPC_NODE_BITS 12
|
||||
#define TIPC_CLUSTER_BITS 12
|
||||
#define TIPC_ZONE_BITS 8
|
||||
|
||||
#define TIPC_NODE_OFFSET 0
|
||||
#define TIPC_CLUSTER_OFFSET TIPC_NODE_BITS
|
||||
#define TIPC_ZONE_OFFSET (TIPC_CLUSTER_OFFSET + TIPC_CLUSTER_BITS)
|
||||
|
||||
#define TIPC_NODE_SIZE ((1UL << TIPC_NODE_BITS) - 1)
|
||||
#define TIPC_CLUSTER_SIZE ((1UL << TIPC_CLUSTER_BITS) - 1)
|
||||
#define TIPC_ZONE_SIZE ((1UL << TIPC_ZONE_BITS) - 1)
|
||||
|
||||
#define TIPC_NODE_MASK (TIPC_NODE_SIZE << TIPC_NODE_OFFSET)
|
||||
#define TIPC_CLUSTER_MASK (TIPC_CLUSTER_SIZE << TIPC_CLUSTER_OFFSET)
|
||||
#define TIPC_ZONE_MASK (TIPC_ZONE_SIZE << TIPC_ZONE_OFFSET)
|
||||
|
||||
#define TIPC_ZONE_CLUSTER_MASK (TIPC_ZONE_MASK | TIPC_CLUSTER_MASK)
|
||||
|
||||
#define tipc_portid tipc_socket_addr
|
||||
#define tipc_name tipc_service_addr
|
||||
#define tipc_name_seq tipc_service_range
|
||||
|
||||
static inline __u32 tipc_addr(unsigned int zone,
|
||||
unsigned int cluster,
|
||||
unsigned int node)
|
||||
{
|
||||
return (zone << TIPC_ZONE_OFFSET) |
|
||||
(cluster << TIPC_CLUSTER_OFFSET) |
|
||||
node;
|
||||
}
|
||||
|
||||
static inline unsigned int tipc_zone(__u32 addr)
|
||||
{
|
||||
return addr >> TIPC_ZONE_OFFSET;
|
||||
}
|
||||
|
||||
static inline unsigned int tipc_cluster(__u32 addr)
|
||||
{
|
||||
return (addr & TIPC_CLUSTER_MASK) >> TIPC_CLUSTER_OFFSET;
|
||||
}
|
||||
|
||||
static inline unsigned int tipc_node(__u32 addr)
|
||||
{
|
||||
return addr & TIPC_NODE_MASK;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -114,6 +114,13 @@ enum {
|
||||
TIPC_NLA_SOCK_REF, /* u32 */
|
||||
TIPC_NLA_SOCK_CON, /* nest */
|
||||
TIPC_NLA_SOCK_HAS_PUBL, /* flag */
|
||||
TIPC_NLA_SOCK_STAT, /* nest */
|
||||
TIPC_NLA_SOCK_TYPE, /* u32 */
|
||||
TIPC_NLA_SOCK_INO, /* u32 */
|
||||
TIPC_NLA_SOCK_UID, /* u32 */
|
||||
TIPC_NLA_SOCK_TIPC_STATE, /* u32 */
|
||||
TIPC_NLA_SOCK_COOKIE, /* u64 */
|
||||
TIPC_NLA_SOCK_PAD, /* flag */
|
||||
|
||||
__TIPC_NLA_SOCK_MAX,
|
||||
TIPC_NLA_SOCK_MAX = __TIPC_NLA_SOCK_MAX - 1
|
||||
@@ -162,6 +169,8 @@ enum {
|
||||
TIPC_NLA_NET_UNSPEC,
|
||||
TIPC_NLA_NET_ID, /* u32 */
|
||||
TIPC_NLA_NET_ADDR, /* u32 */
|
||||
TIPC_NLA_NET_NODEID, /* u64 */
|
||||
TIPC_NLA_NET_NODEID_W1, /* u64 */
|
||||
|
||||
__TIPC_NLA_NET_MAX,
|
||||
TIPC_NLA_NET_MAX = __TIPC_NLA_NET_MAX - 1
|
||||
@@ -238,6 +247,18 @@ enum {
|
||||
TIPC_NLA_CON_MAX = __TIPC_NLA_CON_MAX - 1
|
||||
};
|
||||
|
||||
/* Nest, socket statistics info */
|
||||
enum {
|
||||
TIPC_NLA_SOCK_STAT_RCVQ, /* u32 */
|
||||
TIPC_NLA_SOCK_STAT_SENDQ, /* u32 */
|
||||
TIPC_NLA_SOCK_STAT_LINK_CONG, /* flag */
|
||||
TIPC_NLA_SOCK_STAT_CONN_CONG, /* flag */
|
||||
TIPC_NLA_SOCK_STAT_DROP, /* u32 */
|
||||
|
||||
__TIPC_NLA_SOCK_STAT_MAX,
|
||||
TIPC_NLA_SOCK_STAT_MAX = __TIPC_NLA_SOCK_STAT_MAX - 1
|
||||
};
|
||||
|
||||
/* Nest, link propreties. Valid for link, media and bearer */
|
||||
enum {
|
||||
TIPC_NLA_PROP_UNSPEC,
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
/* AF_TIPC sock_diag interface for querying open sockets */
|
||||
|
||||
#ifndef _UAPI__TIPC_SOCKETS_DIAG_H__
|
||||
#define _UAPI__TIPC_SOCKETS_DIAG_H__
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/sock_diag.h>
|
||||
|
||||
/* Request */
|
||||
struct tipc_sock_diag_req {
|
||||
__u8 sdiag_family; /* must be AF_TIPC */
|
||||
__u8 sdiag_protocol; /* must be 0 */
|
||||
__u16 pad; /* must be 0 */
|
||||
__u32 tidiag_states; /* query*/
|
||||
};
|
||||
#endif /* _UAPI__TIPC_SOCKETS_DIAG_H__ */
|
||||
@@ -38,6 +38,7 @@
|
||||
|
||||
/* TLS socket options */
|
||||
#define TLS_TX 1 /* Set transmit parameters */
|
||||
#define TLS_RX 2 /* Set receive parameters */
|
||||
|
||||
/* Supported versions */
|
||||
#define TLS_VERSION_MINOR(ver) ((ver) & 0xFF)
|
||||
@@ -59,6 +60,7 @@
|
||||
#define TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE 8
|
||||
|
||||
#define TLS_SET_RECORD_TYPE 1
|
||||
#define TLS_GET_RECORD_TYPE 2
|
||||
|
||||
struct tls_crypto_info {
|
||||
__u16 version;
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
/* bInterfaceProtocol values to denote the version of the standard used */
|
||||
#define UAC_VERSION_1 0x00
|
||||
#define UAC_VERSION_2 0x20
|
||||
#define UAC_VERSION_3 0x30
|
||||
|
||||
/* A.2 Audio Interface Subclass Codes */
|
||||
#define USB_SUBCLASS_AUDIOCONTROL 0x01
|
||||
|
||||
@@ -589,6 +589,98 @@ enum v4l2_vp8_golden_frame_sel {
|
||||
#define V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP (V4L2_CID_MPEG_BASE+510)
|
||||
#define V4L2_CID_MPEG_VIDEO_VPX_PROFILE (V4L2_CID_MPEG_BASE+511)
|
||||
|
||||
/* CIDs for HEVC encoding. */
|
||||
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP (V4L2_CID_MPEG_BASE + 600)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP (V4L2_CID_MPEG_BASE + 601)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP (V4L2_CID_MPEG_BASE + 602)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP (V4L2_CID_MPEG_BASE + 603)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP (V4L2_CID_MPEG_BASE + 604)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP (V4L2_CID_MPEG_BASE + 605)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE (V4L2_CID_MPEG_BASE + 606)
|
||||
enum v4l2_mpeg_video_hevc_hier_coding_type {
|
||||
V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_B = 0,
|
||||
V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P = 1,
|
||||
};
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER (V4L2_CID_MPEG_BASE + 607)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP (V4L2_CID_MPEG_BASE + 608)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP (V4L2_CID_MPEG_BASE + 609)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP (V4L2_CID_MPEG_BASE + 610)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP (V4L2_CID_MPEG_BASE + 611)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP (V4L2_CID_MPEG_BASE + 612)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP (V4L2_CID_MPEG_BASE + 613)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP (V4L2_CID_MPEG_BASE + 614)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_PROFILE (V4L2_CID_MPEG_BASE + 615)
|
||||
enum v4l2_mpeg_video_hevc_profile {
|
||||
V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN = 0,
|
||||
V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE = 1,
|
||||
V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10 = 2,
|
||||
};
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_LEVEL (V4L2_CID_MPEG_BASE + 616)
|
||||
enum v4l2_mpeg_video_hevc_level {
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_1 = 0,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_2 = 1,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_2_1 = 2,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_3 = 3,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_3_1 = 4,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_4 = 5,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1 = 6,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_5 = 7,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1 = 8,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2 = 9,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_6 = 10,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1 = 11,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_6_2 = 12,
|
||||
};
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION (V4L2_CID_MPEG_BASE + 617)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_TIER (V4L2_CID_MPEG_BASE + 618)
|
||||
enum v4l2_mpeg_video_hevc_tier {
|
||||
V4L2_MPEG_VIDEO_HEVC_TIER_MAIN = 0,
|
||||
V4L2_MPEG_VIDEO_HEVC_TIER_HIGH = 1,
|
||||
};
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH (V4L2_CID_MPEG_BASE + 619)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE (V4L2_CID_MPEG_BASE + 620)
|
||||
enum v4l2_cid_mpeg_video_hevc_loop_filter_mode {
|
||||
V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED = 0,
|
||||
V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_ENABLED = 1,
|
||||
V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY = 2,
|
||||
};
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2 (V4L2_CID_MPEG_BASE + 621)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2 (V4L2_CID_MPEG_BASE + 622)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE (V4L2_CID_MPEG_BASE + 623)
|
||||
enum v4l2_cid_mpeg_video_hevc_refresh_type {
|
||||
V4L2_MPEG_VIDEO_HEVC_REFRESH_NONE = 0,
|
||||
V4L2_MPEG_VIDEO_HEVC_REFRESH_CRA = 1,
|
||||
V4L2_MPEG_VIDEO_HEVC_REFRESH_IDR = 2,
|
||||
};
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD (V4L2_CID_MPEG_BASE + 624)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU (V4L2_CID_MPEG_BASE + 625)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED (V4L2_CID_MPEG_BASE + 626)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT (V4L2_CID_MPEG_BASE + 627)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB (V4L2_CID_MPEG_BASE + 628)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID (V4L2_CID_MPEG_BASE + 629)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING (V4L2_CID_MPEG_BASE + 630)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1 (V4L2_CID_MPEG_BASE + 631)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_INTRA_PU_SPLIT (V4L2_CID_MPEG_BASE + 632)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION (V4L2_CID_MPEG_BASE + 633)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE (V4L2_CID_MPEG_BASE + 634)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD (V4L2_CID_MPEG_BASE + 635)
|
||||
enum v4l2_cid_mpeg_video_hevc_size_of_length_field {
|
||||
V4L2_MPEG_VIDEO_HEVC_SIZE_0 = 0,
|
||||
V4L2_MPEG_VIDEO_HEVC_SIZE_1 = 1,
|
||||
V4L2_MPEG_VIDEO_HEVC_SIZE_2 = 2,
|
||||
V4L2_MPEG_VIDEO_HEVC_SIZE_4 = 3,
|
||||
};
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR (V4L2_CID_MPEG_BASE + 636)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR (V4L2_CID_MPEG_BASE + 637)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR (V4L2_CID_MPEG_BASE + 638)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR (V4L2_CID_MPEG_BASE + 639)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR (V4L2_CID_MPEG_BASE + 640)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR (V4L2_CID_MPEG_BASE + 641)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR (V4L2_CID_MPEG_BASE + 642)
|
||||
#define V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES (V4L2_CID_MPEG_BASE + 643)
|
||||
#define V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR (V4L2_CID_MPEG_BASE + 644)
|
||||
|
||||
/* MPEG-class control IDs specific to the CX2341x driver as defined by V4L2 */
|
||||
#define V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000)
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+0)
|
||||
@@ -657,7 +749,6 @@ enum v4l2_mpeg_mfc51_video_force_frame_type {
|
||||
#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC (V4L2_CID_MPEG_MFC51_BASE+53)
|
||||
#define V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P (V4L2_CID_MPEG_MFC51_BASE+54)
|
||||
|
||||
|
||||
/* Camera class control IDs */
|
||||
|
||||
#define V4L2_CID_CAMERA_CLASS_BASE (V4L2_CTRL_CLASS_CAMERA | 0x900)
|
||||
|
||||
@@ -18,8 +18,8 @@
|
||||
|
||||
/**
|
||||
* struct v4l2_mbus_framefmt - frame format on the media bus
|
||||
* @width: frame width
|
||||
* @height: frame height
|
||||
* @width: image width
|
||||
* @height: image height
|
||||
* @code: data format code (from enum v4l2_mbus_pixelcode)
|
||||
* @field: used interlacing type (from enum v4l2_field)
|
||||
* @colorspace: colorspace of the data (from enum v4l2_colorspace)
|
||||
|
||||
@@ -575,6 +575,33 @@ struct vfio_device_gfx_plane_info {
|
||||
|
||||
#define VFIO_DEVICE_GET_GFX_DMABUF _IO(VFIO_TYPE, VFIO_BASE + 15)
|
||||
|
||||
/**
|
||||
* VFIO_DEVICE_IOEVENTFD - _IOW(VFIO_TYPE, VFIO_BASE + 16,
|
||||
* struct vfio_device_ioeventfd)
|
||||
*
|
||||
* Perform a write to the device at the specified device fd offset, with
|
||||
* the specified data and width when the provided eventfd is triggered.
|
||||
* vfio bus drivers may not support this for all regions, for all widths,
|
||||
* or at all. vfio-pci currently only enables support for BAR regions,
|
||||
* excluding the MSI-X vector table.
|
||||
*
|
||||
* Return: 0 on success, -errno on failure.
|
||||
*/
|
||||
struct vfio_device_ioeventfd {
|
||||
__u32 argsz;
|
||||
__u32 flags;
|
||||
#define VFIO_DEVICE_IOEVENTFD_8 (1 << 0) /* 1-byte write */
|
||||
#define VFIO_DEVICE_IOEVENTFD_16 (1 << 1) /* 2-byte write */
|
||||
#define VFIO_DEVICE_IOEVENTFD_32 (1 << 2) /* 4-byte write */
|
||||
#define VFIO_DEVICE_IOEVENTFD_64 (1 << 3) /* 8-byte write */
|
||||
#define VFIO_DEVICE_IOEVENTFD_SIZE_MASK (0xf)
|
||||
__u64 offset; /* device fd offset of write */
|
||||
__u64 data; /* data to be written */
|
||||
__s32 fd; /* -1 for de-assignment */
|
||||
};
|
||||
|
||||
#define VFIO_DEVICE_IOEVENTFD _IO(VFIO_TYPE, VFIO_BASE + 16)
|
||||
|
||||
/* -------- API for Type1 VFIO IOMMU -------- */
|
||||
|
||||
/**
|
||||
|
||||
@@ -635,6 +635,7 @@ struct v4l2_pix_format {
|
||||
#define V4L2_PIX_FMT_VC1_ANNEX_L v4l2_fourcc('V', 'C', '1', 'L') /* SMPTE 421M Annex L compliant stream */
|
||||
#define V4L2_PIX_FMT_VP8 v4l2_fourcc('V', 'P', '8', '0') /* VP8 */
|
||||
#define V4L2_PIX_FMT_VP9 v4l2_fourcc('V', 'P', '9', '0') /* VP9 */
|
||||
#define V4L2_PIX_FMT_HEVC v4l2_fourcc('H', 'E', 'V', 'C') /* HEVC aka H.265 */
|
||||
|
||||
/* Vendor-specific formats */
|
||||
#define V4L2_PIX_FMT_CPIA1 v4l2_fourcc('C', 'P', 'I', 'A') /* cpia1 YUV */
|
||||
|
||||
@@ -53,7 +53,24 @@ struct virtio_balloon_config {
|
||||
#define VIRTIO_BALLOON_S_MEMTOT 5 /* Total amount of memory */
|
||||
#define VIRTIO_BALLOON_S_AVAIL 6 /* Available memory as in /proc */
|
||||
#define VIRTIO_BALLOON_S_CACHES 7 /* Disk caches */
|
||||
#define VIRTIO_BALLOON_S_NR 8
|
||||
#define VIRTIO_BALLOON_S_HTLB_PGALLOC 8 /* Hugetlb page allocations */
|
||||
#define VIRTIO_BALLOON_S_HTLB_PGFAIL 9 /* Hugetlb page allocation failures */
|
||||
#define VIRTIO_BALLOON_S_NR 10
|
||||
|
||||
#define VIRTIO_BALLOON_S_NAMES_WITH_PREFIX(VIRTIO_BALLOON_S_NAMES_prefix) { \
|
||||
VIRTIO_BALLOON_S_NAMES_prefix "swap-in", \
|
||||
VIRTIO_BALLOON_S_NAMES_prefix "swap-out", \
|
||||
VIRTIO_BALLOON_S_NAMES_prefix "major-faults", \
|
||||
VIRTIO_BALLOON_S_NAMES_prefix "minor-faults", \
|
||||
VIRTIO_BALLOON_S_NAMES_prefix "free-memory", \
|
||||
VIRTIO_BALLOON_S_NAMES_prefix "total-memory", \
|
||||
VIRTIO_BALLOON_S_NAMES_prefix "available-memory", \
|
||||
VIRTIO_BALLOON_S_NAMES_prefix "disk-caches", \
|
||||
VIRTIO_BALLOON_S_NAMES_prefix "hugetlb-allocations", \
|
||||
VIRTIO_BALLOON_S_NAMES_prefix "hugetlb-failures" \
|
||||
}
|
||||
|
||||
#define VIRTIO_BALLOON_S_NAMES VIRTIO_BALLOON_S_NAMES_WITH_PREFIX("")
|
||||
|
||||
/*
|
||||
* Memory statistics structure.
|
||||
|
||||
@@ -53,15 +53,20 @@ struct bnxt_re_uctx_resp {
|
||||
__u32 rsvd;
|
||||
};
|
||||
|
||||
/*
|
||||
* This struct is placed after the ib_uverbs_alloc_pd_resp struct, which is
|
||||
* not 8 byted aligned. To avoid undesired padding in various cases we have to
|
||||
* set this struct to packed.
|
||||
*/
|
||||
struct bnxt_re_pd_resp {
|
||||
__u32 pdid;
|
||||
__u32 dpi;
|
||||
__u64 dbr;
|
||||
};
|
||||
} __attribute__((packed, aligned(4)));
|
||||
|
||||
struct bnxt_re_cq_req {
|
||||
__u64 cq_va;
|
||||
__u64 cq_handle;
|
||||
__aligned_u64 cq_va;
|
||||
__aligned_u64 cq_handle;
|
||||
};
|
||||
|
||||
struct bnxt_re_cq_resp {
|
||||
@@ -72,9 +77,9 @@ struct bnxt_re_cq_resp {
|
||||
};
|
||||
|
||||
struct bnxt_re_qp_req {
|
||||
__u64 qpsva;
|
||||
__u64 qprva;
|
||||
__u64 qp_handle;
|
||||
__aligned_u64 qpsva;
|
||||
__aligned_u64 qprva;
|
||||
__aligned_u64 qp_handle;
|
||||
};
|
||||
|
||||
struct bnxt_re_qp_resp {
|
||||
@@ -83,8 +88,8 @@ struct bnxt_re_qp_resp {
|
||||
};
|
||||
|
||||
struct bnxt_re_srq_req {
|
||||
__u64 srqva;
|
||||
__u64 srq_handle;
|
||||
__aligned_u64 srqva;
|
||||
__aligned_u64 srq_handle;
|
||||
};
|
||||
|
||||
struct bnxt_re_srq_resp {
|
||||
|
||||
@@ -41,21 +41,21 @@
|
||||
* Make sure that all structs defined in this file remain laid out so
|
||||
* that they pack the same way on 32-bit and 64-bit architectures (to
|
||||
* avoid incompatibility between 32-bit userspace and 64-bit kernels).
|
||||
* In particular do not use pointer types -- pass pointers in __u64
|
||||
* In particular do not use pointer types -- pass pointers in __aligned_u64
|
||||
* instead.
|
||||
*/
|
||||
struct iwch_create_cq_req {
|
||||
__u64 user_rptr_addr;
|
||||
__aligned_u64 user_rptr_addr;
|
||||
};
|
||||
|
||||
struct iwch_create_cq_resp_v0 {
|
||||
__u64 key;
|
||||
__aligned_u64 key;
|
||||
__u32 cqid;
|
||||
__u32 size_log2;
|
||||
};
|
||||
|
||||
struct iwch_create_cq_resp {
|
||||
__u64 key;
|
||||
__aligned_u64 key;
|
||||
__u32 cqid;
|
||||
__u32 size_log2;
|
||||
__u32 memsize;
|
||||
@@ -63,8 +63,8 @@ struct iwch_create_cq_resp {
|
||||
};
|
||||
|
||||
struct iwch_create_qp_resp {
|
||||
__u64 key;
|
||||
__u64 db_key;
|
||||
__aligned_u64 key;
|
||||
__aligned_u64 db_key;
|
||||
__u32 qpid;
|
||||
__u32 size_log2;
|
||||
__u32 sq_size_log2;
|
||||
@@ -74,4 +74,9 @@ struct iwch_create_qp_resp {
|
||||
struct iwch_reg_user_mr_resp {
|
||||
__u32 pbl_addr;
|
||||
};
|
||||
|
||||
struct iwch_alloc_pd_resp {
|
||||
__u32 pdid;
|
||||
};
|
||||
|
||||
#endif /* CXGB3_ABI_USER_H */
|
||||
|
||||
@@ -41,13 +41,13 @@
|
||||
* Make sure that all structs defined in this file remain laid out so
|
||||
* that they pack the same way on 32-bit and 64-bit architectures (to
|
||||
* avoid incompatibility between 32-bit userspace and 64-bit kernels).
|
||||
* In particular do not use pointer types -- pass pointers in __u64
|
||||
* In particular do not use pointer types -- pass pointers in __aligned_u64
|
||||
* instead.
|
||||
*/
|
||||
struct c4iw_create_cq_resp {
|
||||
__u64 key;
|
||||
__u64 gts_key;
|
||||
__u64 memsize;
|
||||
__aligned_u64 key;
|
||||
__aligned_u64 gts_key;
|
||||
__aligned_u64 memsize;
|
||||
__u32 cqid;
|
||||
__u32 size;
|
||||
__u32 qid_mask;
|
||||
@@ -59,13 +59,13 @@ enum {
|
||||
};
|
||||
|
||||
struct c4iw_create_qp_resp {
|
||||
__u64 ma_sync_key;
|
||||
__u64 sq_key;
|
||||
__u64 rq_key;
|
||||
__u64 sq_db_gts_key;
|
||||
__u64 rq_db_gts_key;
|
||||
__u64 sq_memsize;
|
||||
__u64 rq_memsize;
|
||||
__aligned_u64 ma_sync_key;
|
||||
__aligned_u64 sq_key;
|
||||
__aligned_u64 rq_key;
|
||||
__aligned_u64 sq_db_gts_key;
|
||||
__aligned_u64 rq_db_gts_key;
|
||||
__aligned_u64 sq_memsize;
|
||||
__aligned_u64 rq_memsize;
|
||||
__u32 sqid;
|
||||
__u32 rqid;
|
||||
__u32 sq_size;
|
||||
@@ -75,8 +75,13 @@ struct c4iw_create_qp_resp {
|
||||
};
|
||||
|
||||
struct c4iw_alloc_ucontext_resp {
|
||||
__u64 status_page_key;
|
||||
__aligned_u64 status_page_key;
|
||||
__u32 status_page_size;
|
||||
__u32 reserved; /* explicit padding (optional for i386) */
|
||||
};
|
||||
|
||||
struct c4iw_alloc_pd_resp {
|
||||
__u32 pdid;
|
||||
};
|
||||
|
||||
#endif /* CXGB4_ABI_USER_H */
|
||||
|
||||
@@ -79,7 +79,7 @@ struct hfi1_user_info {
|
||||
};
|
||||
|
||||
struct hfi1_ctxt_info {
|
||||
__u64 runtime_flags; /* chip/drv runtime flags (HFI1_CAP_*) */
|
||||
__aligned_u64 runtime_flags; /* chip/drv runtime flags (HFI1_CAP_*) */
|
||||
__u32 rcvegr_size; /* size of each eager buffer */
|
||||
__u16 num_active; /* number of active units */
|
||||
__u16 unit; /* unit (chip) assigned to caller */
|
||||
@@ -98,9 +98,9 @@ struct hfi1_ctxt_info {
|
||||
|
||||
struct hfi1_tid_info {
|
||||
/* virtual address of first page in transfer */
|
||||
__u64 vaddr;
|
||||
__aligned_u64 vaddr;
|
||||
/* pointer to tid array. this array is big enough */
|
||||
__u64 tidlist;
|
||||
__aligned_u64 tidlist;
|
||||
/* number of tids programmed by this request */
|
||||
__u32 tidcnt;
|
||||
/* length of transfer buffer programmed by this request */
|
||||
@@ -131,23 +131,23 @@ struct hfi1_base_info {
|
||||
*/
|
||||
__u32 bthqp;
|
||||
/* PIO credit return address, */
|
||||
__u64 sc_credits_addr;
|
||||
__aligned_u64 sc_credits_addr;
|
||||
/*
|
||||
* Base address of write-only pio buffers for this process.
|
||||
* Each buffer has sendpio_credits*64 bytes.
|
||||
*/
|
||||
__u64 pio_bufbase_sop;
|
||||
__aligned_u64 pio_bufbase_sop;
|
||||
/*
|
||||
* Base address of write-only pio buffers for this process.
|
||||
* Each buffer has sendpio_credits*64 bytes.
|
||||
*/
|
||||
__u64 pio_bufbase;
|
||||
__aligned_u64 pio_bufbase;
|
||||
/* address where receive buffer queue is mapped into */
|
||||
__u64 rcvhdr_bufbase;
|
||||
__aligned_u64 rcvhdr_bufbase;
|
||||
/* base address of Eager receive buffers. */
|
||||
__u64 rcvegr_bufbase;
|
||||
__aligned_u64 rcvegr_bufbase;
|
||||
/* base address of SDMA completion ring */
|
||||
__u64 sdma_comp_bufbase;
|
||||
__aligned_u64 sdma_comp_bufbase;
|
||||
/*
|
||||
* User register base for init code, not to be used directly by
|
||||
* protocol or applications. Always maps real chip register space.
|
||||
@@ -155,20 +155,20 @@ struct hfi1_base_info {
|
||||
* ur_rcvhdrhead, ur_rcvhdrtail, ur_rcvegrhead, ur_rcvegrtail,
|
||||
* ur_rcvtidflow
|
||||
*/
|
||||
__u64 user_regbase;
|
||||
__aligned_u64 user_regbase;
|
||||
/* notification events */
|
||||
__u64 events_bufbase;
|
||||
__aligned_u64 events_bufbase;
|
||||
/* status page */
|
||||
__u64 status_bufbase;
|
||||
__aligned_u64 status_bufbase;
|
||||
/* rcvhdrtail update */
|
||||
__u64 rcvhdrtail_base;
|
||||
__aligned_u64 rcvhdrtail_base;
|
||||
/*
|
||||
* shared memory pages for subctxts if ctxt is shared; these cover
|
||||
* all the processes in the group sharing a single context.
|
||||
* all have enough space for the num_subcontexts value on this job.
|
||||
*/
|
||||
__u64 subctxt_uregbase;
|
||||
__u64 subctxt_rcvegrbuf;
|
||||
__u64 subctxt_rcvhdrbuf;
|
||||
__aligned_u64 subctxt_uregbase;
|
||||
__aligned_u64 subctxt_rcvegrbuf;
|
||||
__aligned_u64 subctxt_rcvhdrbuf;
|
||||
};
|
||||
#endif /* _LINIUX__HFI1_IOCTL_H */
|
||||
|
||||
@@ -177,8 +177,8 @@ struct hfi1_sdma_comp_entry {
|
||||
* Device status and notifications from driver to user-space.
|
||||
*/
|
||||
struct hfi1_status {
|
||||
__u64 dev; /* device/hw status bits */
|
||||
__u64 port; /* port state and status bits */
|
||||
__aligned_u64 dev; /* device/hw status bits */
|
||||
__aligned_u64 port; /* port state and status bits */
|
||||
char freezemsg[0];
|
||||
};
|
||||
|
||||
@@ -219,7 +219,7 @@ struct sdma_req_info {
|
||||
* in charge of managing its own ring.
|
||||
*/
|
||||
__u16 comp_idx;
|
||||
} __packed;
|
||||
} __attribute__((__packed__));
|
||||
|
||||
/*
|
||||
* SW KDETH header.
|
||||
@@ -230,7 +230,7 @@ struct hfi1_kdeth_header {
|
||||
__le16 jkey;
|
||||
__le16 hcrc;
|
||||
__le32 swdata[7];
|
||||
} __packed;
|
||||
} __attribute__((__packed__));
|
||||
|
||||
/*
|
||||
* Structure describing the headers that User space uses. The
|
||||
@@ -241,7 +241,7 @@ struct hfi1_pkt_header {
|
||||
__be16 lrh[4];
|
||||
__be32 bth[3];
|
||||
struct hfi1_kdeth_header kdeth;
|
||||
} __packed;
|
||||
} __attribute__((__packed__));
|
||||
|
||||
|
||||
/*
|
||||
|
||||
@@ -37,19 +37,35 @@
|
||||
#include <linux/types.h>
|
||||
|
||||
struct hns_roce_ib_create_cq {
|
||||
__u64 buf_addr;
|
||||
__aligned_u64 buf_addr;
|
||||
__aligned_u64 db_addr;
|
||||
};
|
||||
|
||||
struct hns_roce_ib_create_cq_resp {
|
||||
__aligned_u64 cqn; /* Only 32 bits used, 64 for compat */
|
||||
__aligned_u64 cap_flags;
|
||||
};
|
||||
|
||||
struct hns_roce_ib_create_qp {
|
||||
__u64 buf_addr;
|
||||
__u64 db_addr;
|
||||
__aligned_u64 buf_addr;
|
||||
__aligned_u64 db_addr;
|
||||
__u8 log_sq_bb_count;
|
||||
__u8 log_sq_stride;
|
||||
__u8 sq_no_prefetch;
|
||||
__u8 reserved[5];
|
||||
};
|
||||
|
||||
struct hns_roce_ib_create_qp_resp {
|
||||
__aligned_u64 cap_flags;
|
||||
};
|
||||
|
||||
struct hns_roce_ib_alloc_ucontext_resp {
|
||||
__u32 qp_tab_size;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct hns_roce_ib_alloc_pd_resp {
|
||||
__u32 pdn;
|
||||
};
|
||||
|
||||
#endif /* HNS_ABI_USER_H */
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
/*
|
||||
* Copyright (c) 2006 - 2016 Intel Corporation. All rights reserved.
|
||||
* Copyright (c) 2005 Topspin Communications. All rights reserved.
|
||||
* Copyright (c) 2005 Cisco Systems. All rights reserved.
|
||||
* Copyright (c) 2005 Open Grid Computing, 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 I40IW_ABI_H
|
||||
#define I40IW_ABI_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
#define I40IW_ABI_VER 5
|
||||
|
||||
struct i40iw_alloc_ucontext_req {
|
||||
__u32 reserved32;
|
||||
__u8 userspace_ver;
|
||||
__u8 reserved8[3];
|
||||
};
|
||||
|
||||
struct i40iw_alloc_ucontext_resp {
|
||||
__u32 max_pds; /* maximum pds allowed for this user process */
|
||||
__u32 max_qps; /* maximum qps allowed for this user process */
|
||||
__u32 wq_size; /* size of the WQs (sq+rq) allocated to the mmaped area */
|
||||
__u8 kernel_ver;
|
||||
__u8 reserved[3];
|
||||
};
|
||||
|
||||
struct i40iw_alloc_pd_resp {
|
||||
__u32 pd_id;
|
||||
__u8 reserved[4];
|
||||
};
|
||||
|
||||
struct i40iw_create_cq_req {
|
||||
__aligned_u64 user_cq_buffer;
|
||||
__aligned_u64 user_shadow_area;
|
||||
};
|
||||
|
||||
struct i40iw_create_qp_req {
|
||||
__aligned_u64 user_wqe_buffers;
|
||||
__aligned_u64 user_compl_ctx;
|
||||
|
||||
/* UDA QP PHB */
|
||||
__aligned_u64 user_sq_phb; /* place for VA of the sq phb buff */
|
||||
__aligned_u64 user_rq_phb; /* place for VA of the rq phb buff */
|
||||
};
|
||||
|
||||
enum i40iw_memreg_type {
|
||||
IW_MEMREG_TYPE_MEM = 0x0000,
|
||||
IW_MEMREG_TYPE_QP = 0x0001,
|
||||
IW_MEMREG_TYPE_CQ = 0x0002,
|
||||
};
|
||||
|
||||
struct i40iw_mem_reg_req {
|
||||
__u16 reg_type; /* Memory, QP or CQ */
|
||||
__u16 cq_pages;
|
||||
__u16 rq_pages;
|
||||
__u16 sq_pages;
|
||||
};
|
||||
|
||||
struct i40iw_create_cq_resp {
|
||||
__u32 cq_id;
|
||||
__u32 cq_size;
|
||||
__u32 mmap_db_index;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct i40iw_create_qp_resp {
|
||||
__u32 qp_id;
|
||||
__u32 actual_sq_size;
|
||||
__u32 actual_rq_size;
|
||||
__u32 i40iw_drv_opt;
|
||||
__u16 push_idx;
|
||||
__u8 lsmm;
|
||||
__u8 rsvd2;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -73,8 +73,8 @@ struct ib_ucm_cmd_hdr {
|
||||
};
|
||||
|
||||
struct ib_ucm_create_id {
|
||||
__u64 uid;
|
||||
__u64 response;
|
||||
__aligned_u64 uid;
|
||||
__aligned_u64 response;
|
||||
};
|
||||
|
||||
struct ib_ucm_create_id_resp {
|
||||
@@ -82,7 +82,7 @@ struct ib_ucm_create_id_resp {
|
||||
};
|
||||
|
||||
struct ib_ucm_destroy_id {
|
||||
__u64 response;
|
||||
__aligned_u64 response;
|
||||
__u32 id;
|
||||
__u32 reserved;
|
||||
};
|
||||
@@ -92,7 +92,7 @@ struct ib_ucm_destroy_id_resp {
|
||||
};
|
||||
|
||||
struct ib_ucm_attr_id {
|
||||
__u64 response;
|
||||
__aligned_u64 response;
|
||||
__u32 id;
|
||||
__u32 reserved;
|
||||
};
|
||||
@@ -105,7 +105,7 @@ struct ib_ucm_attr_id_resp {
|
||||
};
|
||||
|
||||
struct ib_ucm_init_qp_attr {
|
||||
__u64 response;
|
||||
__aligned_u64 response;
|
||||
__u32 id;
|
||||
__u32 qp_state;
|
||||
};
|
||||
@@ -123,7 +123,7 @@ struct ib_ucm_notify {
|
||||
};
|
||||
|
||||
struct ib_ucm_private_data {
|
||||
__u64 data;
|
||||
__aligned_u64 data;
|
||||
__u32 id;
|
||||
__u8 len;
|
||||
__u8 reserved[3];
|
||||
@@ -135,9 +135,9 @@ struct ib_ucm_req {
|
||||
__u32 qp_type;
|
||||
__u32 psn;
|
||||
__be64 sid;
|
||||
__u64 data;
|
||||
__u64 primary_path;
|
||||
__u64 alternate_path;
|
||||
__aligned_u64 data;
|
||||
__aligned_u64 primary_path;
|
||||
__aligned_u64 alternate_path;
|
||||
__u8 len;
|
||||
__u8 peer_to_peer;
|
||||
__u8 responder_resources;
|
||||
@@ -153,8 +153,8 @@ struct ib_ucm_req {
|
||||
};
|
||||
|
||||
struct ib_ucm_rep {
|
||||
__u64 uid;
|
||||
__u64 data;
|
||||
__aligned_u64 uid;
|
||||
__aligned_u64 data;
|
||||
__u32 id;
|
||||
__u32 qpn;
|
||||
__u32 psn;
|
||||
@@ -172,15 +172,15 @@ struct ib_ucm_rep {
|
||||
struct ib_ucm_info {
|
||||
__u32 id;
|
||||
__u32 status;
|
||||
__u64 info;
|
||||
__u64 data;
|
||||
__aligned_u64 info;
|
||||
__aligned_u64 data;
|
||||
__u8 info_len;
|
||||
__u8 data_len;
|
||||
__u8 reserved[6];
|
||||
};
|
||||
|
||||
struct ib_ucm_mra {
|
||||
__u64 data;
|
||||
__aligned_u64 data;
|
||||
__u32 id;
|
||||
__u8 len;
|
||||
__u8 timeout;
|
||||
@@ -188,8 +188,8 @@ struct ib_ucm_mra {
|
||||
};
|
||||
|
||||
struct ib_ucm_lap {
|
||||
__u64 path;
|
||||
__u64 data;
|
||||
__aligned_u64 path;
|
||||
__aligned_u64 data;
|
||||
__u32 id;
|
||||
__u8 len;
|
||||
__u8 reserved[3];
|
||||
@@ -199,8 +199,8 @@ struct ib_ucm_sidr_req {
|
||||
__u32 id;
|
||||
__u32 timeout;
|
||||
__be64 sid;
|
||||
__u64 data;
|
||||
__u64 path;
|
||||
__aligned_u64 data;
|
||||
__aligned_u64 path;
|
||||
__u16 reserved_pkey;
|
||||
__u8 len;
|
||||
__u8 max_cm_retries;
|
||||
@@ -212,8 +212,8 @@ struct ib_ucm_sidr_rep {
|
||||
__u32 qpn;
|
||||
__u32 qkey;
|
||||
__u32 status;
|
||||
__u64 info;
|
||||
__u64 data;
|
||||
__aligned_u64 info;
|
||||
__aligned_u64 data;
|
||||
__u8 info_len;
|
||||
__u8 data_len;
|
||||
__u8 reserved[6];
|
||||
@@ -222,9 +222,9 @@ struct ib_ucm_sidr_rep {
|
||||
* event notification ABI structures.
|
||||
*/
|
||||
struct ib_ucm_event_get {
|
||||
__u64 response;
|
||||
__u64 data;
|
||||
__u64 info;
|
||||
__aligned_u64 response;
|
||||
__aligned_u64 data;
|
||||
__aligned_u64 info;
|
||||
__u8 data_len;
|
||||
__u8 info_len;
|
||||
__u8 reserved[6];
|
||||
@@ -303,7 +303,7 @@ struct ib_ucm_sidr_rep_event_resp {
|
||||
#define IB_UCM_PRES_ALTERNATE 0x08
|
||||
|
||||
struct ib_ucm_event_resp {
|
||||
__u64 uid;
|
||||
__aligned_u64 uid;
|
||||
__u32 id;
|
||||
__u32 event;
|
||||
__u32 present;
|
||||
|
||||
@@ -0,0 +1,134 @@
|
||||
/*
|
||||
* Copyright (c) 2018, 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_CMDS_H
|
||||
#define IB_USER_IOCTL_CMDS_H
|
||||
|
||||
#define UVERBS_ID_NS_MASK 0xF000
|
||||
#define UVERBS_ID_NS_SHIFT 12
|
||||
|
||||
#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_FLOW_ACTION,
|
||||
UVERBS_OBJECT_DM,
|
||||
};
|
||||
|
||||
enum {
|
||||
UVERBS_ATTR_UHW_IN = UVERBS_UDATA_DRIVER_DATA_FLAG,
|
||||
UVERBS_ATTR_UHW_OUT,
|
||||
};
|
||||
|
||||
enum uverbs_attrs_create_cq_cmd_attr_ids {
|
||||
UVERBS_ATTR_CREATE_CQ_HANDLE,
|
||||
UVERBS_ATTR_CREATE_CQ_CQE,
|
||||
UVERBS_ATTR_CREATE_CQ_USER_HANDLE,
|
||||
UVERBS_ATTR_CREATE_CQ_COMP_CHANNEL,
|
||||
UVERBS_ATTR_CREATE_CQ_COMP_VECTOR,
|
||||
UVERBS_ATTR_CREATE_CQ_FLAGS,
|
||||
UVERBS_ATTR_CREATE_CQ_RESP_CQE,
|
||||
};
|
||||
|
||||
enum uverbs_attrs_destroy_cq_cmd_attr_ids {
|
||||
UVERBS_ATTR_DESTROY_CQ_HANDLE,
|
||||
UVERBS_ATTR_DESTROY_CQ_RESP,
|
||||
};
|
||||
|
||||
enum uverbs_attrs_create_flow_action_esp {
|
||||
UVERBS_ATTR_FLOW_ACTION_ESP_HANDLE,
|
||||
UVERBS_ATTR_FLOW_ACTION_ESP_ATTRS,
|
||||
UVERBS_ATTR_FLOW_ACTION_ESP_ESN,
|
||||
UVERBS_ATTR_FLOW_ACTION_ESP_KEYMAT,
|
||||
UVERBS_ATTR_FLOW_ACTION_ESP_REPLAY,
|
||||
UVERBS_ATTR_FLOW_ACTION_ESP_ENCAP,
|
||||
};
|
||||
|
||||
enum uverbs_attrs_destroy_flow_action_esp {
|
||||
UVERBS_ATTR_DESTROY_FLOW_ACTION_HANDLE,
|
||||
};
|
||||
|
||||
enum uverbs_methods_cq {
|
||||
UVERBS_METHOD_CQ_CREATE,
|
||||
UVERBS_METHOD_CQ_DESTROY,
|
||||
};
|
||||
|
||||
enum uverbs_methods_actions_flow_action_ops {
|
||||
UVERBS_METHOD_FLOW_ACTION_ESP_CREATE,
|
||||
UVERBS_METHOD_FLOW_ACTION_DESTROY,
|
||||
UVERBS_METHOD_FLOW_ACTION_ESP_MODIFY,
|
||||
};
|
||||
|
||||
enum uverbs_attrs_alloc_dm_cmd_attr_ids {
|
||||
UVERBS_ATTR_ALLOC_DM_HANDLE,
|
||||
UVERBS_ATTR_ALLOC_DM_LENGTH,
|
||||
UVERBS_ATTR_ALLOC_DM_ALIGNMENT,
|
||||
};
|
||||
|
||||
enum uverbs_attrs_free_dm_cmd_attr_ids {
|
||||
UVERBS_ATTR_FREE_DM_HANDLE,
|
||||
};
|
||||
|
||||
enum uverbs_methods_dm {
|
||||
UVERBS_METHOD_DM_ALLOC,
|
||||
UVERBS_METHOD_DM_FREE,
|
||||
};
|
||||
|
||||
enum uverbs_attrs_reg_dm_mr_cmd_attr_ids {
|
||||
UVERBS_ATTR_REG_DM_MR_HANDLE,
|
||||
UVERBS_ATTR_REG_DM_MR_OFFSET,
|
||||
UVERBS_ATTR_REG_DM_MR_LENGTH,
|
||||
UVERBS_ATTR_REG_DM_MR_PD_HANDLE,
|
||||
UVERBS_ATTR_REG_DM_MR_ACCESS_FLAGS,
|
||||
UVERBS_ATTR_REG_DM_MR_DM_HANDLE,
|
||||
UVERBS_ATTR_REG_DM_MR_RESP_LKEY,
|
||||
UVERBS_ATTR_REG_DM_MR_RESP_RKEY,
|
||||
};
|
||||
|
||||
enum uverbs_methods_mr {
|
||||
UVERBS_METHOD_DM_MR_REG,
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,5 +1,6 @@
|
||||
/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-2-Clause) */
|
||||
/*
|
||||
* Copyright (c) 2017, Mellanox Technologies inc. All rights reserved.
|
||||
* Copyright (c) 2017-2018, 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
|
||||
@@ -33,52 +34,69 @@
|
||||
#ifndef IB_USER_IOCTL_VERBS_H
|
||||
#define IB_USER_IOCTL_VERBS_H
|
||||
|
||||
#include <rdma/rdma_user_ioctl.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#define UVERBS_UDATA_DRIVER_DATA_NS 1
|
||||
#define UVERBS_UDATA_DRIVER_DATA_FLAG (1UL << UVERBS_ID_NS_SHIFT)
|
||||
#ifndef RDMA_UAPI_PTR
|
||||
#define RDMA_UAPI_PTR(_type, _name) __aligned_u64 _name
|
||||
#endif
|
||||
|
||||
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 ib_uverbs_flow_action_esp_keymat {
|
||||
IB_UVERBS_FLOW_ACTION_ESP_KEYMAT_AES_GCM,
|
||||
};
|
||||
|
||||
enum {
|
||||
UVERBS_UHW_IN = UVERBS_UDATA_DRIVER_DATA_FLAG,
|
||||
UVERBS_UHW_OUT,
|
||||
enum ib_uverbs_flow_action_esp_keymat_aes_gcm_iv_algo {
|
||||
IB_UVERBS_FLOW_ACTION_IV_ALGO_SEQ,
|
||||
};
|
||||
|
||||
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,
|
||||
struct ib_uverbs_flow_action_esp_keymat_aes_gcm {
|
||||
__aligned_u64 iv;
|
||||
__u32 iv_algo; /* Use enum ib_uverbs_flow_action_esp_keymat_aes_gcm_iv_algo */
|
||||
|
||||
__u32 salt;
|
||||
__u32 icv_len;
|
||||
|
||||
__u32 key_len;
|
||||
__u32 aes_key[256 / 32];
|
||||
};
|
||||
|
||||
enum uverbs_destroy_cq_cmd_attr_ids {
|
||||
DESTROY_CQ_HANDLE,
|
||||
DESTROY_CQ_RESP,
|
||||
enum ib_uverbs_flow_action_esp_replay {
|
||||
IB_UVERBS_FLOW_ACTION_ESP_REPLAY_NONE,
|
||||
IB_UVERBS_FLOW_ACTION_ESP_REPLAY_BMP,
|
||||
};
|
||||
|
||||
enum uverbs_actions_cq_ops {
|
||||
UVERBS_CQ_CREATE,
|
||||
UVERBS_CQ_DESTROY,
|
||||
struct ib_uverbs_flow_action_esp_replay_bmp {
|
||||
__u32 size;
|
||||
};
|
||||
|
||||
enum ib_uverbs_flow_action_esp_flags {
|
||||
IB_UVERBS_FLOW_ACTION_ESP_FLAGS_INLINE_CRYPTO = 0UL << 0, /* Default */
|
||||
IB_UVERBS_FLOW_ACTION_ESP_FLAGS_FULL_OFFLOAD = 1UL << 0,
|
||||
|
||||
IB_UVERBS_FLOW_ACTION_ESP_FLAGS_TUNNEL = 0UL << 1, /* Default */
|
||||
IB_UVERBS_FLOW_ACTION_ESP_FLAGS_TRANSPORT = 1UL << 1,
|
||||
|
||||
IB_UVERBS_FLOW_ACTION_ESP_FLAGS_DECRYPT = 0UL << 2, /* Default */
|
||||
IB_UVERBS_FLOW_ACTION_ESP_FLAGS_ENCRYPT = 1UL << 2,
|
||||
|
||||
IB_UVERBS_FLOW_ACTION_ESP_FLAGS_ESN_NEW_WINDOW = 1UL << 3,
|
||||
};
|
||||
|
||||
struct ib_uverbs_flow_action_esp_encap {
|
||||
/* This struct represents a list of pointers to flow_xxxx_filter that
|
||||
* encapsulates the payload in ESP tunnel mode.
|
||||
*/
|
||||
RDMA_UAPI_PTR(void *, val_ptr); /* pointer to a flow_xxxx_filter */
|
||||
RDMA_UAPI_PTR(struct ib_uverbs_flow_action_esp_encap *, next_ptr);
|
||||
__u16 len; /* Len of the filter struct val_ptr points to */
|
||||
__u16 type; /* Use flow_spec_type enum */
|
||||
};
|
||||
|
||||
struct ib_uverbs_flow_action_esp {
|
||||
__u32 spi;
|
||||
__u32 seq;
|
||||
__u32 tfc_pad;
|
||||
__u32 flags;
|
||||
__aligned_u64 hard_limit_pkts;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -143,7 +143,7 @@ struct ib_user_mad_hdr {
|
||||
*/
|
||||
struct ib_user_mad {
|
||||
struct ib_user_mad_hdr hdr;
|
||||
__u64 data[0];
|
||||
__aligned_u64 data[0];
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -225,7 +225,7 @@ struct ib_user_mad_reg_req2 {
|
||||
__u8 mgmt_class_version;
|
||||
__u16 res;
|
||||
__u32 flags;
|
||||
__u64 method_mask[2];
|
||||
__aligned_u64 method_mask[2];
|
||||
__u32 oui;
|
||||
__u8 rmpp_version;
|
||||
__u8 reserved[3];
|
||||
|
||||
@@ -117,13 +117,13 @@ enum {
|
||||
*/
|
||||
|
||||
struct ib_uverbs_async_event_desc {
|
||||
__u64 element;
|
||||
__aligned_u64 element;
|
||||
__u32 event_type; /* enum ib_event_type */
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct ib_uverbs_comp_event_desc {
|
||||
__u64 cq_handle;
|
||||
__aligned_u64 cq_handle;
|
||||
};
|
||||
|
||||
struct ib_uverbs_cq_moderation_caps {
|
||||
@@ -141,10 +141,7 @@ struct ib_uverbs_cq_moderation_caps {
|
||||
*/
|
||||
|
||||
#define IB_USER_VERBS_CMD_COMMAND_MASK 0xff
|
||||
#define IB_USER_VERBS_CMD_FLAGS_MASK 0xff000000u
|
||||
#define IB_USER_VERBS_CMD_FLAGS_SHIFT 24
|
||||
|
||||
#define IB_USER_VERBS_CMD_FLAG_EXTENDED 0x80
|
||||
#define IB_USER_VERBS_CMD_FLAG_EXTENDED 0x80000000u
|
||||
|
||||
struct ib_uverbs_cmd_hdr {
|
||||
__u32 command;
|
||||
@@ -153,15 +150,15 @@ struct ib_uverbs_cmd_hdr {
|
||||
};
|
||||
|
||||
struct ib_uverbs_ex_cmd_hdr {
|
||||
__u64 response;
|
||||
__aligned_u64 response;
|
||||
__u16 provider_in_words;
|
||||
__u16 provider_out_words;
|
||||
__u32 cmd_hdr_reserved;
|
||||
};
|
||||
|
||||
struct ib_uverbs_get_context {
|
||||
__u64 response;
|
||||
__u64 driver_data[0];
|
||||
__aligned_u64 response;
|
||||
__aligned_u64 driver_data[0];
|
||||
};
|
||||
|
||||
struct ib_uverbs_get_context_resp {
|
||||
@@ -170,16 +167,16 @@ struct ib_uverbs_get_context_resp {
|
||||
};
|
||||
|
||||
struct ib_uverbs_query_device {
|
||||
__u64 response;
|
||||
__u64 driver_data[0];
|
||||
__aligned_u64 response;
|
||||
__aligned_u64 driver_data[0];
|
||||
};
|
||||
|
||||
struct ib_uverbs_query_device_resp {
|
||||
__u64 fw_ver;
|
||||
__aligned_u64 fw_ver;
|
||||
__be64 node_guid;
|
||||
__be64 sys_image_guid;
|
||||
__u64 max_mr_size;
|
||||
__u64 page_size_cap;
|
||||
__aligned_u64 max_mr_size;
|
||||
__aligned_u64 page_size_cap;
|
||||
__u32 vendor_id;
|
||||
__u32 vendor_part_id;
|
||||
__u32 hw_ver;
|
||||
@@ -224,7 +221,7 @@ struct ib_uverbs_ex_query_device {
|
||||
};
|
||||
|
||||
struct ib_uverbs_odp_caps {
|
||||
__u64 general_caps;
|
||||
__aligned_u64 general_caps;
|
||||
struct {
|
||||
__u32 rc_odp_caps;
|
||||
__u32 uc_odp_caps;
|
||||
@@ -263,21 +260,22 @@ struct ib_uverbs_ex_query_device_resp {
|
||||
__u32 comp_mask;
|
||||
__u32 response_length;
|
||||
struct ib_uverbs_odp_caps odp_caps;
|
||||
__u64 timestamp_mask;
|
||||
__u64 hca_core_clock; /* in KHZ */
|
||||
__u64 device_cap_flags_ex;
|
||||
__aligned_u64 timestamp_mask;
|
||||
__aligned_u64 hca_core_clock; /* in KHZ */
|
||||
__aligned_u64 device_cap_flags_ex;
|
||||
struct ib_uverbs_rss_caps rss_caps;
|
||||
__u32 max_wq_type_rq;
|
||||
__u32 raw_packet_caps;
|
||||
struct ib_uverbs_tm_caps tm_caps;
|
||||
struct ib_uverbs_cq_moderation_caps cq_moderation_caps;
|
||||
__aligned_u64 max_dm_size;
|
||||
};
|
||||
|
||||
struct ib_uverbs_query_port {
|
||||
__u64 response;
|
||||
__aligned_u64 response;
|
||||
__u8 port_num;
|
||||
__u8 reserved[7];
|
||||
__u64 driver_data[0];
|
||||
__aligned_u64 driver_data[0];
|
||||
};
|
||||
|
||||
struct ib_uverbs_query_port_resp {
|
||||
@@ -305,8 +303,8 @@ struct ib_uverbs_query_port_resp {
|
||||
};
|
||||
|
||||
struct ib_uverbs_alloc_pd {
|
||||
__u64 response;
|
||||
__u64 driver_data[0];
|
||||
__aligned_u64 response;
|
||||
__aligned_u64 driver_data[0];
|
||||
};
|
||||
|
||||
struct ib_uverbs_alloc_pd_resp {
|
||||
@@ -318,10 +316,10 @@ struct ib_uverbs_dealloc_pd {
|
||||
};
|
||||
|
||||
struct ib_uverbs_open_xrcd {
|
||||
__u64 response;
|
||||
__aligned_u64 response;
|
||||
__u32 fd;
|
||||
__u32 oflags;
|
||||
__u64 driver_data[0];
|
||||
__aligned_u64 driver_data[0];
|
||||
};
|
||||
|
||||
struct ib_uverbs_open_xrcd_resp {
|
||||
@@ -333,13 +331,13 @@ struct ib_uverbs_close_xrcd {
|
||||
};
|
||||
|
||||
struct ib_uverbs_reg_mr {
|
||||
__u64 response;
|
||||
__u64 start;
|
||||
__u64 length;
|
||||
__u64 hca_va;
|
||||
__aligned_u64 response;
|
||||
__aligned_u64 start;
|
||||
__aligned_u64 length;
|
||||
__aligned_u64 hca_va;
|
||||
__u32 pd_handle;
|
||||
__u32 access_flags;
|
||||
__u64 driver_data[0];
|
||||
__aligned_u64 driver_data[0];
|
||||
};
|
||||
|
||||
struct ib_uverbs_reg_mr_resp {
|
||||
@@ -349,12 +347,12 @@ struct ib_uverbs_reg_mr_resp {
|
||||
};
|
||||
|
||||
struct ib_uverbs_rereg_mr {
|
||||
__u64 response;
|
||||
__aligned_u64 response;
|
||||
__u32 mr_handle;
|
||||
__u32 flags;
|
||||
__u64 start;
|
||||
__u64 length;
|
||||
__u64 hca_va;
|
||||
__aligned_u64 start;
|
||||
__aligned_u64 length;
|
||||
__aligned_u64 hca_va;
|
||||
__u32 pd_handle;
|
||||
__u32 access_flags;
|
||||
};
|
||||
@@ -369,7 +367,7 @@ struct ib_uverbs_dereg_mr {
|
||||
};
|
||||
|
||||
struct ib_uverbs_alloc_mw {
|
||||
__u64 response;
|
||||
__aligned_u64 response;
|
||||
__u32 pd_handle;
|
||||
__u8 mw_type;
|
||||
__u8 reserved[3];
|
||||
@@ -385,7 +383,7 @@ struct ib_uverbs_dealloc_mw {
|
||||
};
|
||||
|
||||
struct ib_uverbs_create_comp_channel {
|
||||
__u64 response;
|
||||
__aligned_u64 response;
|
||||
};
|
||||
|
||||
struct ib_uverbs_create_comp_channel_resp {
|
||||
@@ -393,13 +391,13 @@ struct ib_uverbs_create_comp_channel_resp {
|
||||
};
|
||||
|
||||
struct ib_uverbs_create_cq {
|
||||
__u64 response;
|
||||
__u64 user_handle;
|
||||
__aligned_u64 response;
|
||||
__aligned_u64 user_handle;
|
||||
__u32 cqe;
|
||||
__u32 comp_vector;
|
||||
__s32 comp_channel;
|
||||
__u32 reserved;
|
||||
__u64 driver_data[0];
|
||||
__aligned_u64 driver_data[0];
|
||||
};
|
||||
|
||||
enum ib_uverbs_ex_create_cq_flags {
|
||||
@@ -408,7 +406,7 @@ enum ib_uverbs_ex_create_cq_flags {
|
||||
};
|
||||
|
||||
struct ib_uverbs_ex_create_cq {
|
||||
__u64 user_handle;
|
||||
__aligned_u64 user_handle;
|
||||
__u32 cqe;
|
||||
__u32 comp_vector;
|
||||
__s32 comp_channel;
|
||||
@@ -429,26 +427,26 @@ struct ib_uverbs_ex_create_cq_resp {
|
||||
};
|
||||
|
||||
struct ib_uverbs_resize_cq {
|
||||
__u64 response;
|
||||
__aligned_u64 response;
|
||||
__u32 cq_handle;
|
||||
__u32 cqe;
|
||||
__u64 driver_data[0];
|
||||
__aligned_u64 driver_data[0];
|
||||
};
|
||||
|
||||
struct ib_uverbs_resize_cq_resp {
|
||||
__u32 cqe;
|
||||
__u32 reserved;
|
||||
__u64 driver_data[0];
|
||||
__aligned_u64 driver_data[0];
|
||||
};
|
||||
|
||||
struct ib_uverbs_poll_cq {
|
||||
__u64 response;
|
||||
__aligned_u64 response;
|
||||
__u32 cq_handle;
|
||||
__u32 ne;
|
||||
};
|
||||
|
||||
struct ib_uverbs_wc {
|
||||
__u64 wr_id;
|
||||
__aligned_u64 wr_id;
|
||||
__u32 status;
|
||||
__u32 opcode;
|
||||
__u32 vendor_err;
|
||||
@@ -480,7 +478,7 @@ struct ib_uverbs_req_notify_cq {
|
||||
};
|
||||
|
||||
struct ib_uverbs_destroy_cq {
|
||||
__u64 response;
|
||||
__aligned_u64 response;
|
||||
__u32 cq_handle;
|
||||
__u32 reserved;
|
||||
};
|
||||
@@ -549,8 +547,8 @@ struct ib_uverbs_qp_attr {
|
||||
};
|
||||
|
||||
struct ib_uverbs_create_qp {
|
||||
__u64 response;
|
||||
__u64 user_handle;
|
||||
__aligned_u64 response;
|
||||
__aligned_u64 user_handle;
|
||||
__u32 pd_handle;
|
||||
__u32 send_cq_handle;
|
||||
__u32 recv_cq_handle;
|
||||
@@ -564,7 +562,7 @@ struct ib_uverbs_create_qp {
|
||||
__u8 qp_type;
|
||||
__u8 is_srq;
|
||||
__u8 reserved;
|
||||
__u64 driver_data[0];
|
||||
__aligned_u64 driver_data[0];
|
||||
};
|
||||
|
||||
enum ib_uverbs_create_qp_mask {
|
||||
@@ -590,7 +588,7 @@ enum {
|
||||
};
|
||||
|
||||
struct ib_uverbs_ex_create_qp {
|
||||
__u64 user_handle;
|
||||
__aligned_u64 user_handle;
|
||||
__u32 pd_handle;
|
||||
__u32 send_cq_handle;
|
||||
__u32 recv_cq_handle;
|
||||
@@ -611,13 +609,13 @@ struct ib_uverbs_ex_create_qp {
|
||||
};
|
||||
|
||||
struct ib_uverbs_open_qp {
|
||||
__u64 response;
|
||||
__u64 user_handle;
|
||||
__aligned_u64 response;
|
||||
__aligned_u64 user_handle;
|
||||
__u32 pd_handle;
|
||||
__u32 qpn;
|
||||
__u8 qp_type;
|
||||
__u8 reserved[7];
|
||||
__u64 driver_data[0];
|
||||
__aligned_u64 driver_data[0];
|
||||
};
|
||||
|
||||
/* also used for open response */
|
||||
@@ -658,10 +656,10 @@ struct ib_uverbs_qp_dest {
|
||||
};
|
||||
|
||||
struct ib_uverbs_query_qp {
|
||||
__u64 response;
|
||||
__aligned_u64 response;
|
||||
__u32 qp_handle;
|
||||
__u32 attr_mask;
|
||||
__u64 driver_data[0];
|
||||
__aligned_u64 driver_data[0];
|
||||
};
|
||||
|
||||
struct ib_uverbs_query_qp_resp {
|
||||
@@ -695,7 +693,7 @@ struct ib_uverbs_query_qp_resp {
|
||||
__u8 alt_timeout;
|
||||
__u8 sq_sig_all;
|
||||
__u8 reserved[5];
|
||||
__u64 driver_data[0];
|
||||
__aligned_u64 driver_data[0];
|
||||
};
|
||||
|
||||
struct ib_uverbs_modify_qp {
|
||||
@@ -725,7 +723,7 @@ struct ib_uverbs_modify_qp {
|
||||
__u8 alt_port_num;
|
||||
__u8 alt_timeout;
|
||||
__u8 reserved[2];
|
||||
__u64 driver_data[0];
|
||||
__aligned_u64 driver_data[0];
|
||||
};
|
||||
|
||||
struct ib_uverbs_ex_modify_qp {
|
||||
@@ -743,7 +741,7 @@ struct ib_uverbs_ex_modify_qp_resp {
|
||||
};
|
||||
|
||||
struct ib_uverbs_destroy_qp {
|
||||
__u64 response;
|
||||
__aligned_u64 response;
|
||||
__u32 qp_handle;
|
||||
__u32 reserved;
|
||||
};
|
||||
@@ -759,13 +757,13 @@ struct ib_uverbs_destroy_qp_resp {
|
||||
* document the ABI.
|
||||
*/
|
||||
struct ib_uverbs_sge {
|
||||
__u64 addr;
|
||||
__aligned_u64 addr;
|
||||
__u32 length;
|
||||
__u32 lkey;
|
||||
};
|
||||
|
||||
struct ib_uverbs_send_wr {
|
||||
__u64 wr_id;
|
||||
__aligned_u64 wr_id;
|
||||
__u32 num_sge;
|
||||
__u32 opcode;
|
||||
__u32 send_flags;
|
||||
@@ -775,14 +773,14 @@ struct ib_uverbs_send_wr {
|
||||
} ex;
|
||||
union {
|
||||
struct {
|
||||
__u64 remote_addr;
|
||||
__aligned_u64 remote_addr;
|
||||
__u32 rkey;
|
||||
__u32 reserved;
|
||||
} rdma;
|
||||
struct {
|
||||
__u64 remote_addr;
|
||||
__u64 compare_add;
|
||||
__u64 swap;
|
||||
__aligned_u64 remote_addr;
|
||||
__aligned_u64 compare_add;
|
||||
__aligned_u64 swap;
|
||||
__u32 rkey;
|
||||
__u32 reserved;
|
||||
} atomic;
|
||||
@@ -796,7 +794,7 @@ struct ib_uverbs_send_wr {
|
||||
};
|
||||
|
||||
struct ib_uverbs_post_send {
|
||||
__u64 response;
|
||||
__aligned_u64 response;
|
||||
__u32 qp_handle;
|
||||
__u32 wr_count;
|
||||
__u32 sge_count;
|
||||
@@ -809,13 +807,13 @@ struct ib_uverbs_post_send_resp {
|
||||
};
|
||||
|
||||
struct ib_uverbs_recv_wr {
|
||||
__u64 wr_id;
|
||||
__aligned_u64 wr_id;
|
||||
__u32 num_sge;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct ib_uverbs_post_recv {
|
||||
__u64 response;
|
||||
__aligned_u64 response;
|
||||
__u32 qp_handle;
|
||||
__u32 wr_count;
|
||||
__u32 sge_count;
|
||||
@@ -828,7 +826,7 @@ struct ib_uverbs_post_recv_resp {
|
||||
};
|
||||
|
||||
struct ib_uverbs_post_srq_recv {
|
||||
__u64 response;
|
||||
__aligned_u64 response;
|
||||
__u32 srq_handle;
|
||||
__u32 wr_count;
|
||||
__u32 sge_count;
|
||||
@@ -841,8 +839,8 @@ struct ib_uverbs_post_srq_recv_resp {
|
||||
};
|
||||
|
||||
struct ib_uverbs_create_ah {
|
||||
__u64 response;
|
||||
__u64 user_handle;
|
||||
__aligned_u64 response;
|
||||
__aligned_u64 user_handle;
|
||||
__u32 pd_handle;
|
||||
__u32 reserved;
|
||||
struct ib_uverbs_ah_attr attr;
|
||||
@@ -861,7 +859,7 @@ struct ib_uverbs_attach_mcast {
|
||||
__u32 qp_handle;
|
||||
__u16 mlid;
|
||||
__u16 reserved;
|
||||
__u64 driver_data[0];
|
||||
__aligned_u64 driver_data[0];
|
||||
};
|
||||
|
||||
struct ib_uverbs_detach_mcast {
|
||||
@@ -869,7 +867,7 @@ struct ib_uverbs_detach_mcast {
|
||||
__u32 qp_handle;
|
||||
__u16 mlid;
|
||||
__u16 reserved;
|
||||
__u64 driver_data[0];
|
||||
__aligned_u64 driver_data[0];
|
||||
};
|
||||
|
||||
struct ib_uverbs_flow_spec_hdr {
|
||||
@@ -877,7 +875,7 @@ struct ib_uverbs_flow_spec_hdr {
|
||||
__u16 size;
|
||||
__u16 reserved;
|
||||
/* followed by flow_spec */
|
||||
__u64 flow_spec_data[0];
|
||||
__aligned_u64 flow_spec_data[0];
|
||||
};
|
||||
|
||||
struct ib_uverbs_flow_eth_filter {
|
||||
@@ -987,6 +985,19 @@ struct ib_uverbs_flow_spec_action_drop {
|
||||
};
|
||||
};
|
||||
|
||||
struct ib_uverbs_flow_spec_action_handle {
|
||||
union {
|
||||
struct ib_uverbs_flow_spec_hdr hdr;
|
||||
struct {
|
||||
__u32 type;
|
||||
__u16 size;
|
||||
__u16 reserved;
|
||||
};
|
||||
};
|
||||
__u32 handle;
|
||||
__u32 reserved1;
|
||||
};
|
||||
|
||||
struct ib_uverbs_flow_tunnel_filter {
|
||||
__be32 tunnel_id;
|
||||
};
|
||||
@@ -1004,6 +1015,24 @@ struct ib_uverbs_flow_spec_tunnel {
|
||||
struct ib_uverbs_flow_tunnel_filter mask;
|
||||
};
|
||||
|
||||
struct ib_uverbs_flow_spec_esp_filter {
|
||||
__u32 spi;
|
||||
__u32 seq;
|
||||
};
|
||||
|
||||
struct ib_uverbs_flow_spec_esp {
|
||||
union {
|
||||
struct ib_uverbs_flow_spec_hdr hdr;
|
||||
struct {
|
||||
__u32 type;
|
||||
__u16 size;
|
||||
__u16 reserved;
|
||||
};
|
||||
};
|
||||
struct ib_uverbs_flow_spec_esp_filter val;
|
||||
struct ib_uverbs_flow_spec_esp_filter mask;
|
||||
};
|
||||
|
||||
struct ib_uverbs_flow_attr {
|
||||
__u32 type;
|
||||
__u16 size;
|
||||
@@ -1036,18 +1065,18 @@ struct ib_uverbs_destroy_flow {
|
||||
};
|
||||
|
||||
struct ib_uverbs_create_srq {
|
||||
__u64 response;
|
||||
__u64 user_handle;
|
||||
__aligned_u64 response;
|
||||
__aligned_u64 user_handle;
|
||||
__u32 pd_handle;
|
||||
__u32 max_wr;
|
||||
__u32 max_sge;
|
||||
__u32 srq_limit;
|
||||
__u64 driver_data[0];
|
||||
__aligned_u64 driver_data[0];
|
||||
};
|
||||
|
||||
struct ib_uverbs_create_xsrq {
|
||||
__u64 response;
|
||||
__u64 user_handle;
|
||||
__aligned_u64 response;
|
||||
__aligned_u64 user_handle;
|
||||
__u32 srq_type;
|
||||
__u32 pd_handle;
|
||||
__u32 max_wr;
|
||||
@@ -1056,7 +1085,7 @@ struct ib_uverbs_create_xsrq {
|
||||
__u32 max_num_tags;
|
||||
__u32 xrcd_handle;
|
||||
__u32 cq_handle;
|
||||
__u64 driver_data[0];
|
||||
__aligned_u64 driver_data[0];
|
||||
};
|
||||
|
||||
struct ib_uverbs_create_srq_resp {
|
||||
@@ -1071,14 +1100,14 @@ struct ib_uverbs_modify_srq {
|
||||
__u32 attr_mask;
|
||||
__u32 max_wr;
|
||||
__u32 srq_limit;
|
||||
__u64 driver_data[0];
|
||||
__aligned_u64 driver_data[0];
|
||||
};
|
||||
|
||||
struct ib_uverbs_query_srq {
|
||||
__u64 response;
|
||||
__aligned_u64 response;
|
||||
__u32 srq_handle;
|
||||
__u32 reserved;
|
||||
__u64 driver_data[0];
|
||||
__aligned_u64 driver_data[0];
|
||||
};
|
||||
|
||||
struct ib_uverbs_query_srq_resp {
|
||||
@@ -1089,7 +1118,7 @@ struct ib_uverbs_query_srq_resp {
|
||||
};
|
||||
|
||||
struct ib_uverbs_destroy_srq {
|
||||
__u64 response;
|
||||
__aligned_u64 response;
|
||||
__u32 srq_handle;
|
||||
__u32 reserved;
|
||||
};
|
||||
@@ -1101,7 +1130,7 @@ struct ib_uverbs_destroy_srq_resp {
|
||||
struct ib_uverbs_ex_create_wq {
|
||||
__u32 comp_mask;
|
||||
__u32 wq_type;
|
||||
__u64 user_handle;
|
||||
__aligned_u64 user_handle;
|
||||
__u32 pd_handle;
|
||||
__u32 cq_handle;
|
||||
__u32 max_wr;
|
||||
|
||||
@@ -59,6 +59,10 @@ struct mlx4_ib_alloc_ucontext_resp_v3 {
|
||||
__u16 bf_regs_per_page;
|
||||
};
|
||||
|
||||
enum {
|
||||
MLX4_USER_DEV_CAP_LARGE_CQE = 1L << 0,
|
||||
};
|
||||
|
||||
struct mlx4_ib_alloc_ucontext_resp {
|
||||
__u32 dev_caps;
|
||||
__u32 qp_tab_size;
|
||||
@@ -73,8 +77,8 @@ struct mlx4_ib_alloc_pd_resp {
|
||||
};
|
||||
|
||||
struct mlx4_ib_create_cq {
|
||||
__u64 buf_addr;
|
||||
__u64 db_addr;
|
||||
__aligned_u64 buf_addr;
|
||||
__aligned_u64 db_addr;
|
||||
};
|
||||
|
||||
struct mlx4_ib_create_cq_resp {
|
||||
@@ -83,12 +87,12 @@ struct mlx4_ib_create_cq_resp {
|
||||
};
|
||||
|
||||
struct mlx4_ib_resize_cq {
|
||||
__u64 buf_addr;
|
||||
__aligned_u64 buf_addr;
|
||||
};
|
||||
|
||||
struct mlx4_ib_create_srq {
|
||||
__u64 buf_addr;
|
||||
__u64 db_addr;
|
||||
__aligned_u64 buf_addr;
|
||||
__aligned_u64 db_addr;
|
||||
};
|
||||
|
||||
struct mlx4_ib_create_srq_resp {
|
||||
@@ -97,7 +101,7 @@ struct mlx4_ib_create_srq_resp {
|
||||
};
|
||||
|
||||
struct mlx4_ib_create_qp_rss {
|
||||
__u64 rx_hash_fields_mask; /* Use enum mlx4_ib_rx_hash_fields */
|
||||
__aligned_u64 rx_hash_fields_mask; /* Use enum mlx4_ib_rx_hash_fields */
|
||||
__u8 rx_hash_function; /* Use enum mlx4_ib_rx_hash_function_flags */
|
||||
__u8 reserved[7];
|
||||
__u8 rx_hash_key[40];
|
||||
@@ -106,8 +110,8 @@ struct mlx4_ib_create_qp_rss {
|
||||
};
|
||||
|
||||
struct mlx4_ib_create_qp {
|
||||
__u64 buf_addr;
|
||||
__u64 db_addr;
|
||||
__aligned_u64 buf_addr;
|
||||
__aligned_u64 db_addr;
|
||||
__u8 log_sq_bb_count;
|
||||
__u8 log_sq_stride;
|
||||
__u8 sq_no_prefetch;
|
||||
@@ -116,8 +120,8 @@ struct mlx4_ib_create_qp {
|
||||
};
|
||||
|
||||
struct mlx4_ib_create_wq {
|
||||
__u64 buf_addr;
|
||||
__u64 db_addr;
|
||||
__aligned_u64 buf_addr;
|
||||
__aligned_u64 db_addr;
|
||||
__u8 log_range_size;
|
||||
__u8 reserved[3];
|
||||
__u32 comp_mask;
|
||||
@@ -156,4 +160,32 @@ enum mlx4_ib_rx_hash_fields {
|
||||
MLX4_IB_RX_HASH_INNER = 1ULL << 31,
|
||||
};
|
||||
|
||||
struct mlx4_ib_rss_caps {
|
||||
__aligned_u64 rx_hash_fields_mask; /* enum mlx4_ib_rx_hash_fields */
|
||||
__u8 rx_hash_function; /* enum mlx4_ib_rx_hash_function_flags */
|
||||
__u8 reserved[7];
|
||||
};
|
||||
|
||||
enum query_device_resp_mask {
|
||||
MLX4_IB_QUERY_DEV_RESP_MASK_CORE_CLOCK_OFFSET = 1UL << 0,
|
||||
};
|
||||
|
||||
struct mlx4_ib_tso_caps {
|
||||
__u32 max_tso; /* Maximum tso payload size in bytes */
|
||||
/* Corresponding bit will be set if qp type from
|
||||
* 'enum ib_qp_type' is supported.
|
||||
*/
|
||||
__u32 supported_qpts;
|
||||
};
|
||||
|
||||
struct mlx4_uverbs_ex_query_device_resp {
|
||||
__u32 comp_mask;
|
||||
__u32 response_length;
|
||||
__aligned_u64 hca_core_clock_offset;
|
||||
__u32 max_inl_recv_sz;
|
||||
__u32 reserved;
|
||||
struct mlx4_ib_rss_caps rss_caps;
|
||||
struct mlx4_ib_tso_caps tso_caps;
|
||||
};
|
||||
|
||||
#endif /* MLX4_ABI_USER_H */
|
||||
|
||||
@@ -84,7 +84,7 @@ struct mlx5_ib_alloc_ucontext_req_v2 {
|
||||
__u8 reserved0;
|
||||
__u16 reserved1;
|
||||
__u32 reserved2;
|
||||
__u64 lib_caps;
|
||||
__aligned_u64 lib_caps;
|
||||
};
|
||||
|
||||
enum mlx5_ib_alloc_ucontext_resp_mask {
|
||||
@@ -107,6 +107,14 @@ enum mlx5_user_inline_mode {
|
||||
MLX5_USER_INLINE_MODE_TCP_UDP,
|
||||
};
|
||||
|
||||
enum {
|
||||
MLX5_USER_ALLOC_UCONTEXT_FLOW_ACTION_FLAGS_ESP_AES_GCM = 1 << 0,
|
||||
MLX5_USER_ALLOC_UCONTEXT_FLOW_ACTION_FLAGS_ESP_AES_GCM_REQ_METADATA = 1 << 1,
|
||||
MLX5_USER_ALLOC_UCONTEXT_FLOW_ACTION_FLAGS_ESP_AES_GCM_SPI_STEERING = 1 << 2,
|
||||
MLX5_USER_ALLOC_UCONTEXT_FLOW_ACTION_FLAGS_ESP_AES_GCM_FULL_OFFLOAD = 1 << 3,
|
||||
MLX5_USER_ALLOC_UCONTEXT_FLOW_ACTION_FLAGS_ESP_AES_GCM_TX_IV_IS_ESN = 1 << 4,
|
||||
};
|
||||
|
||||
struct mlx5_ib_alloc_ucontext_resp {
|
||||
__u32 qp_tab_size;
|
||||
__u32 bf_reg_size;
|
||||
@@ -118,14 +126,14 @@ struct mlx5_ib_alloc_ucontext_resp {
|
||||
__u32 max_recv_wr;
|
||||
__u32 max_srq_recv_wr;
|
||||
__u16 num_ports;
|
||||
__u16 reserved1;
|
||||
__u16 flow_action_flags;
|
||||
__u32 comp_mask;
|
||||
__u32 response_length;
|
||||
__u8 cqe_version;
|
||||
__u8 cmds_supp_uhw;
|
||||
__u8 eth_min_inline;
|
||||
__u8 clock_info_versions;
|
||||
__u64 hca_core_clock_offset;
|
||||
__aligned_u64 hca_core_clock_offset;
|
||||
__u32 log_uar_size;
|
||||
__u32 num_uars_per_page;
|
||||
__u32 num_dyn_bfregs;
|
||||
@@ -147,7 +155,7 @@ struct mlx5_ib_tso_caps {
|
||||
};
|
||||
|
||||
struct mlx5_ib_rss_caps {
|
||||
__u64 rx_hash_fields_mask; /* enum mlx5_rx_hash_fields */
|
||||
__aligned_u64 rx_hash_fields_mask; /* enum mlx5_rx_hash_fields */
|
||||
__u8 rx_hash_function; /* enum mlx5_rx_hash_function_flags */
|
||||
__u8 reserved[7];
|
||||
};
|
||||
@@ -163,6 +171,10 @@ struct mlx5_ib_cqe_comp_caps {
|
||||
__u32 supported_format; /* enum mlx5_ib_cqe_comp_res_format */
|
||||
};
|
||||
|
||||
enum mlx5_ib_packet_pacing_cap_flags {
|
||||
MLX5_IB_PP_SUPPORT_BURST = 1 << 0,
|
||||
};
|
||||
|
||||
struct mlx5_packet_pacing_caps {
|
||||
__u32 qp_rate_limit_min;
|
||||
__u32 qp_rate_limit_max; /* In kpbs */
|
||||
@@ -172,7 +184,8 @@ struct mlx5_packet_pacing_caps {
|
||||
* supported_qpts |= 1 << IB_QPT_RAW_PACKET
|
||||
*/
|
||||
__u32 supported_qpts;
|
||||
__u32 reserved;
|
||||
__u8 cap_flags; /* enum mlx5_ib_packet_pacing_cap_flags */
|
||||
__u8 reserved[3];
|
||||
};
|
||||
|
||||
enum mlx5_ib_mpw_caps {
|
||||
@@ -243,8 +256,8 @@ enum mlx5_ib_create_cq_flags {
|
||||
};
|
||||
|
||||
struct mlx5_ib_create_cq {
|
||||
__u64 buf_addr;
|
||||
__u64 db_addr;
|
||||
__aligned_u64 buf_addr;
|
||||
__aligned_u64 db_addr;
|
||||
__u32 cqe_size;
|
||||
__u8 cqe_comp_en;
|
||||
__u8 cqe_comp_res_format;
|
||||
@@ -257,15 +270,15 @@ struct mlx5_ib_create_cq_resp {
|
||||
};
|
||||
|
||||
struct mlx5_ib_resize_cq {
|
||||
__u64 buf_addr;
|
||||
__aligned_u64 buf_addr;
|
||||
__u16 cqe_size;
|
||||
__u16 reserved0;
|
||||
__u32 reserved1;
|
||||
};
|
||||
|
||||
struct mlx5_ib_create_srq {
|
||||
__u64 buf_addr;
|
||||
__u64 db_addr;
|
||||
__aligned_u64 buf_addr;
|
||||
__aligned_u64 db_addr;
|
||||
__u32 flags;
|
||||
__u32 reserved0; /* explicit padding (optional on i386) */
|
||||
__u32 uidx;
|
||||
@@ -278,8 +291,8 @@ struct mlx5_ib_create_srq_resp {
|
||||
};
|
||||
|
||||
struct mlx5_ib_create_qp {
|
||||
__u64 buf_addr;
|
||||
__u64 db_addr;
|
||||
__aligned_u64 buf_addr;
|
||||
__aligned_u64 db_addr;
|
||||
__u32 sq_wqe_count;
|
||||
__u32 rq_wqe_count;
|
||||
__u32 rq_wqe_shift;
|
||||
@@ -287,8 +300,8 @@ struct mlx5_ib_create_qp {
|
||||
__u32 uidx;
|
||||
__u32 bfreg_index;
|
||||
union {
|
||||
__u64 sq_buf_addr;
|
||||
__u64 access_key;
|
||||
__aligned_u64 sq_buf_addr;
|
||||
__aligned_u64 access_key;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -314,12 +327,13 @@ enum mlx5_rx_hash_fields {
|
||||
MLX5_RX_HASH_DST_PORT_TCP = 1 << 5,
|
||||
MLX5_RX_HASH_SRC_PORT_UDP = 1 << 6,
|
||||
MLX5_RX_HASH_DST_PORT_UDP = 1 << 7,
|
||||
MLX5_RX_HASH_IPSEC_SPI = 1 << 8,
|
||||
/* Save bits for future fields */
|
||||
MLX5_RX_HASH_INNER = (1UL << 31),
|
||||
};
|
||||
|
||||
struct mlx5_ib_create_qp_rss {
|
||||
__u64 rx_hash_fields_mask; /* enum mlx5_rx_hash_fields */
|
||||
__aligned_u64 rx_hash_fields_mask; /* enum mlx5_rx_hash_fields */
|
||||
__u8 rx_hash_function; /* enum mlx5_rx_hash_function_flags */
|
||||
__u8 rx_key_len; /* valid only for Toeplitz */
|
||||
__u8 reserved[6];
|
||||
@@ -330,6 +344,7 @@ struct mlx5_ib_create_qp_rss {
|
||||
|
||||
struct mlx5_ib_create_qp_resp {
|
||||
__u32 bfreg_index;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct mlx5_ib_alloc_mw {
|
||||
@@ -344,8 +359,8 @@ enum mlx5_ib_create_wq_mask {
|
||||
};
|
||||
|
||||
struct mlx5_ib_create_wq {
|
||||
__u64 buf_addr;
|
||||
__u64 db_addr;
|
||||
__aligned_u64 buf_addr;
|
||||
__aligned_u64 db_addr;
|
||||
__u32 rq_wqe_count;
|
||||
__u32 rq_wqe_shift;
|
||||
__u32 user_index;
|
||||
@@ -362,6 +377,18 @@ struct mlx5_ib_create_ah_resp {
|
||||
__u8 reserved[6];
|
||||
};
|
||||
|
||||
struct mlx5_ib_burst_info {
|
||||
__u32 max_burst_sz;
|
||||
__u16 typical_pkt_sz;
|
||||
__u16 reserved;
|
||||
};
|
||||
|
||||
struct mlx5_ib_modify_qp {
|
||||
__u32 comp_mask;
|
||||
struct mlx5_ib_burst_info burst_info;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct mlx5_ib_modify_qp_resp {
|
||||
__u32 response_length;
|
||||
__u32 dctn;
|
||||
@@ -385,13 +412,13 @@ struct mlx5_ib_modify_wq {
|
||||
struct mlx5_ib_clock_info {
|
||||
__u32 sign;
|
||||
__u32 resv;
|
||||
__u64 nsec;
|
||||
__u64 cycles;
|
||||
__u64 frac;
|
||||
__aligned_u64 nsec;
|
||||
__aligned_u64 cycles;
|
||||
__aligned_u64 frac;
|
||||
__u32 mult;
|
||||
__u32 shift;
|
||||
__u64 mask;
|
||||
__u64 overflow_period;
|
||||
__aligned_u64 mask;
|
||||
__aligned_u64 overflow_period;
|
||||
};
|
||||
|
||||
enum mlx5_ib_mmap_cmd {
|
||||
@@ -403,6 +430,7 @@ enum mlx5_ib_mmap_cmd {
|
||||
MLX5_IB_MMAP_CORE_CLOCK = 5,
|
||||
MLX5_IB_MMAP_ALLOC_WC = 6,
|
||||
MLX5_IB_MMAP_CLOCK_INFO = 7,
|
||||
MLX5_IB_MMAP_DEVICE_MEM = 8,
|
||||
};
|
||||
|
||||
enum {
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
/*
|
||||
* Copyright (c) 2018, 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 MLX5_USER_IOCTL_CMDS_H
|
||||
#define MLX5_USER_IOCTL_CMDS_H
|
||||
|
||||
#include <rdma/ib_user_ioctl_cmds.h>
|
||||
|
||||
enum mlx5_ib_create_flow_action_attrs {
|
||||
/* This attribute belong to the driver namespace */
|
||||
MLX5_IB_ATTR_CREATE_FLOW_ACTION_FLAGS = (1U << UVERBS_ID_NS_SHIFT),
|
||||
};
|
||||
|
||||
enum mlx5_ib_alloc_dm_attrs {
|
||||
MLX5_IB_ATTR_ALLOC_DM_RESP_START_OFFSET = (1U << UVERBS_ID_NS_SHIFT),
|
||||
MLX5_IB_ATTR_ALLOC_DM_RESP_PAGE_INDEX,
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,43 @@
|
||||
/*
|
||||
* Copyright (c) 2018, 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 MLX5_USER_IOCTL_VERBS_H
|
||||
#define MLX5_USER_IOCTL_VERBS_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
enum mlx5_ib_uapi_flow_action_flags {
|
||||
MLX5_IB_UAPI_FLOW_ACTION_FLAGS_REQUIRE_METADATA = 1 << 0,
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -74,8 +74,8 @@ struct mthca_reg_mr {
|
||||
struct mthca_create_cq {
|
||||
__u32 lkey;
|
||||
__u32 pdn;
|
||||
__u64 arm_db_page;
|
||||
__u64 set_db_page;
|
||||
__aligned_u64 arm_db_page;
|
||||
__aligned_u64 set_db_page;
|
||||
__u32 arm_db_index;
|
||||
__u32 set_db_index;
|
||||
};
|
||||
@@ -93,7 +93,7 @@ struct mthca_resize_cq {
|
||||
struct mthca_create_srq {
|
||||
__u32 lkey;
|
||||
__u32 db_index;
|
||||
__u64 db_page;
|
||||
__aligned_u64 db_page;
|
||||
};
|
||||
|
||||
struct mthca_create_srq_resp {
|
||||
@@ -104,8 +104,8 @@ struct mthca_create_srq_resp {
|
||||
struct mthca_create_qp {
|
||||
__u32 lkey;
|
||||
__u32 reserved;
|
||||
__u64 sq_db_page;
|
||||
__u64 rq_db_page;
|
||||
__aligned_u64 sq_db_page;
|
||||
__aligned_u64 rq_db_page;
|
||||
__u32 sq_db_index;
|
||||
__u32 rq_db_index;
|
||||
};
|
||||
|
||||
@@ -72,14 +72,14 @@ struct nes_alloc_pd_resp {
|
||||
};
|
||||
|
||||
struct nes_create_cq_req {
|
||||
__u64 user_cq_buffer;
|
||||
__aligned_u64 user_cq_buffer;
|
||||
__u32 mcrqf;
|
||||
__u8 reserved[4];
|
||||
};
|
||||
|
||||
struct nes_create_qp_req {
|
||||
__u64 user_wqe_buffers;
|
||||
__u64 user_qp_buffer;
|
||||
__aligned_u64 user_wqe_buffers;
|
||||
__aligned_u64 user_qp_buffer;
|
||||
};
|
||||
|
||||
enum iwnes_memreg_type {
|
||||
|
||||
@@ -55,17 +55,17 @@ struct ocrdma_alloc_ucontext_resp {
|
||||
__u32 wqe_size;
|
||||
__u32 max_inline_data;
|
||||
__u32 dpp_wqe_size;
|
||||
__u64 ah_tbl_page;
|
||||
__aligned_u64 ah_tbl_page;
|
||||
__u32 ah_tbl_len;
|
||||
__u32 rqe_size;
|
||||
__u8 fw_ver[32];
|
||||
/* for future use/new features in progress */
|
||||
__u64 rsvd1;
|
||||
__u64 rsvd2;
|
||||
__aligned_u64 rsvd1;
|
||||
__aligned_u64 rsvd2;
|
||||
};
|
||||
|
||||
struct ocrdma_alloc_pd_ureq {
|
||||
__u64 rsvd1;
|
||||
__u32 rsvd[2];
|
||||
};
|
||||
|
||||
struct ocrdma_alloc_pd_uresp {
|
||||
@@ -73,7 +73,7 @@ struct ocrdma_alloc_pd_uresp {
|
||||
__u32 dpp_enabled;
|
||||
__u32 dpp_page_addr_hi;
|
||||
__u32 dpp_page_addr_lo;
|
||||
__u64 rsvd1;
|
||||
__u32 rsvd[2];
|
||||
};
|
||||
|
||||
struct ocrdma_create_cq_ureq {
|
||||
@@ -87,13 +87,13 @@ struct ocrdma_create_cq_uresp {
|
||||
__u32 page_size;
|
||||
__u32 num_pages;
|
||||
__u32 max_hw_cqe;
|
||||
__u64 page_addr[MAX_CQ_PAGES];
|
||||
__u64 db_page_addr;
|
||||
__aligned_u64 page_addr[MAX_CQ_PAGES];
|
||||
__aligned_u64 db_page_addr;
|
||||
__u32 db_page_size;
|
||||
__u32 phase_change;
|
||||
/* for future use/new features in progress */
|
||||
__u64 rsvd1;
|
||||
__u64 rsvd2;
|
||||
__aligned_u64 rsvd1;
|
||||
__aligned_u64 rsvd2;
|
||||
};
|
||||
|
||||
#define MAX_QP_PAGES 8
|
||||
@@ -115,9 +115,9 @@ struct ocrdma_create_qp_uresp {
|
||||
__u32 rq_page_size;
|
||||
__u32 num_sq_pages;
|
||||
__u32 num_rq_pages;
|
||||
__u64 sq_page_addr[MAX_QP_PAGES];
|
||||
__u64 rq_page_addr[MAX_QP_PAGES];
|
||||
__u64 db_page_addr;
|
||||
__aligned_u64 sq_page_addr[MAX_QP_PAGES];
|
||||
__aligned_u64 rq_page_addr[MAX_QP_PAGES];
|
||||
__aligned_u64 db_page_addr;
|
||||
__u32 db_page_size;
|
||||
__u32 dpp_credit;
|
||||
__u32 dpp_offset;
|
||||
@@ -126,8 +126,8 @@ struct ocrdma_create_qp_uresp {
|
||||
__u32 db_sq_offset;
|
||||
__u32 db_rq_offset;
|
||||
__u32 db_shift;
|
||||
__u64 rsvd[11];
|
||||
} __packed;
|
||||
__aligned_u64 rsvd[11];
|
||||
};
|
||||
|
||||
struct ocrdma_create_srq_uresp {
|
||||
__u16 rq_dbid;
|
||||
@@ -137,16 +137,16 @@ struct ocrdma_create_srq_uresp {
|
||||
__u32 rq_page_size;
|
||||
__u32 num_rq_pages;
|
||||
|
||||
__u64 rq_page_addr[MAX_QP_PAGES];
|
||||
__u64 db_page_addr;
|
||||
__aligned_u64 rq_page_addr[MAX_QP_PAGES];
|
||||
__aligned_u64 db_page_addr;
|
||||
|
||||
__u32 db_page_size;
|
||||
__u32 num_rqe_allocated;
|
||||
__u32 db_rq_offset;
|
||||
__u32 db_shift;
|
||||
|
||||
__u64 rsvd2;
|
||||
__u64 rsvd3;
|
||||
__aligned_u64 rsvd2;
|
||||
__aligned_u64 rsvd3;
|
||||
};
|
||||
|
||||
#endif /* OCRDMA_ABI_USER_H */
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
/* user kernel communication data structures. */
|
||||
|
||||
struct qedr_alloc_ucontext_resp {
|
||||
__u64 db_pa;
|
||||
__aligned_u64 db_pa;
|
||||
__u32 db_size;
|
||||
|
||||
__u32 max_send_wr;
|
||||
@@ -53,24 +53,27 @@ struct qedr_alloc_ucontext_resp {
|
||||
__u8 dpm_enabled;
|
||||
__u8 wids_enabled;
|
||||
__u16 wid_count;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct qedr_alloc_pd_ureq {
|
||||
__u64 rsvd1;
|
||||
__aligned_u64 rsvd1;
|
||||
};
|
||||
|
||||
struct qedr_alloc_pd_uresp {
|
||||
__u32 pd_id;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct qedr_create_cq_ureq {
|
||||
__u64 addr;
|
||||
__u64 len;
|
||||
__aligned_u64 addr;
|
||||
__aligned_u64 len;
|
||||
};
|
||||
|
||||
struct qedr_create_cq_uresp {
|
||||
__u32 db_offset;
|
||||
__u16 icid;
|
||||
__u16 reserved;
|
||||
};
|
||||
|
||||
struct qedr_create_qp_ureq {
|
||||
@@ -79,17 +82,17 @@ struct qedr_create_qp_ureq {
|
||||
|
||||
/* SQ */
|
||||
/* user space virtual address of SQ buffer */
|
||||
__u64 sq_addr;
|
||||
__aligned_u64 sq_addr;
|
||||
|
||||
/* length of SQ buffer */
|
||||
__u64 sq_len;
|
||||
__aligned_u64 sq_len;
|
||||
|
||||
/* RQ */
|
||||
/* user space virtual address of RQ buffer */
|
||||
__u64 rq_addr;
|
||||
__aligned_u64 rq_addr;
|
||||
|
||||
/* length of RQ buffer */
|
||||
__u64 rq_len;
|
||||
__aligned_u64 rq_len;
|
||||
};
|
||||
|
||||
struct qedr_create_qp_uresp {
|
||||
@@ -105,6 +108,7 @@ struct qedr_create_qp_uresp {
|
||||
__u16 rq_icid;
|
||||
|
||||
__u32 rq_db2_offset;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
#endif /* __QEDR_USER_H__ */
|
||||
|
||||
@@ -238,6 +238,14 @@ enum rdma_nldev_command {
|
||||
|
||||
RDMA_NLDEV_CMD_RES_QP_GET, /* can dump */
|
||||
|
||||
RDMA_NLDEV_CMD_RES_CM_ID_GET, /* can dump */
|
||||
|
||||
RDMA_NLDEV_CMD_RES_CQ_GET, /* can dump */
|
||||
|
||||
RDMA_NLDEV_CMD_RES_MR_GET, /* can dump */
|
||||
|
||||
RDMA_NLDEV_CMD_RES_PD_GET, /* can dump */
|
||||
|
||||
RDMA_NLDEV_NUM_OPS
|
||||
};
|
||||
|
||||
@@ -350,6 +358,49 @@ enum rdma_nldev_attr {
|
||||
*/
|
||||
RDMA_NLDEV_ATTR_RES_KERN_NAME, /* string */
|
||||
|
||||
RDMA_NLDEV_ATTR_RES_CM_ID, /* nested table */
|
||||
RDMA_NLDEV_ATTR_RES_CM_ID_ENTRY, /* nested table */
|
||||
/*
|
||||
* rdma_cm_id port space.
|
||||
*/
|
||||
RDMA_NLDEV_ATTR_RES_PS, /* u32 */
|
||||
/*
|
||||
* Source and destination socket addresses
|
||||
*/
|
||||
RDMA_NLDEV_ATTR_RES_SRC_ADDR, /* __kernel_sockaddr_storage */
|
||||
RDMA_NLDEV_ATTR_RES_DST_ADDR, /* __kernel_sockaddr_storage */
|
||||
|
||||
RDMA_NLDEV_ATTR_RES_CQ, /* nested table */
|
||||
RDMA_NLDEV_ATTR_RES_CQ_ENTRY, /* nested table */
|
||||
RDMA_NLDEV_ATTR_RES_CQE, /* u32 */
|
||||
RDMA_NLDEV_ATTR_RES_USECNT, /* u64 */
|
||||
RDMA_NLDEV_ATTR_RES_POLL_CTX, /* u8 */
|
||||
|
||||
RDMA_NLDEV_ATTR_RES_MR, /* nested table */
|
||||
RDMA_NLDEV_ATTR_RES_MR_ENTRY, /* nested table */
|
||||
RDMA_NLDEV_ATTR_RES_RKEY, /* u32 */
|
||||
RDMA_NLDEV_ATTR_RES_LKEY, /* u32 */
|
||||
RDMA_NLDEV_ATTR_RES_IOVA, /* u64 */
|
||||
RDMA_NLDEV_ATTR_RES_MRLEN, /* u64 */
|
||||
|
||||
RDMA_NLDEV_ATTR_RES_PD, /* nested table */
|
||||
RDMA_NLDEV_ATTR_RES_PD_ENTRY, /* nested table */
|
||||
RDMA_NLDEV_ATTR_RES_LOCAL_DMA_LKEY, /* u32 */
|
||||
RDMA_NLDEV_ATTR_RES_UNSAFE_GLOBAL_RKEY, /* u32 */
|
||||
|
||||
/*
|
||||
* Provides logical name and index of netdevice which is
|
||||
* connected to physical port. This information is relevant
|
||||
* for RoCE and iWARP.
|
||||
*
|
||||
* The netdevices which are associated with containers are
|
||||
* supposed to be exported together with GID table once it
|
||||
* will be exposed through the netlink. Because the
|
||||
* associated netdevices are properties of GIDs.
|
||||
*/
|
||||
RDMA_NLDEV_ATTR_NDEV_INDEX, /* u32 */
|
||||
RDMA_NLDEV_ATTR_NDEV_NAME, /* string */
|
||||
|
||||
RDMA_NLDEV_ATTR_MAX
|
||||
};
|
||||
#endif /* _UAPI_RDMA_NETLINK_H */
|
||||
|
||||
@@ -70,6 +70,14 @@ enum {
|
||||
RDMA_USER_CM_CMD_JOIN_MCAST
|
||||
};
|
||||
|
||||
/* See IBTA Annex A11, servies ID bytes 4 & 5 */
|
||||
enum rdma_ucm_port_space {
|
||||
RDMA_PS_IPOIB = 0x0002,
|
||||
RDMA_PS_IB = 0x013F,
|
||||
RDMA_PS_TCP = 0x0106,
|
||||
RDMA_PS_UDP = 0x0111,
|
||||
};
|
||||
|
||||
/*
|
||||
* command ABI structures.
|
||||
*/
|
||||
@@ -80,9 +88,9 @@ struct rdma_ucm_cmd_hdr {
|
||||
};
|
||||
|
||||
struct rdma_ucm_create_id {
|
||||
__u64 uid;
|
||||
__u64 response;
|
||||
__u16 ps;
|
||||
__aligned_u64 uid;
|
||||
__aligned_u64 response;
|
||||
__u16 ps; /* use enum rdma_ucm_port_space */
|
||||
__u8 qp_type;
|
||||
__u8 reserved[5];
|
||||
};
|
||||
@@ -92,7 +100,7 @@ struct rdma_ucm_create_id_resp {
|
||||
};
|
||||
|
||||
struct rdma_ucm_destroy_id {
|
||||
__u64 response;
|
||||
__aligned_u64 response;
|
||||
__u32 id;
|
||||
__u32 reserved;
|
||||
};
|
||||
@@ -102,7 +110,7 @@ struct rdma_ucm_destroy_id_resp {
|
||||
};
|
||||
|
||||
struct rdma_ucm_bind_ip {
|
||||
__u64 response;
|
||||
__aligned_u64 response;
|
||||
struct sockaddr_in6 addr;
|
||||
__u32 id;
|
||||
};
|
||||
@@ -143,13 +151,13 @@ enum {
|
||||
};
|
||||
|
||||
struct rdma_ucm_query {
|
||||
__u64 response;
|
||||
__aligned_u64 response;
|
||||
__u32 id;
|
||||
__u32 option;
|
||||
};
|
||||
|
||||
struct rdma_ucm_query_route_resp {
|
||||
__u64 node_guid;
|
||||
__aligned_u64 node_guid;
|
||||
struct ib_user_path_rec ib_route[2];
|
||||
struct sockaddr_in6 src_addr;
|
||||
struct sockaddr_in6 dst_addr;
|
||||
@@ -159,7 +167,7 @@ struct rdma_ucm_query_route_resp {
|
||||
};
|
||||
|
||||
struct rdma_ucm_query_addr_resp {
|
||||
__u64 node_guid;
|
||||
__aligned_u64 node_guid;
|
||||
__u8 port_num;
|
||||
__u8 reserved;
|
||||
__u16 pkey;
|
||||
@@ -210,7 +218,7 @@ struct rdma_ucm_listen {
|
||||
};
|
||||
|
||||
struct rdma_ucm_accept {
|
||||
__u64 uid;
|
||||
__aligned_u64 uid;
|
||||
struct rdma_ucm_conn_param conn_param;
|
||||
__u32 id;
|
||||
__u32 reserved;
|
||||
@@ -228,7 +236,7 @@ struct rdma_ucm_disconnect {
|
||||
};
|
||||
|
||||
struct rdma_ucm_init_qp_attr {
|
||||
__u64 response;
|
||||
__aligned_u64 response;
|
||||
__u32 id;
|
||||
__u32 qp_state;
|
||||
};
|
||||
@@ -239,8 +247,8 @@ struct rdma_ucm_notify {
|
||||
};
|
||||
|
||||
struct rdma_ucm_join_ip_mcast {
|
||||
__u64 response; /* rdma_ucm_create_id_resp */
|
||||
__u64 uid;
|
||||
__aligned_u64 response; /* rdma_ucm_create_id_resp */
|
||||
__aligned_u64 uid;
|
||||
struct sockaddr_in6 addr;
|
||||
__u32 id;
|
||||
};
|
||||
@@ -253,8 +261,8 @@ enum {
|
||||
};
|
||||
|
||||
struct rdma_ucm_join_mcast {
|
||||
__u64 response; /* rdma_ucma_create_id_resp */
|
||||
__u64 uid;
|
||||
__aligned_u64 response; /* rdma_ucma_create_id_resp */
|
||||
__aligned_u64 uid;
|
||||
__u32 id;
|
||||
__u16 addr_size;
|
||||
__u16 join_flags;
|
||||
@@ -262,18 +270,23 @@ struct rdma_ucm_join_mcast {
|
||||
};
|
||||
|
||||
struct rdma_ucm_get_event {
|
||||
__u64 response;
|
||||
__aligned_u64 response;
|
||||
};
|
||||
|
||||
struct rdma_ucm_event_resp {
|
||||
__u64 uid;
|
||||
__aligned_u64 uid;
|
||||
__u32 id;
|
||||
__u32 event;
|
||||
__u32 status;
|
||||
/*
|
||||
* NOTE: This union is not aligned to 8 bytes so none of the union
|
||||
* members may contain a u64 or anything with higher alignment than 4.
|
||||
*/
|
||||
union {
|
||||
struct rdma_ucm_conn_param conn;
|
||||
struct rdma_ucm_ud_param ud;
|
||||
} param;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
/* Option levels */
|
||||
@@ -291,7 +304,7 @@ enum {
|
||||
};
|
||||
|
||||
struct rdma_ucm_set_option {
|
||||
__u64 optval;
|
||||
__aligned_u64 optval;
|
||||
__u32 id;
|
||||
__u32 level;
|
||||
__u32 optname;
|
||||
@@ -299,7 +312,7 @@ struct rdma_ucm_set_option {
|
||||
};
|
||||
|
||||
struct rdma_ucm_migrate_id {
|
||||
__u64 response;
|
||||
__aligned_u64 response;
|
||||
__u32 id;
|
||||
__u32 fd;
|
||||
};
|
||||
|
||||
@@ -34,49 +34,13 @@
|
||||
#ifndef RDMA_USER_IOCTL_H
|
||||
#define RDMA_USER_IOCTL_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/ioctl.h>
|
||||
#include <rdma/ib_user_mad.h>
|
||||
#include <rdma/hfi/hfi1_ioctl.h>
|
||||
#include <rdma/rdma_user_ioctl_cmds.h>
|
||||
|
||||
/* Documentation/ioctl/ioctl-number.txt */
|
||||
#define RDMA_IOCTL_MAGIC 0x1b
|
||||
/* 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;
|
||||
__aligned_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;
|
||||
__aligned_u64 reserved;
|
||||
struct ib_uverbs_attr attrs[0];
|
||||
};
|
||||
|
||||
/*
|
||||
* General blocks assignments
|
||||
* It is closed on purpose do not expose it it user space
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
/*
|
||||
* Copyright (c) 2018, 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 RDMA_USER_IOCTL_CMDS_H
|
||||
#define RDMA_USER_IOCTL_CMDS_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/ioctl.h>
|
||||
|
||||
/* Documentation/ioctl/ioctl-number.txt */
|
||||
#define RDMA_IOCTL_MAGIC 0x1b
|
||||
#define RDMA_VERBS_IOCTL \
|
||||
_IOWR(RDMA_IOCTL_MAGIC, 1, struct ib_uverbs_ioctl_hdr)
|
||||
|
||||
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 */
|
||||
union {
|
||||
struct {
|
||||
__u8 elem_id;
|
||||
__u8 reserved;
|
||||
} enum_data;
|
||||
__u16 reserved;
|
||||
} attr_data;
|
||||
__aligned_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;
|
||||
__aligned_u64 reserved1;
|
||||
__u32 driver_id;
|
||||
__u32 reserved2;
|
||||
struct ib_uverbs_attr attrs[0];
|
||||
};
|
||||
|
||||
enum rdma_driver_id {
|
||||
RDMA_DRIVER_UNKNOWN,
|
||||
RDMA_DRIVER_MLX5,
|
||||
RDMA_DRIVER_MLX4,
|
||||
RDMA_DRIVER_CXGB3,
|
||||
RDMA_DRIVER_CXGB4,
|
||||
RDMA_DRIVER_MTHCA,
|
||||
RDMA_DRIVER_BNXT_RE,
|
||||
RDMA_DRIVER_OCRDMA,
|
||||
RDMA_DRIVER_NES,
|
||||
RDMA_DRIVER_I40IW,
|
||||
RDMA_DRIVER_VMW_PVRDMA,
|
||||
RDMA_DRIVER_QEDR,
|
||||
RDMA_DRIVER_HNS,
|
||||
RDMA_DRIVER_USNIC,
|
||||
RDMA_DRIVER_RXE,
|
||||
RDMA_DRIVER_HFI1,
|
||||
RDMA_DRIVER_QIB,
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -35,6 +35,9 @@
|
||||
#define RDMA_USER_RXE_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/socket.h>
|
||||
#include <linux/in.h>
|
||||
#include <linux/in6.h>
|
||||
|
||||
union rxe_gid {
|
||||
__u8 raw[16];
|
||||
@@ -55,16 +58,17 @@ struct rxe_global_route {
|
||||
struct rxe_av {
|
||||
__u8 port_num;
|
||||
__u8 network_type;
|
||||
__u16 reserved1;
|
||||
__u32 reserved2;
|
||||
struct rxe_global_route grh;
|
||||
union {
|
||||
struct sockaddr _sockaddr;
|
||||
struct sockaddr_in _sockaddr_in;
|
||||
struct sockaddr_in6 _sockaddr_in6;
|
||||
} sgid_addr, dgid_addr;
|
||||
};
|
||||
|
||||
struct rxe_send_wr {
|
||||
__u64 wr_id;
|
||||
__aligned_u64 wr_id;
|
||||
__u32 num_sge;
|
||||
__u32 opcode;
|
||||
__u32 send_flags;
|
||||
@@ -74,36 +78,42 @@ struct rxe_send_wr {
|
||||
} ex;
|
||||
union {
|
||||
struct {
|
||||
__u64 remote_addr;
|
||||
__aligned_u64 remote_addr;
|
||||
__u32 rkey;
|
||||
__u32 reserved;
|
||||
} rdma;
|
||||
struct {
|
||||
__u64 remote_addr;
|
||||
__u64 compare_add;
|
||||
__u64 swap;
|
||||
__aligned_u64 remote_addr;
|
||||
__aligned_u64 compare_add;
|
||||
__aligned_u64 swap;
|
||||
__u32 rkey;
|
||||
__u32 reserved;
|
||||
} atomic;
|
||||
struct {
|
||||
__u32 remote_qpn;
|
||||
__u32 remote_qkey;
|
||||
__u16 pkey_index;
|
||||
} ud;
|
||||
/* reg is only used by the kernel and is not part of the uapi */
|
||||
struct {
|
||||
struct ib_mr *mr;
|
||||
union {
|
||||
struct ib_mr *mr;
|
||||
__aligned_u64 reserved;
|
||||
};
|
||||
__u32 key;
|
||||
int access;
|
||||
__u32 access;
|
||||
} reg;
|
||||
} wr;
|
||||
};
|
||||
|
||||
struct rxe_sge {
|
||||
__u64 addr;
|
||||
__aligned_u64 addr;
|
||||
__u32 length;
|
||||
__u32 lkey;
|
||||
};
|
||||
|
||||
struct mminfo {
|
||||
__u64 offset;
|
||||
__aligned_u64 offset;
|
||||
__u32 size;
|
||||
__u32 pad;
|
||||
};
|
||||
@@ -114,6 +124,7 @@ struct rxe_dma_info {
|
||||
__u32 cur_sge;
|
||||
__u32 num_sge;
|
||||
__u32 sge_offset;
|
||||
__u32 reserved;
|
||||
union {
|
||||
__u8 inline_data[0];
|
||||
struct rxe_sge sge[0];
|
||||
@@ -125,7 +136,7 @@ struct rxe_send_wqe {
|
||||
struct rxe_av av;
|
||||
__u32 status;
|
||||
__u32 state;
|
||||
__u64 iova;
|
||||
__aligned_u64 iova;
|
||||
__u32 mask;
|
||||
__u32 first_psn;
|
||||
__u32 last_psn;
|
||||
@@ -136,10 +147,33 @@ struct rxe_send_wqe {
|
||||
};
|
||||
|
||||
struct rxe_recv_wqe {
|
||||
__u64 wr_id;
|
||||
__aligned_u64 wr_id;
|
||||
__u32 num_sge;
|
||||
__u32 padding;
|
||||
struct rxe_dma_info dma;
|
||||
};
|
||||
|
||||
struct rxe_create_cq_resp {
|
||||
struct mminfo mi;
|
||||
};
|
||||
|
||||
struct rxe_resize_cq_resp {
|
||||
struct mminfo mi;
|
||||
};
|
||||
|
||||
struct rxe_create_qp_resp {
|
||||
struct mminfo rq_mi;
|
||||
struct mminfo sq_mi;
|
||||
};
|
||||
|
||||
struct rxe_create_srq_resp {
|
||||
struct mminfo mi;
|
||||
__u32 srq_num;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct rxe_modify_srq_cmd {
|
||||
__aligned_u64 mmap_info_addr;
|
||||
};
|
||||
|
||||
#endif /* RDMA_USER_RXE_H */
|
||||
|
||||
@@ -143,7 +143,7 @@ struct pvrdma_alloc_pd_resp {
|
||||
};
|
||||
|
||||
struct pvrdma_create_cq {
|
||||
__u64 buf_addr;
|
||||
__aligned_u64 buf_addr;
|
||||
__u32 buf_size;
|
||||
__u32 reserved;
|
||||
};
|
||||
@@ -154,13 +154,13 @@ struct pvrdma_create_cq_resp {
|
||||
};
|
||||
|
||||
struct pvrdma_resize_cq {
|
||||
__u64 buf_addr;
|
||||
__aligned_u64 buf_addr;
|
||||
__u32 buf_size;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct pvrdma_create_srq {
|
||||
__u64 buf_addr;
|
||||
__aligned_u64 buf_addr;
|
||||
__u32 buf_size;
|
||||
__u32 reserved;
|
||||
};
|
||||
@@ -171,25 +171,25 @@ struct pvrdma_create_srq_resp {
|
||||
};
|
||||
|
||||
struct pvrdma_create_qp {
|
||||
__u64 rbuf_addr;
|
||||
__u64 sbuf_addr;
|
||||
__aligned_u64 rbuf_addr;
|
||||
__aligned_u64 sbuf_addr;
|
||||
__u32 rbuf_size;
|
||||
__u32 sbuf_size;
|
||||
__u64 qp_addr;
|
||||
__aligned_u64 qp_addr;
|
||||
};
|
||||
|
||||
/* PVRDMA masked atomic compare and swap */
|
||||
struct pvrdma_ex_cmp_swap {
|
||||
__u64 swap_val;
|
||||
__u64 compare_val;
|
||||
__u64 swap_mask;
|
||||
__u64 compare_mask;
|
||||
__aligned_u64 swap_val;
|
||||
__aligned_u64 compare_val;
|
||||
__aligned_u64 swap_mask;
|
||||
__aligned_u64 compare_mask;
|
||||
};
|
||||
|
||||
/* PVRDMA masked atomic fetch and add */
|
||||
struct pvrdma_ex_fetch_add {
|
||||
__u64 add_val;
|
||||
__u64 field_boundary;
|
||||
__aligned_u64 add_val;
|
||||
__aligned_u64 field_boundary;
|
||||
};
|
||||
|
||||
/* PVRDMA address vector. */
|
||||
@@ -207,14 +207,14 @@ struct pvrdma_av {
|
||||
|
||||
/* PVRDMA scatter/gather entry */
|
||||
struct pvrdma_sge {
|
||||
__u64 addr;
|
||||
__aligned_u64 addr;
|
||||
__u32 length;
|
||||
__u32 lkey;
|
||||
};
|
||||
|
||||
/* PVRDMA receive queue work request */
|
||||
struct pvrdma_rq_wqe_hdr {
|
||||
__u64 wr_id; /* wr id */
|
||||
__aligned_u64 wr_id; /* wr id */
|
||||
__u32 num_sge; /* size of s/g array */
|
||||
__u32 total_len; /* reserved */
|
||||
};
|
||||
@@ -222,7 +222,7 @@ struct pvrdma_rq_wqe_hdr {
|
||||
|
||||
/* PVRDMA send queue work request */
|
||||
struct pvrdma_sq_wqe_hdr {
|
||||
__u64 wr_id; /* wr id */
|
||||
__aligned_u64 wr_id; /* wr id */
|
||||
__u32 num_sge; /* size of s/g array */
|
||||
__u32 total_len; /* reserved */
|
||||
__u32 opcode; /* operation type */
|
||||
@@ -234,19 +234,19 @@ struct pvrdma_sq_wqe_hdr {
|
||||
__u32 reserved;
|
||||
union {
|
||||
struct {
|
||||
__u64 remote_addr;
|
||||
__aligned_u64 remote_addr;
|
||||
__u32 rkey;
|
||||
__u8 reserved[4];
|
||||
} rdma;
|
||||
struct {
|
||||
__u64 remote_addr;
|
||||
__u64 compare_add;
|
||||
__u64 swap;
|
||||
__aligned_u64 remote_addr;
|
||||
__aligned_u64 compare_add;
|
||||
__aligned_u64 swap;
|
||||
__u32 rkey;
|
||||
__u32 reserved;
|
||||
} atomic;
|
||||
struct {
|
||||
__u64 remote_addr;
|
||||
__aligned_u64 remote_addr;
|
||||
__u32 log_arg_sz;
|
||||
__u32 rkey;
|
||||
union {
|
||||
@@ -255,13 +255,14 @@ struct pvrdma_sq_wqe_hdr {
|
||||
} wr_data;
|
||||
} masked_atomics;
|
||||
struct {
|
||||
__u64 iova_start;
|
||||
__u64 pl_pdir_dma;
|
||||
__aligned_u64 iova_start;
|
||||
__aligned_u64 pl_pdir_dma;
|
||||
__u32 page_shift;
|
||||
__u32 page_list_len;
|
||||
__u32 length;
|
||||
__u32 access_flags;
|
||||
__u32 rkey;
|
||||
__u32 reserved;
|
||||
} fast_reg;
|
||||
struct {
|
||||
__u32 remote_qpn;
|
||||
@@ -274,8 +275,8 @@ struct pvrdma_sq_wqe_hdr {
|
||||
|
||||
/* Completion queue element. */
|
||||
struct pvrdma_cqe {
|
||||
__u64 wr_id;
|
||||
__u64 qp;
|
||||
__aligned_u64 wr_id;
|
||||
__aligned_u64 qp;
|
||||
__u32 opcode;
|
||||
__u32 status;
|
||||
__u32 byte_len;
|
||||
|
||||
@@ -242,6 +242,7 @@ typedef int __bitwise snd_pcm_format_t;
|
||||
#define SNDRV_PCM_FORMAT_DSD_U16_BE ((__force snd_pcm_format_t) 51) /* DSD, 2-byte samples DSD (x16), big endian */
|
||||
#define SNDRV_PCM_FORMAT_DSD_U32_BE ((__force snd_pcm_format_t) 52) /* DSD, 4-byte samples DSD (x32), big endian */
|
||||
#define SNDRV_PCM_FORMAT_LAST SNDRV_PCM_FORMAT_DSD_U32_BE
|
||||
#define SNDRV_PCM_FORMAT_FIRST SNDRV_PCM_FORMAT_S8
|
||||
|
||||
#ifdef SNDRV_LITTLE_ENDIAN
|
||||
#define SNDRV_PCM_FORMAT_S16 SNDRV_PCM_FORMAT_S16_LE
|
||||
|
||||
Reference in New Issue
Block a user