Merge tag 'drm-intel-fixes-2015-07-15' into drm-intel-next-queued
Backmerge fixes since it's getting out of hand again with the massive split due to atomic between -next and 4.2-rc. All the bugfixes in 4.2-rc are addressed already (by converting more towards atomic instead of minimal duct-tape) so just always pick the version in next for the conflicts in modeset code. All the other conflicts are just adjacent lines changed. Conflicts: drivers/gpu/drm/i915/i915_drv.h drivers/gpu/drm/i915/i915_gem_gtt.c drivers/gpu/drm/i915/intel_display.c drivers/gpu/drm/i915/intel_drv.h drivers/gpu/drm/i915/intel_ringbuffer.h Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
This commit is contained in:
@@ -313,6 +313,9 @@ struct drm_amdgpu_gem_op {
|
||||
#define AMDGPU_VA_OP_MAP 1
|
||||
#define AMDGPU_VA_OP_UNMAP 2
|
||||
|
||||
/* Delay the page table update till the next CS */
|
||||
#define AMDGPU_VM_DELAY_UPDATE (1 << 0)
|
||||
|
||||
/* Mapping flags */
|
||||
/* readable mapping */
|
||||
#define AMDGPU_VM_PAGE_READABLE (1 << 1)
|
||||
@@ -348,6 +351,7 @@ struct drm_amdgpu_gem_va {
|
||||
|
||||
#define AMDGPU_CHUNK_ID_IB 0x01
|
||||
#define AMDGPU_CHUNK_ID_FENCE 0x02
|
||||
#define AMDGPU_CHUNK_ID_DEPENDENCIES 0x03
|
||||
|
||||
struct drm_amdgpu_cs_chunk {
|
||||
uint32_t chunk_id;
|
||||
@@ -399,6 +403,14 @@ struct drm_amdgpu_cs_chunk_ib {
|
||||
uint32_t ring;
|
||||
};
|
||||
|
||||
struct drm_amdgpu_cs_chunk_dep {
|
||||
uint32_t ip_type;
|
||||
uint32_t ip_instance;
|
||||
uint32_t ring;
|
||||
uint32_t ctx_id;
|
||||
uint64_t handle;
|
||||
};
|
||||
|
||||
struct drm_amdgpu_cs_chunk_fence {
|
||||
uint32_t handle;
|
||||
uint32_t offset;
|
||||
|
||||
@@ -1038,7 +1038,8 @@ struct drm_radeon_cs {
|
||||
#define RADEON_INFO_CURRENT_GPU_SCLK 0x22
|
||||
#define RADEON_INFO_CURRENT_GPU_MCLK 0x23
|
||||
#define RADEON_INFO_READ_REG 0x24
|
||||
#define RADEON_INFO_GPU_RESET_COUNTER 0x25
|
||||
#define RADEON_INFO_VA_UNMAP_WORKING 0x25
|
||||
#define RADEON_INFO_GPU_RESET_COUNTER 0x26
|
||||
|
||||
struct drm_radeon_info {
|
||||
uint32_t request;
|
||||
|
||||
@@ -138,6 +138,7 @@ header-y += genetlink.h
|
||||
header-y += gen_stats.h
|
||||
header-y += gfs2_ondisk.h
|
||||
header-y += gigaset_dev.h
|
||||
header-y += gsmmux.h
|
||||
header-y += hdlcdrv.h
|
||||
header-y += hdlc.h
|
||||
header-y += hdreg.h
|
||||
@@ -271,6 +272,7 @@ header-y += ncp_fs.h
|
||||
header-y += ncp.h
|
||||
header-y += ncp_mount.h
|
||||
header-y += ncp_no.h
|
||||
header-y += ndctl.h
|
||||
header-y += neighbour.h
|
||||
header-y += netconf.h
|
||||
header-y += netdevice.h
|
||||
@@ -352,6 +354,7 @@ header-y += rtc.h
|
||||
header-y += rtnetlink.h
|
||||
header-y += scc.h
|
||||
header-y += sched.h
|
||||
header-y += scif_ioctl.h
|
||||
header-y += screen_info.h
|
||||
header-y += sctp.h
|
||||
header-y += sdla.h
|
||||
|
||||
@@ -113,6 +113,7 @@ enum bpf_map_type {
|
||||
BPF_MAP_TYPE_UNSPEC,
|
||||
BPF_MAP_TYPE_HASH,
|
||||
BPF_MAP_TYPE_ARRAY,
|
||||
BPF_MAP_TYPE_PROG_ARRAY,
|
||||
};
|
||||
|
||||
enum bpf_prog_type {
|
||||
@@ -210,6 +211,44 @@ enum bpf_func_id {
|
||||
* Return: 0 on success
|
||||
*/
|
||||
BPF_FUNC_l4_csum_replace,
|
||||
|
||||
/**
|
||||
* bpf_tail_call(ctx, prog_array_map, index) - jump into another BPF program
|
||||
* @ctx: context pointer passed to next program
|
||||
* @prog_array_map: pointer to map which type is BPF_MAP_TYPE_PROG_ARRAY
|
||||
* @index: index inside array that selects specific program to run
|
||||
* Return: 0 on success
|
||||
*/
|
||||
BPF_FUNC_tail_call,
|
||||
|
||||
/**
|
||||
* bpf_clone_redirect(skb, ifindex, flags) - redirect to another netdev
|
||||
* @skb: pointer to skb
|
||||
* @ifindex: ifindex of the net device
|
||||
* @flags: bit 0 - if set, redirect to ingress instead of egress
|
||||
* other bits - reserved
|
||||
* Return: 0 on success
|
||||
*/
|
||||
BPF_FUNC_clone_redirect,
|
||||
|
||||
/**
|
||||
* u64 bpf_get_current_pid_tgid(void)
|
||||
* Return: current->tgid << 32 | current->pid
|
||||
*/
|
||||
BPF_FUNC_get_current_pid_tgid,
|
||||
|
||||
/**
|
||||
* u64 bpf_get_current_uid_gid(void)
|
||||
* Return: current_gid << 32 | current_uid
|
||||
*/
|
||||
BPF_FUNC_get_current_uid_gid,
|
||||
|
||||
/**
|
||||
* bpf_get_current_comm(char *buf, int size_of_buf)
|
||||
* stores current->comm into buf
|
||||
* Return: 0 on success
|
||||
*/
|
||||
BPF_FUNC_get_current_comm,
|
||||
__BPF_FUNC_MAX_ID,
|
||||
};
|
||||
|
||||
@@ -226,6 +265,10 @@ struct __sk_buff {
|
||||
__u32 vlan_tci;
|
||||
__u32 vlan_proto;
|
||||
__u32 priority;
|
||||
__u32 ingress_ifindex;
|
||||
__u32 ifindex;
|
||||
__u32 tc_index;
|
||||
__u32 cb[5];
|
||||
};
|
||||
|
||||
#endif /* _UAPI__LINUX_BPF_H__ */
|
||||
|
||||
@@ -95,11 +95,17 @@ typedef __u32 can_err_mask_t;
|
||||
* @can_dlc: frame payload length in byte (0 .. 8) aka data length code
|
||||
* N.B. the DLC field from ISO 11898-1 Chapter 8.4.2.3 has a 1:1
|
||||
* mapping of the 'data length code' to the real payload length
|
||||
* @__pad: padding
|
||||
* @__res0: reserved / padding
|
||||
* @__res1: reserved / padding
|
||||
* @data: CAN frame payload (up to 8 byte)
|
||||
*/
|
||||
struct can_frame {
|
||||
canid_t can_id; /* 32 bit CAN_ID + EFF/RTR/ERR flags */
|
||||
__u8 can_dlc; /* frame payload length in byte (0 .. CAN_MAX_DLEN) */
|
||||
__u8 __pad; /* padding */
|
||||
__u8 __res0; /* reserved / padding */
|
||||
__u8 __res1; /* reserved / padding */
|
||||
__u8 data[CAN_MAX_DLEN] __attribute__((aligned(8)));
|
||||
};
|
||||
|
||||
|
||||
@@ -78,6 +78,7 @@ enum {
|
||||
CGW_FILTER, /* specify struct can_filter on source CAN device */
|
||||
CGW_DELETED, /* number of deleted CAN frames (see max_hops param) */
|
||||
CGW_LIM_HOPS, /* limit the number of hops of this specific rule */
|
||||
CGW_MOD_UID, /* user defined identifier for modification updates */
|
||||
__CGW_MAX
|
||||
};
|
||||
|
||||
@@ -162,6 +163,10 @@ enum {
|
||||
* load time of the can-gw module). This value is used to reduce the number of
|
||||
* possible hops for this gateway rule to a value smaller then max_hops.
|
||||
*
|
||||
* CGW_MOD_UID (length 4 bytes):
|
||||
* Optional non-zero user defined routing job identifier to alter existing
|
||||
* modification settings at runtime.
|
||||
*
|
||||
* CGW_CS_XOR (length 4 bytes):
|
||||
* Set a simple XOR checksum starting with an initial value into
|
||||
* data[result-idx] using data[start-idx] .. data[end-idx]
|
||||
|
||||
@@ -0,0 +1,111 @@
|
||||
/*
|
||||
* Crypto user configuration API.
|
||||
*
|
||||
* Copyright (C) 2011 secunet Security Networks AG
|
||||
* Copyright (C) 2011 Steffen Klassert <steffen.klassert@secunet.com>
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* 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.,
|
||||
* 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
/* Netlink configuration messages. */
|
||||
enum {
|
||||
CRYPTO_MSG_BASE = 0x10,
|
||||
CRYPTO_MSG_NEWALG = 0x10,
|
||||
CRYPTO_MSG_DELALG,
|
||||
CRYPTO_MSG_UPDATEALG,
|
||||
CRYPTO_MSG_GETALG,
|
||||
CRYPTO_MSG_DELRNG,
|
||||
__CRYPTO_MSG_MAX
|
||||
};
|
||||
#define CRYPTO_MSG_MAX (__CRYPTO_MSG_MAX - 1)
|
||||
#define CRYPTO_NR_MSGTYPES (CRYPTO_MSG_MAX + 1 - CRYPTO_MSG_BASE)
|
||||
|
||||
#define CRYPTO_MAX_NAME CRYPTO_MAX_ALG_NAME
|
||||
|
||||
/* Netlink message attributes. */
|
||||
enum crypto_attr_type_t {
|
||||
CRYPTOCFGA_UNSPEC,
|
||||
CRYPTOCFGA_PRIORITY_VAL, /* __u32 */
|
||||
CRYPTOCFGA_REPORT_LARVAL, /* struct crypto_report_larval */
|
||||
CRYPTOCFGA_REPORT_HASH, /* struct crypto_report_hash */
|
||||
CRYPTOCFGA_REPORT_BLKCIPHER, /* struct crypto_report_blkcipher */
|
||||
CRYPTOCFGA_REPORT_AEAD, /* struct crypto_report_aead */
|
||||
CRYPTOCFGA_REPORT_COMPRESS, /* struct crypto_report_comp */
|
||||
CRYPTOCFGA_REPORT_RNG, /* struct crypto_report_rng */
|
||||
CRYPTOCFGA_REPORT_CIPHER, /* struct crypto_report_cipher */
|
||||
CRYPTOCFGA_REPORT_AKCIPHER, /* struct crypto_report_akcipher */
|
||||
__CRYPTOCFGA_MAX
|
||||
|
||||
#define CRYPTOCFGA_MAX (__CRYPTOCFGA_MAX - 1)
|
||||
};
|
||||
|
||||
struct crypto_user_alg {
|
||||
char cru_name[CRYPTO_MAX_ALG_NAME];
|
||||
char cru_driver_name[CRYPTO_MAX_ALG_NAME];
|
||||
char cru_module_name[CRYPTO_MAX_ALG_NAME];
|
||||
__u32 cru_type;
|
||||
__u32 cru_mask;
|
||||
__u32 cru_refcnt;
|
||||
__u32 cru_flags;
|
||||
};
|
||||
|
||||
struct crypto_report_larval {
|
||||
char type[CRYPTO_MAX_NAME];
|
||||
};
|
||||
|
||||
struct crypto_report_hash {
|
||||
char type[CRYPTO_MAX_NAME];
|
||||
unsigned int blocksize;
|
||||
unsigned int digestsize;
|
||||
};
|
||||
|
||||
struct crypto_report_cipher {
|
||||
char type[CRYPTO_MAX_ALG_NAME];
|
||||
unsigned int blocksize;
|
||||
unsigned int min_keysize;
|
||||
unsigned int max_keysize;
|
||||
};
|
||||
|
||||
struct crypto_report_blkcipher {
|
||||
char type[CRYPTO_MAX_NAME];
|
||||
char geniv[CRYPTO_MAX_NAME];
|
||||
unsigned int blocksize;
|
||||
unsigned int min_keysize;
|
||||
unsigned int max_keysize;
|
||||
unsigned int ivsize;
|
||||
};
|
||||
|
||||
struct crypto_report_aead {
|
||||
char type[CRYPTO_MAX_NAME];
|
||||
char geniv[CRYPTO_MAX_NAME];
|
||||
unsigned int blocksize;
|
||||
unsigned int maxauthsize;
|
||||
unsigned int ivsize;
|
||||
};
|
||||
|
||||
struct crypto_report_comp {
|
||||
char type[CRYPTO_MAX_NAME];
|
||||
};
|
||||
|
||||
struct crypto_report_rng {
|
||||
char type[CRYPTO_MAX_NAME];
|
||||
unsigned int seedsize;
|
||||
};
|
||||
|
||||
struct crypto_report_akcipher {
|
||||
char type[CRYPTO_MAX_NAME];
|
||||
};
|
||||
|
||||
#define CRYPTO_REPORT_MAXSIZE (sizeof(struct crypto_user_alg) + \
|
||||
sizeof(struct crypto_report_blkcipher))
|
||||
@@ -207,8 +207,7 @@ struct cee_pfc {
|
||||
#define IEEE_8021QAZ_APP_SEL_ANY 4
|
||||
|
||||
/* This structure contains the IEEE 802.1Qaz APP managed object. This
|
||||
* object is also used for the CEE std as well. There is no difference
|
||||
* between the objects.
|
||||
* object is also used for the CEE std as well.
|
||||
*
|
||||
* @selector: protocol identifier type
|
||||
* @protocol: protocol of type indicated
|
||||
@@ -216,13 +215,18 @@ struct cee_pfc {
|
||||
* 8-bit 802.1p user priority bitmap for CEE
|
||||
*
|
||||
* ----
|
||||
* Selector field values
|
||||
* Selector field values for IEEE 802.1Qaz
|
||||
* 0 Reserved
|
||||
* 1 Ethertype
|
||||
* 2 Well known port number over TCP or SCTP
|
||||
* 3 Well known port number over UDP or DCCP
|
||||
* 4 Well known port number over TCP, SCTP, UDP, or DCCP
|
||||
* 5-7 Reserved
|
||||
*
|
||||
* Selector field values for CEE
|
||||
* 0 Ethertype
|
||||
* 1 Well known port number over TCP or UDP
|
||||
* 2-3 Reserved
|
||||
*/
|
||||
struct dcb_app {
|
||||
__u8 selector;
|
||||
|
||||
@@ -267,9 +267,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 31
|
||||
#define DM_VERSION_MINOR 32
|
||||
#define DM_VERSION_PATCHLEVEL 0
|
||||
#define DM_VERSION_EXTRA "-ioctl (2015-3-12)"
|
||||
#define DM_VERSION_EXTRA "-ioctl (2015-6-26)"
|
||||
|
||||
/* Status bits */
|
||||
#define DM_READONLY_FLAG (1 << 0) /* In/Out */
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
#define DMX_FILTER_SIZE 16
|
||||
|
||||
typedef enum
|
||||
enum dmx_output
|
||||
{
|
||||
DMX_OUT_DECODER, /* Streaming directly to decoder. */
|
||||
DMX_OUT_TAP, /* Output going to a memory buffer */
|
||||
@@ -41,10 +41,11 @@ typedef enum
|
||||
/* (to be retrieved by reading from the */
|
||||
/* logical DVR device). */
|
||||
DMX_OUT_TSDEMUX_TAP /* Like TS_TAP but retrieved from the DMX device */
|
||||
} dmx_output_t;
|
||||
};
|
||||
|
||||
typedef enum dmx_output dmx_output_t;
|
||||
|
||||
typedef enum
|
||||
typedef enum dmx_input
|
||||
{
|
||||
DMX_IN_FRONTEND, /* Input from a front-end device. */
|
||||
DMX_IN_DVR /* Input from the logical DVR device. */
|
||||
@@ -122,7 +123,7 @@ typedef struct dmx_caps {
|
||||
int num_decoders;
|
||||
} dmx_caps_t;
|
||||
|
||||
typedef enum {
|
||||
typedef enum dmx_source {
|
||||
DMX_SOURCE_FRONT0 = 0,
|
||||
DMX_SOURCE_FRONT1,
|
||||
DMX_SOURCE_FRONT2,
|
||||
@@ -139,7 +140,6 @@ struct dmx_stc {
|
||||
__u64 stc; /* output: stc in 'base'*90 kHz units */
|
||||
};
|
||||
|
||||
|
||||
#define DMX_START _IO('o', 41)
|
||||
#define DMX_STOP _IO('o', 42)
|
||||
#define DMX_SET_FILTER _IOW('o', 43, struct dmx_sct_filter_params)
|
||||
|
||||
+116
-107
@@ -28,15 +28,14 @@
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
typedef enum fe_type {
|
||||
enum fe_type {
|
||||
FE_QPSK,
|
||||
FE_QAM,
|
||||
FE_OFDM,
|
||||
FE_ATSC
|
||||
} fe_type_t;
|
||||
};
|
||||
|
||||
|
||||
typedef enum fe_caps {
|
||||
enum fe_caps {
|
||||
FE_IS_STUPID = 0,
|
||||
FE_CAN_INVERSION_AUTO = 0x1,
|
||||
FE_CAN_FEC_1_2 = 0x2,
|
||||
@@ -68,12 +67,11 @@ typedef enum fe_caps {
|
||||
FE_NEEDS_BENDING = 0x20000000, /* not supported anymore, don't use (frontend requires frequency bending) */
|
||||
FE_CAN_RECOVER = 0x40000000, /* frontend can recover from a cable unplug automatically */
|
||||
FE_CAN_MUTE_TS = 0x80000000 /* frontend can stop spurious TS data output */
|
||||
} fe_caps_t;
|
||||
|
||||
};
|
||||
|
||||
struct dvb_frontend_info {
|
||||
char name[128];
|
||||
fe_type_t type; /* DEPRECATED. Use DTV_ENUM_DELSYS instead */
|
||||
enum fe_type type; /* DEPRECATED. Use DTV_ENUM_DELSYS instead */
|
||||
__u32 frequency_min;
|
||||
__u32 frequency_max;
|
||||
__u32 frequency_stepsize;
|
||||
@@ -82,7 +80,7 @@ struct dvb_frontend_info {
|
||||
__u32 symbol_rate_max;
|
||||
__u32 symbol_rate_tolerance; /* ppm */
|
||||
__u32 notifier_delay; /* DEPRECATED */
|
||||
fe_caps_t caps;
|
||||
enum fe_caps caps;
|
||||
};
|
||||
|
||||
|
||||
@@ -95,32 +93,27 @@ struct dvb_diseqc_master_cmd {
|
||||
__u8 msg_len; /* valid values are 3...6 */
|
||||
};
|
||||
|
||||
|
||||
struct dvb_diseqc_slave_reply {
|
||||
__u8 msg [4]; /* { framing, data [3] } */
|
||||
__u8 msg_len; /* valid values are 0...4, 0 means no msg */
|
||||
int timeout; /* return from ioctl after timeout ms with */
|
||||
}; /* errorcode when no message was received */
|
||||
|
||||
|
||||
typedef enum fe_sec_voltage {
|
||||
enum fe_sec_voltage {
|
||||
SEC_VOLTAGE_13,
|
||||
SEC_VOLTAGE_18,
|
||||
SEC_VOLTAGE_OFF
|
||||
} fe_sec_voltage_t;
|
||||
};
|
||||
|
||||
|
||||
typedef enum fe_sec_tone_mode {
|
||||
enum fe_sec_tone_mode {
|
||||
SEC_TONE_ON,
|
||||
SEC_TONE_OFF
|
||||
} fe_sec_tone_mode_t;
|
||||
};
|
||||
|
||||
|
||||
typedef enum fe_sec_mini_cmd {
|
||||
enum fe_sec_mini_cmd {
|
||||
SEC_MINI_A,
|
||||
SEC_MINI_B
|
||||
} fe_sec_mini_cmd_t;
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* enum fe_status - enumerates the possible frontend status
|
||||
@@ -133,8 +126,7 @@ typedef enum fe_sec_mini_cmd {
|
||||
* @FE_REINIT: frontend was reinitialized, application is recommended
|
||||
* to reset DiSEqC, tone and parameters
|
||||
*/
|
||||
|
||||
typedef enum fe_status {
|
||||
enum fe_status {
|
||||
FE_HAS_SIGNAL = 0x01,
|
||||
FE_HAS_CARRIER = 0x02,
|
||||
FE_HAS_VITERBI = 0x04,
|
||||
@@ -142,16 +134,15 @@ typedef enum fe_status {
|
||||
FE_HAS_LOCK = 0x10,
|
||||
FE_TIMEDOUT = 0x20,
|
||||
FE_REINIT = 0x40,
|
||||
} fe_status_t;
|
||||
};
|
||||
|
||||
typedef enum fe_spectral_inversion {
|
||||
enum fe_spectral_inversion {
|
||||
INVERSION_OFF,
|
||||
INVERSION_ON,
|
||||
INVERSION_AUTO
|
||||
} fe_spectral_inversion_t;
|
||||
};
|
||||
|
||||
|
||||
typedef enum fe_code_rate {
|
||||
enum fe_code_rate {
|
||||
FEC_NONE = 0,
|
||||
FEC_1_2,
|
||||
FEC_2_3,
|
||||
@@ -165,10 +156,9 @@ typedef enum fe_code_rate {
|
||||
FEC_3_5,
|
||||
FEC_9_10,
|
||||
FEC_2_5,
|
||||
} fe_code_rate_t;
|
||||
};
|
||||
|
||||
|
||||
typedef enum fe_modulation {
|
||||
enum fe_modulation {
|
||||
QPSK,
|
||||
QAM_16,
|
||||
QAM_32,
|
||||
@@ -183,9 +173,9 @@ typedef enum fe_modulation {
|
||||
APSK_32,
|
||||
DQPSK,
|
||||
QAM_4_NR,
|
||||
} fe_modulation_t;
|
||||
};
|
||||
|
||||
typedef enum fe_transmit_mode {
|
||||
enum fe_transmit_mode {
|
||||
TRANSMISSION_MODE_2K,
|
||||
TRANSMISSION_MODE_8K,
|
||||
TRANSMISSION_MODE_AUTO,
|
||||
@@ -195,21 +185,9 @@ typedef enum fe_transmit_mode {
|
||||
TRANSMISSION_MODE_32K,
|
||||
TRANSMISSION_MODE_C1,
|
||||
TRANSMISSION_MODE_C3780,
|
||||
} fe_transmit_mode_t;
|
||||
};
|
||||
|
||||
#if defined(__DVB_CORE__) || !defined (__KERNEL__)
|
||||
typedef enum fe_bandwidth {
|
||||
BANDWIDTH_8_MHZ,
|
||||
BANDWIDTH_7_MHZ,
|
||||
BANDWIDTH_6_MHZ,
|
||||
BANDWIDTH_AUTO,
|
||||
BANDWIDTH_5_MHZ,
|
||||
BANDWIDTH_10_MHZ,
|
||||
BANDWIDTH_1_712_MHZ,
|
||||
} fe_bandwidth_t;
|
||||
#endif
|
||||
|
||||
typedef enum fe_guard_interval {
|
||||
enum fe_guard_interval {
|
||||
GUARD_INTERVAL_1_32,
|
||||
GUARD_INTERVAL_1_16,
|
||||
GUARD_INTERVAL_1_8,
|
||||
@@ -221,16 +199,15 @@ typedef enum fe_guard_interval {
|
||||
GUARD_INTERVAL_PN420,
|
||||
GUARD_INTERVAL_PN595,
|
||||
GUARD_INTERVAL_PN945,
|
||||
} fe_guard_interval_t;
|
||||
};
|
||||
|
||||
|
||||
typedef enum fe_hierarchy {
|
||||
enum fe_hierarchy {
|
||||
HIERARCHY_NONE,
|
||||
HIERARCHY_1,
|
||||
HIERARCHY_2,
|
||||
HIERARCHY_4,
|
||||
HIERARCHY_AUTO
|
||||
} fe_hierarchy_t;
|
||||
};
|
||||
|
||||
enum fe_interleaving {
|
||||
INTERLEAVING_NONE,
|
||||
@@ -239,51 +216,6 @@ enum fe_interleaving {
|
||||
INTERLEAVING_720,
|
||||
};
|
||||
|
||||
#if defined(__DVB_CORE__) || !defined (__KERNEL__)
|
||||
struct dvb_qpsk_parameters {
|
||||
__u32 symbol_rate; /* symbol rate in Symbols per second */
|
||||
fe_code_rate_t fec_inner; /* forward error correction (see above) */
|
||||
};
|
||||
|
||||
struct dvb_qam_parameters {
|
||||
__u32 symbol_rate; /* symbol rate in Symbols per second */
|
||||
fe_code_rate_t fec_inner; /* forward error correction (see above) */
|
||||
fe_modulation_t modulation; /* modulation type (see above) */
|
||||
};
|
||||
|
||||
struct dvb_vsb_parameters {
|
||||
fe_modulation_t modulation; /* modulation type (see above) */
|
||||
};
|
||||
|
||||
struct dvb_ofdm_parameters {
|
||||
fe_bandwidth_t bandwidth;
|
||||
fe_code_rate_t code_rate_HP; /* high priority stream code rate */
|
||||
fe_code_rate_t code_rate_LP; /* low priority stream code rate */
|
||||
fe_modulation_t constellation; /* modulation type (see above) */
|
||||
fe_transmit_mode_t transmission_mode;
|
||||
fe_guard_interval_t guard_interval;
|
||||
fe_hierarchy_t hierarchy_information;
|
||||
};
|
||||
|
||||
|
||||
struct dvb_frontend_parameters {
|
||||
__u32 frequency; /* (absolute) frequency in Hz for QAM/OFDM/ATSC */
|
||||
/* intermediate frequency in kHz for QPSK */
|
||||
fe_spectral_inversion_t inversion;
|
||||
union {
|
||||
struct dvb_qpsk_parameters qpsk;
|
||||
struct dvb_qam_parameters qam;
|
||||
struct dvb_ofdm_parameters ofdm;
|
||||
struct dvb_vsb_parameters vsb;
|
||||
} u;
|
||||
};
|
||||
|
||||
struct dvb_frontend_event {
|
||||
fe_status_t status;
|
||||
struct dvb_frontend_parameters parameters;
|
||||
};
|
||||
#endif
|
||||
|
||||
/* S2API Commands */
|
||||
#define DTV_UNDEFINED 0
|
||||
#define DTV_TUNE 1
|
||||
@@ -377,20 +309,20 @@ struct dvb_frontend_event {
|
||||
|
||||
#define DTV_MAX_COMMAND DTV_STAT_TOTAL_BLOCK_COUNT
|
||||
|
||||
typedef enum fe_pilot {
|
||||
enum fe_pilot {
|
||||
PILOT_ON,
|
||||
PILOT_OFF,
|
||||
PILOT_AUTO,
|
||||
} fe_pilot_t;
|
||||
};
|
||||
|
||||
typedef enum fe_rolloff {
|
||||
enum fe_rolloff {
|
||||
ROLLOFF_35, /* Implied value in DVB-S, default for DVB-S2 */
|
||||
ROLLOFF_20,
|
||||
ROLLOFF_25,
|
||||
ROLLOFF_AUTO,
|
||||
} fe_rolloff_t;
|
||||
};
|
||||
|
||||
typedef enum fe_delivery_system {
|
||||
enum fe_delivery_system {
|
||||
SYS_UNDEFINED,
|
||||
SYS_DVBC_ANNEX_A,
|
||||
SYS_DVBC_ANNEX_B,
|
||||
@@ -410,7 +342,7 @@ typedef enum fe_delivery_system {
|
||||
SYS_DVBT2,
|
||||
SYS_TURBO,
|
||||
SYS_DVBC_ANNEX_C,
|
||||
} fe_delivery_system_t;
|
||||
};
|
||||
|
||||
/* backward compatibility */
|
||||
#define SYS_DVBC_ANNEX_AC SYS_DVBC_ANNEX_A
|
||||
@@ -467,7 +399,7 @@ struct dtv_cmds_h {
|
||||
* @FE_SCALE_NOT_AVAILABLE: That QoS measure is not available. That
|
||||
* could indicate a temporary or a permanent
|
||||
* condition.
|
||||
* @FE_SCALE_DECIBEL: The scale is measured in 0.0001 dB steps, typically
|
||||
* @FE_SCALE_DECIBEL: The scale is measured in 0.001 dB steps, typically
|
||||
* used on signal measures.
|
||||
* @FE_SCALE_RELATIVE: The scale is a relative percentual measure,
|
||||
* ranging from 0 (0%) to 0xffff (100%).
|
||||
@@ -503,20 +435,20 @@ enum fecap_scale_params {
|
||||
*
|
||||
* In other words, for ISDB, those values should be filled like:
|
||||
* u.st.stat.svalue[0] = global statistics;
|
||||
* u.st.stat.scale[0] = FE_SCALE_DECIBELS;
|
||||
* u.st.stat.scale[0] = FE_SCALE_DECIBEL;
|
||||
* u.st.stat.value[1] = layer A statistics;
|
||||
* u.st.stat.scale[1] = FE_SCALE_NOT_AVAILABLE (if not available);
|
||||
* u.st.stat.svalue[2] = layer B statistics;
|
||||
* u.st.stat.scale[2] = FE_SCALE_DECIBELS;
|
||||
* u.st.stat.scale[2] = FE_SCALE_DECIBEL;
|
||||
* u.st.stat.svalue[3] = layer C statistics;
|
||||
* u.st.stat.scale[3] = FE_SCALE_DECIBELS;
|
||||
* u.st.stat.scale[3] = FE_SCALE_DECIBEL;
|
||||
* u.st.len = 4;
|
||||
*/
|
||||
struct dtv_stats {
|
||||
__u8 scale; /* enum fecap_scale_params type */
|
||||
union {
|
||||
__u64 uvalue; /* for counters and relative scales */
|
||||
__s64 svalue; /* for 0.0001 dB measures */
|
||||
__s64 svalue; /* for 0.001 dB measures */
|
||||
};
|
||||
} __attribute__ ((packed));
|
||||
|
||||
@@ -552,10 +484,88 @@ struct dtv_properties {
|
||||
struct dtv_property *props;
|
||||
};
|
||||
|
||||
#if defined(__DVB_CORE__) || !defined (__KERNEL__)
|
||||
|
||||
/*
|
||||
* DEPRECATED: The DVBv3 ioctls, structs and enums should not be used on
|
||||
* newer programs, as it doesn't support the second generation of digital
|
||||
* TV standards, nor supports newer delivery systems.
|
||||
*/
|
||||
|
||||
enum fe_bandwidth {
|
||||
BANDWIDTH_8_MHZ,
|
||||
BANDWIDTH_7_MHZ,
|
||||
BANDWIDTH_6_MHZ,
|
||||
BANDWIDTH_AUTO,
|
||||
BANDWIDTH_5_MHZ,
|
||||
BANDWIDTH_10_MHZ,
|
||||
BANDWIDTH_1_712_MHZ,
|
||||
};
|
||||
|
||||
/* This is needed for legacy userspace support */
|
||||
typedef enum fe_sec_voltage fe_sec_voltage_t;
|
||||
typedef enum fe_caps fe_caps_t;
|
||||
typedef enum fe_type fe_type_t;
|
||||
typedef enum fe_sec_tone_mode fe_sec_tone_mode_t;
|
||||
typedef enum fe_sec_mini_cmd fe_sec_mini_cmd_t;
|
||||
typedef enum fe_status fe_status_t;
|
||||
typedef enum fe_spectral_inversion fe_spectral_inversion_t;
|
||||
typedef enum fe_code_rate fe_code_rate_t;
|
||||
typedef enum fe_modulation fe_modulation_t;
|
||||
typedef enum fe_transmit_mode fe_transmit_mode_t;
|
||||
typedef enum fe_bandwidth fe_bandwidth_t;
|
||||
typedef enum fe_guard_interval fe_guard_interval_t;
|
||||
typedef enum fe_hierarchy fe_hierarchy_t;
|
||||
typedef enum fe_pilot fe_pilot_t;
|
||||
typedef enum fe_rolloff fe_rolloff_t;
|
||||
typedef enum fe_delivery_system fe_delivery_system_t;
|
||||
|
||||
struct dvb_qpsk_parameters {
|
||||
__u32 symbol_rate; /* symbol rate in Symbols per second */
|
||||
fe_code_rate_t fec_inner; /* forward error correction (see above) */
|
||||
};
|
||||
|
||||
struct dvb_qam_parameters {
|
||||
__u32 symbol_rate; /* symbol rate in Symbols per second */
|
||||
fe_code_rate_t fec_inner; /* forward error correction (see above) */
|
||||
fe_modulation_t modulation; /* modulation type (see above) */
|
||||
};
|
||||
|
||||
struct dvb_vsb_parameters {
|
||||
fe_modulation_t modulation; /* modulation type (see above) */
|
||||
};
|
||||
|
||||
struct dvb_ofdm_parameters {
|
||||
fe_bandwidth_t bandwidth;
|
||||
fe_code_rate_t code_rate_HP; /* high priority stream code rate */
|
||||
fe_code_rate_t code_rate_LP; /* low priority stream code rate */
|
||||
fe_modulation_t constellation; /* modulation type (see above) */
|
||||
fe_transmit_mode_t transmission_mode;
|
||||
fe_guard_interval_t guard_interval;
|
||||
fe_hierarchy_t hierarchy_information;
|
||||
};
|
||||
|
||||
struct dvb_frontend_parameters {
|
||||
__u32 frequency; /* (absolute) frequency in Hz for DVB-C/DVB-T/ATSC */
|
||||
/* intermediate frequency in kHz for DVB-S */
|
||||
fe_spectral_inversion_t inversion;
|
||||
union {
|
||||
struct dvb_qpsk_parameters qpsk; /* DVB-S */
|
||||
struct dvb_qam_parameters qam; /* DVB-C */
|
||||
struct dvb_ofdm_parameters ofdm; /* DVB-T */
|
||||
struct dvb_vsb_parameters vsb; /* ATSC */
|
||||
} u;
|
||||
};
|
||||
|
||||
struct dvb_frontend_event {
|
||||
fe_status_t status;
|
||||
struct dvb_frontend_parameters parameters;
|
||||
};
|
||||
#endif
|
||||
|
||||
#define FE_SET_PROPERTY _IOW('o', 82, struct dtv_properties)
|
||||
#define FE_GET_PROPERTY _IOR('o', 83, struct dtv_properties)
|
||||
|
||||
|
||||
/**
|
||||
* When set, this flag will disable any zigzagging or other "normal" tuning
|
||||
* behaviour. Additionally, there will be no automatic monitoring of the lock
|
||||
@@ -565,7 +575,6 @@ struct dtv_properties {
|
||||
*/
|
||||
#define FE_TUNE_MODE_ONESHOT 0x01
|
||||
|
||||
|
||||
#define FE_GET_INFO _IOR('o', 61, struct dvb_frontend_info)
|
||||
|
||||
#define FE_DISEQC_RESET_OVERLOAD _IO('o', 62)
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
#define EM_ARM 40 /* ARM 32 bit */
|
||||
#define EM_SH 42 /* SuperH */
|
||||
#define EM_SPARCV9 43 /* SPARC v9 64-bit */
|
||||
#define EM_H8_300 46 /* Renesas H8/300 */
|
||||
#define EM_IA_64 50 /* HP/Intel IA-64 */
|
||||
#define EM_X86_64 62 /* AMD x86-64 */
|
||||
#define EM_S390 22 /* IBM S/390 */
|
||||
|
||||
@@ -215,6 +215,11 @@ enum tunable_id {
|
||||
ETHTOOL_ID_UNSPEC,
|
||||
ETHTOOL_RX_COPYBREAK,
|
||||
ETHTOOL_TX_COPYBREAK,
|
||||
/*
|
||||
* Add your fresh new tubale attribute above and remember to update
|
||||
* tunable_strings[] in net/core/ethtool.c
|
||||
*/
|
||||
__ETHTOOL_TUNABLE_COUNT,
|
||||
};
|
||||
|
||||
enum tunable_type_id {
|
||||
@@ -545,6 +550,7 @@ enum ethtool_stringset {
|
||||
ETH_SS_NTUPLE_FILTERS,
|
||||
ETH_SS_FEATURES,
|
||||
ETH_SS_RSS_HASH_FUNCS,
|
||||
ETH_SS_TUNABLES,
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -796,6 +802,31 @@ struct ethtool_rx_flow_spec {
|
||||
__u32 location;
|
||||
};
|
||||
|
||||
/* How rings are layed out when accessing virtual functions or
|
||||
* offloaded queues is device specific. To allow users to do flow
|
||||
* steering and specify these queues the ring cookie is partitioned
|
||||
* into a 32bit queue index with an 8 bit virtual function id.
|
||||
* This also leaves the 3bytes for further specifiers. It is possible
|
||||
* future devices may support more than 256 virtual functions if
|
||||
* devices start supporting PCIe w/ARI. However at the moment I
|
||||
* do not know of any devices that support this so I do not reserve
|
||||
* space for this at this time. If a future patch consumes the next
|
||||
* byte it should be aware of this possiblity.
|
||||
*/
|
||||
#define ETHTOOL_RX_FLOW_SPEC_RING 0x00000000FFFFFFFFLL
|
||||
#define ETHTOOL_RX_FLOW_SPEC_RING_VF 0x000000FF00000000LL
|
||||
#define ETHTOOL_RX_FLOW_SPEC_RING_VF_OFF 32
|
||||
static inline __u64 ethtool_get_flow_spec_ring(__u64 ring_cookie)
|
||||
{
|
||||
return ETHTOOL_RX_FLOW_SPEC_RING & ring_cookie;
|
||||
};
|
||||
|
||||
static inline __u64 ethtool_get_flow_spec_ring_vf(__u64 ring_cookie)
|
||||
{
|
||||
return (ETHTOOL_RX_FLOW_SPEC_RING_VF & ring_cookie) >>
|
||||
ETHTOOL_RX_FLOW_SPEC_RING_VF_OFF;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct ethtool_rxnfc - command to get or set RX flow classification rules
|
||||
* @cmd: Specific command number - %ETHTOOL_GRXFH, %ETHTOOL_SRXFH,
|
||||
@@ -1264,15 +1295,19 @@ enum ethtool_sfeatures_retval_bits {
|
||||
* it was forced up into this mode or autonegotiated.
|
||||
*/
|
||||
|
||||
/* The forced speed, 10Mb, 100Mb, gigabit, [2.5|10|20|40|56]GbE. */
|
||||
/* The forced speed, 10Mb, 100Mb, gigabit, [2.5|5|10|20|25|40|50|56|100]GbE. */
|
||||
#define SPEED_10 10
|
||||
#define SPEED_100 100
|
||||
#define SPEED_1000 1000
|
||||
#define SPEED_2500 2500
|
||||
#define SPEED_5000 5000
|
||||
#define SPEED_10000 10000
|
||||
#define SPEED_20000 20000
|
||||
#define SPEED_25000 25000
|
||||
#define SPEED_40000 40000
|
||||
#define SPEED_50000 50000
|
||||
#define SPEED_56000 56000
|
||||
#define SPEED_100000 100000
|
||||
|
||||
#define SPEED_UNKNOWN -1
|
||||
|
||||
|
||||
@@ -755,4 +755,7 @@ struct fuse_notify_retrieve_in {
|
||||
uint64_t dummy4;
|
||||
};
|
||||
|
||||
/* Device ioctls: */
|
||||
#define FUSE_DEV_IOC_CLONE _IOR(229, 0, uint32_t)
|
||||
|
||||
#endif /* _LINUX_FUSE_H */
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
#ifndef _LINUX_GSMMUX_H
|
||||
#define _LINUX_GSMMUX_H
|
||||
|
||||
#include <linux/if.h>
|
||||
#include <linux/ioctl.h>
|
||||
|
||||
struct gsm_config
|
||||
{
|
||||
unsigned int adaption;
|
||||
unsigned int encapsulation;
|
||||
unsigned int initiator;
|
||||
unsigned int t1;
|
||||
unsigned int t2;
|
||||
unsigned int t3;
|
||||
unsigned int n2;
|
||||
unsigned int mru;
|
||||
unsigned int mtu;
|
||||
unsigned int k;
|
||||
unsigned int i;
|
||||
unsigned int unused[8]; /* Padding for expansion without
|
||||
breaking stuff */
|
||||
};
|
||||
|
||||
#define GSMIOC_GETCONF _IOR('G', 0, struct gsm_config)
|
||||
#define GSMIOC_SETCONF _IOW('G', 1, struct gsm_config)
|
||||
|
||||
struct gsm_netconfig {
|
||||
unsigned int adaption; /* Adaption to use in network mode */
|
||||
unsigned short protocol;/* Protocol to use - only ETH_P_IP supported */
|
||||
unsigned short unused2;
|
||||
char if_name[IFNAMSIZ]; /* interface name format string */
|
||||
__u8 unused[28]; /* For future use */
|
||||
};
|
||||
|
||||
#define GSMIOC_ENABLE_NET _IOW('G', 2, struct gsm_netconfig)
|
||||
#define GSMIOC_DISABLE_NET _IO('G', 3)
|
||||
|
||||
|
||||
#endif
|
||||
@@ -75,6 +75,15 @@ struct cs_buffer_config {
|
||||
__u32 reserved[4];
|
||||
};
|
||||
|
||||
/*
|
||||
* struct for monotonic timestamp taken when the
|
||||
* last control command was received
|
||||
*/
|
||||
struct cs_timestamp {
|
||||
__u32 tv_sec; /* seconds */
|
||||
__u32 tv_nsec; /* nanoseconds */
|
||||
};
|
||||
|
||||
/*
|
||||
* Struct describing the layout and contents of the driver mmap area.
|
||||
* This information is meant as read-only information for the application.
|
||||
@@ -91,11 +100,8 @@ struct cs_mmap_config_block {
|
||||
__u32 rx_ptr;
|
||||
__u32 rx_ptr_boundary;
|
||||
__u32 reserved3[2];
|
||||
/*
|
||||
* if enabled with CS_FEAT_TSTAMP_RX_CTRL, monotonic
|
||||
* timestamp taken when the last control command was received
|
||||
*/
|
||||
struct timespec tstamp_rx_ctrl;
|
||||
/* enabled with CS_FEAT_TSTAMP_RX_CTRL */
|
||||
struct cs_timestamp tstamp_rx_ctrl;
|
||||
};
|
||||
|
||||
#define CS_IO_MAGIC 'C'
|
||||
|
||||
@@ -45,6 +45,11 @@
|
||||
|
||||
#define VSS_OP_REGISTER 128
|
||||
|
||||
/*
|
||||
Daemon code with full handshake support.
|
||||
*/
|
||||
#define VSS_OP_REGISTER1 129
|
||||
|
||||
enum hv_vss_op {
|
||||
VSS_OP_CREATE = 0,
|
||||
VSS_OP_DELETE,
|
||||
@@ -100,7 +105,8 @@ struct hv_vss_msg {
|
||||
*/
|
||||
|
||||
#define FCOPY_VERSION_0 0
|
||||
#define FCOPY_CURRENT_VERSION FCOPY_VERSION_0
|
||||
#define FCOPY_VERSION_1 1
|
||||
#define FCOPY_CURRENT_VERSION FCOPY_VERSION_1
|
||||
#define W_MAX_PATH 260
|
||||
|
||||
enum hv_fcopy_op {
|
||||
|
||||
@@ -87,6 +87,7 @@ struct i2c_msg {
|
||||
#define I2C_FUNC_PROTOCOL_MANGLING 0x00000004 /* I2C_M_IGNORE_NAK etc. */
|
||||
#define I2C_FUNC_SMBUS_PEC 0x00000008
|
||||
#define I2C_FUNC_NOSTART 0x00000010 /* I2C_M_NOSTART */
|
||||
#define I2C_FUNC_SLAVE 0x00000020
|
||||
#define I2C_FUNC_SMBUS_BLOCK_PROC_CALL 0x00008000 /* SMBus 2.0 */
|
||||
#define I2C_FUNC_SMBUS_QUICK 0x00010000
|
||||
#define I2C_FUNC_SMBUS_READ_BYTE 0x00020000
|
||||
|
||||
@@ -390,6 +390,17 @@ struct ifla_vxlan_port_range {
|
||||
__be16 high;
|
||||
};
|
||||
|
||||
/* GENEVE section */
|
||||
enum {
|
||||
IFLA_GENEVE_UNSPEC,
|
||||
IFLA_GENEVE_ID,
|
||||
IFLA_GENEVE_REMOTE,
|
||||
IFLA_GENEVE_TTL,
|
||||
IFLA_GENEVE_TOS,
|
||||
__IFLA_GENEVE_MAX
|
||||
};
|
||||
#define IFLA_GENEVE_MAX (__IFLA_GENEVE_MAX - 1)
|
||||
|
||||
/* Bonding section */
|
||||
|
||||
enum {
|
||||
@@ -417,6 +428,9 @@ enum {
|
||||
IFLA_BOND_AD_LACP_RATE,
|
||||
IFLA_BOND_AD_SELECT,
|
||||
IFLA_BOND_AD_INFO,
|
||||
IFLA_BOND_AD_ACTOR_SYS_PRIO,
|
||||
IFLA_BOND_AD_USER_PORT_KEY,
|
||||
IFLA_BOND_AD_ACTOR_SYSTEM,
|
||||
__IFLA_BOND_MAX,
|
||||
};
|
||||
|
||||
@@ -442,6 +456,8 @@ enum {
|
||||
IFLA_BOND_SLAVE_PERM_HWADDR,
|
||||
IFLA_BOND_SLAVE_QUEUE_ID,
|
||||
IFLA_BOND_SLAVE_AD_AGGREGATOR_ID,
|
||||
IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE,
|
||||
IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE,
|
||||
__IFLA_BOND_SLAVE_MAX,
|
||||
};
|
||||
|
||||
@@ -468,6 +484,7 @@ enum {
|
||||
IFLA_VF_RSS_QUERY_EN, /* RSS Redirection Table and Hash Key query
|
||||
* on/off switch
|
||||
*/
|
||||
IFLA_VF_STATS, /* network device statistics */
|
||||
__IFLA_VF_MAX,
|
||||
};
|
||||
|
||||
@@ -517,6 +534,18 @@ struct ifla_vf_rss_query_en {
|
||||
__u32 setting;
|
||||
};
|
||||
|
||||
enum {
|
||||
IFLA_VF_STATS_RX_PACKETS,
|
||||
IFLA_VF_STATS_TX_PACKETS,
|
||||
IFLA_VF_STATS_RX_BYTES,
|
||||
IFLA_VF_STATS_TX_BYTES,
|
||||
IFLA_VF_STATS_BROADCAST,
|
||||
IFLA_VF_STATS_MULTICAST,
|
||||
__IFLA_VF_STATS_MAX,
|
||||
};
|
||||
|
||||
#define IFLA_VF_STATS_MAX (__IFLA_VF_STATS_MAX - 1)
|
||||
|
||||
/* VF ports management section
|
||||
*
|
||||
* Nested layout of set/get msg is:
|
||||
|
||||
@@ -54,6 +54,7 @@ struct sockaddr_ll {
|
||||
#define PACKET_FANOUT 18
|
||||
#define PACKET_TX_HAS_OFF 19
|
||||
#define PACKET_QDISC_BYPASS 20
|
||||
#define PACKET_ROLLOVER_STATS 21
|
||||
|
||||
#define PACKET_FANOUT_HASH 0
|
||||
#define PACKET_FANOUT_LB 1
|
||||
@@ -75,6 +76,12 @@ struct tpacket_stats_v3 {
|
||||
unsigned int tp_freeze_q_cnt;
|
||||
};
|
||||
|
||||
struct tpacket_rollover_stats {
|
||||
__aligned_u64 tp_all;
|
||||
__aligned_u64 tp_huge;
|
||||
__aligned_u64 tp_failed;
|
||||
};
|
||||
|
||||
union tpacket_stats_u {
|
||||
struct tpacket_stats stats1;
|
||||
struct tpacket_stats_v3 stats3;
|
||||
|
||||
@@ -50,6 +50,12 @@
|
||||
#define TUNGETFILTER _IOR('T', 219, struct sock_fprog)
|
||||
#define TUNSETVNETLE _IOW('T', 220, int)
|
||||
#define TUNGETVNETLE _IOR('T', 221, int)
|
||||
/* The TUNSETVNETBE and TUNGETVNETBE ioctls are for cross-endian support on
|
||||
* little-endian hosts. Not all kernel configurations support them, but all
|
||||
* configurations that support SET also support GET.
|
||||
*/
|
||||
#define TUNSETVNETBE _IOW('T', 222, int)
|
||||
#define TUNGETVNETBE _IOR('T', 223, int)
|
||||
|
||||
/* TUNSETIFF ifr flags */
|
||||
#define IFF_TUN 0x0001
|
||||
|
||||
@@ -70,6 +70,8 @@ enum iio_modifier {
|
||||
IIO_MOD_WALKING,
|
||||
IIO_MOD_STILL,
|
||||
IIO_MOD_ROOT_SUM_SQUARED_X_Y_Z,
|
||||
IIO_MOD_I,
|
||||
IIO_MOD_Q,
|
||||
};
|
||||
|
||||
enum iio_event_type {
|
||||
|
||||
+16
-3
@@ -19,8 +19,10 @@
|
||||
#define _UAPI_LINUX_IN_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/libc-compat.h>
|
||||
#include <linux/socket.h>
|
||||
|
||||
#if __UAPI_DEF_IN_IPPROTO
|
||||
/* Standard well-defined IP protocols. */
|
||||
enum {
|
||||
IPPROTO_IP = 0, /* Dummy protocol for TCP */
|
||||
@@ -69,16 +71,20 @@ enum {
|
||||
#define IPPROTO_SCTP IPPROTO_SCTP
|
||||
IPPROTO_UDPLITE = 136, /* UDP-Lite (RFC 3828) */
|
||||
#define IPPROTO_UDPLITE IPPROTO_UDPLITE
|
||||
IPPROTO_MPLS = 137, /* MPLS in IP (RFC 4023) */
|
||||
#define IPPROTO_MPLS IPPROTO_MPLS
|
||||
IPPROTO_RAW = 255, /* Raw IP packets */
|
||||
#define IPPROTO_RAW IPPROTO_RAW
|
||||
IPPROTO_MAX
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
#if __UAPI_DEF_IN_ADDR
|
||||
/* Internet address. */
|
||||
struct in_addr {
|
||||
__be32 s_addr;
|
||||
};
|
||||
#endif
|
||||
|
||||
#define IP_TOS 1
|
||||
#define IP_TTL 2
|
||||
@@ -110,6 +116,7 @@ struct in_addr {
|
||||
#define IP_MINTTL 21
|
||||
#define IP_NODEFRAG 22
|
||||
#define IP_CHECKSUM 23
|
||||
#define IP_BIND_ADDRESS_NO_PORT 24
|
||||
|
||||
/* IP_MTU_DISCOVER values */
|
||||
#define IP_PMTUDISC_DONT 0 /* Never send DF frames */
|
||||
@@ -155,6 +162,7 @@ struct in_addr {
|
||||
|
||||
/* Request struct for multicast socket ops */
|
||||
|
||||
#if __UAPI_DEF_IP_MREQ
|
||||
struct ip_mreq {
|
||||
struct in_addr imr_multiaddr; /* IP multicast address of group */
|
||||
struct in_addr imr_interface; /* local IP address of interface */
|
||||
@@ -206,14 +214,18 @@ struct group_filter {
|
||||
#define GROUP_FILTER_SIZE(numsrc) \
|
||||
(sizeof(struct group_filter) - sizeof(struct __kernel_sockaddr_storage) \
|
||||
+ (numsrc) * sizeof(struct __kernel_sockaddr_storage))
|
||||
#endif
|
||||
|
||||
#if __UAPI_DEF_IN_PKTINFO
|
||||
struct in_pktinfo {
|
||||
int ipi_ifindex;
|
||||
struct in_addr ipi_spec_dst;
|
||||
struct in_addr ipi_addr;
|
||||
};
|
||||
#endif
|
||||
|
||||
/* Structure describing an Internet (IP) socket address. */
|
||||
#if __UAPI_DEF_SOCKADDR_IN
|
||||
#define __SOCK_SIZE__ 16 /* sizeof(struct sockaddr) */
|
||||
struct sockaddr_in {
|
||||
__kernel_sa_family_t sin_family; /* Address family */
|
||||
@@ -225,8 +237,9 @@ struct sockaddr_in {
|
||||
sizeof(unsigned short int) - sizeof(struct in_addr)];
|
||||
};
|
||||
#define sin_zero __pad /* for BSD UNIX comp. -FvK */
|
||||
#endif
|
||||
|
||||
|
||||
#if __UAPI_DEF_IN_CLASS
|
||||
/*
|
||||
* Definitions of the bits in an Internet address integer.
|
||||
* On subnets, host and network parts are found according
|
||||
@@ -277,7 +290,7 @@ struct sockaddr_in {
|
||||
#define INADDR_ALLHOSTS_GROUP 0xe0000001U /* 224.0.0.1 */
|
||||
#define INADDR_ALLRTRS_GROUP 0xe0000002U /* 224.0.0.2 */
|
||||
#define INADDR_MAX_LOCAL_GROUP 0xe00000ffU /* 224.0.0.255 */
|
||||
|
||||
#endif
|
||||
|
||||
/* <asm/byteorder.h> contains the htonl type stuff.. */
|
||||
#include <asm/byteorder.h>
|
||||
|
||||
@@ -111,9 +111,11 @@ enum {
|
||||
INET_DIAG_SKMEMINFO,
|
||||
INET_DIAG_SHUTDOWN,
|
||||
INET_DIAG_DCTCPINFO,
|
||||
INET_DIAG_PROTOCOL, /* response attribute only */
|
||||
INET_DIAG_SKV6ONLY,
|
||||
};
|
||||
|
||||
#define INET_DIAG_MAX INET_DIAG_DCTCPINFO
|
||||
#define INET_DIAG_MAX INET_DIAG_SKV6ONLY
|
||||
|
||||
/* INET_DIAG_MEM */
|
||||
|
||||
|
||||
@@ -164,6 +164,7 @@ enum
|
||||
IPV4_DEVCONF_ROUTE_LOCALNET,
|
||||
IPV4_DEVCONF_IGMPV2_UNSOLICITED_REPORT_INTERVAL,
|
||||
IPV4_DEVCONF_IGMPV3_UNSOLICITED_REPORT_INTERVAL,
|
||||
IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN,
|
||||
__IPV4_DEVCONF_MAX
|
||||
};
|
||||
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
#define RTF_PREF(pref) ((pref) << 27)
|
||||
#define RTF_PREF_MASK 0x18000000
|
||||
|
||||
#define RTF_PCPU 0x40000000
|
||||
#define RTF_LOCAL 0x80000000
|
||||
|
||||
|
||||
|
||||
@@ -202,7 +202,7 @@ struct kvm_run {
|
||||
__u32 exit_reason;
|
||||
__u8 ready_for_interrupt_injection;
|
||||
__u8 if_flag;
|
||||
__u8 padding2[2];
|
||||
__u16 flags;
|
||||
|
||||
/* in (pre_kvm_run), out (post_kvm_run) */
|
||||
__u64 cr8;
|
||||
@@ -814,6 +814,9 @@ struct kvm_ppc_smmu_info {
|
||||
#define KVM_CAP_S390_INJECT_IRQ 113
|
||||
#define KVM_CAP_S390_IRQ_STATE 114
|
||||
#define KVM_CAP_PPC_HWRNG 115
|
||||
#define KVM_CAP_DISABLE_QUIRKS 116
|
||||
#define KVM_CAP_X86_SMM 117
|
||||
#define KVM_CAP_MULTI_ADDRESS_SPACE 118
|
||||
|
||||
#ifdef KVM_CAP_IRQ_ROUTING
|
||||
|
||||
@@ -894,7 +897,7 @@ struct kvm_xen_hvm_config {
|
||||
*
|
||||
* KVM_IRQFD_FLAG_RESAMPLE indicates resamplefd is valid and specifies
|
||||
* the irqfd to operate in resampling mode for level triggered interrupt
|
||||
* emlation. See Documentation/virtual/kvm/api.txt.
|
||||
* emulation. See Documentation/virtual/kvm/api.txt.
|
||||
*/
|
||||
#define KVM_IRQFD_FLAG_RESAMPLE (1 << 1)
|
||||
|
||||
@@ -1199,6 +1202,8 @@ struct kvm_s390_ucas_mapping {
|
||||
/* Available with KVM_CAP_S390_IRQ_STATE */
|
||||
#define KVM_S390_SET_IRQ_STATE _IOW(KVMIO, 0xb5, struct kvm_s390_irq_state)
|
||||
#define KVM_S390_GET_IRQ_STATE _IOW(KVMIO, 0xb6, struct kvm_s390_irq_state)
|
||||
/* Available with KVM_CAP_X86_SMM */
|
||||
#define KVM_SMI _IO(KVMIO, 0xb7)
|
||||
|
||||
#define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0)
|
||||
#define KVM_DEV_ASSIGN_PCI_2_3 (1 << 1)
|
||||
|
||||
@@ -56,6 +56,13 @@
|
||||
|
||||
/* GLIBC headers included first so don't define anything
|
||||
* that would already be defined. */
|
||||
#define __UAPI_DEF_IN_ADDR 0
|
||||
#define __UAPI_DEF_IN_IPPROTO 0
|
||||
#define __UAPI_DEF_IN_PKTINFO 0
|
||||
#define __UAPI_DEF_IP_MREQ 0
|
||||
#define __UAPI_DEF_SOCKADDR_IN 0
|
||||
#define __UAPI_DEF_IN_CLASS 0
|
||||
|
||||
#define __UAPI_DEF_IN6_ADDR 0
|
||||
/* The exception is the in6_addr macros which must be defined
|
||||
* if the glibc code didn't define them. This guard matches
|
||||
@@ -78,6 +85,13 @@
|
||||
/* Linux headers included first, and we must define everything
|
||||
* we need. The expectation is that glibc will check the
|
||||
* __UAPI_DEF_* defines and adjust appropriately. */
|
||||
#define __UAPI_DEF_IN_ADDR 1
|
||||
#define __UAPI_DEF_IN_IPPROTO 1
|
||||
#define __UAPI_DEF_IN_PKTINFO 1
|
||||
#define __UAPI_DEF_IP_MREQ 1
|
||||
#define __UAPI_DEF_SOCKADDR_IN 1
|
||||
#define __UAPI_DEF_IN_CLASS 1
|
||||
|
||||
#define __UAPI_DEF_IN6_ADDR 1
|
||||
/* We unconditionally define the in6_addr macros and glibc must
|
||||
* coordinate. */
|
||||
@@ -103,6 +117,14 @@
|
||||
* that we need. */
|
||||
#else /* !defined(__GLIBC__) */
|
||||
|
||||
/* Definitions for in.h */
|
||||
#define __UAPI_DEF_IN_ADDR 1
|
||||
#define __UAPI_DEF_IN_IPPROTO 1
|
||||
#define __UAPI_DEF_IN_PKTINFO 1
|
||||
#define __UAPI_DEF_IP_MREQ 1
|
||||
#define __UAPI_DEF_SOCKADDR_IN 1
|
||||
#define __UAPI_DEF_IN_CLASS 1
|
||||
|
||||
/* Definitions for in6.h */
|
||||
#define __UAPI_DEF_IN6_ADDR 1
|
||||
#define __UAPI_DEF_IN6_ADDR_ALT 1
|
||||
|
||||
@@ -80,6 +80,12 @@ struct mic_device_ctrl {
|
||||
* @h2c_config_db: Host to Card Virtio config doorbell set by card
|
||||
* @shutdown_status: Card shutdown status set by card
|
||||
* @shutdown_card: Set to 1 by the host when a card shutdown is initiated
|
||||
* @tot_nodes: Total number of nodes in the SCIF network
|
||||
* @node_id: Unique id of the node
|
||||
* @h2c_scif_db - Host to card SCIF doorbell set by card
|
||||
* @c2h_scif_db - Card to host SCIF doorbell set by host
|
||||
* @scif_host_dma_addr - SCIF host queue pair DMA address
|
||||
* @scif_card_dma_addr - SCIF card queue pair DMA address
|
||||
*/
|
||||
struct mic_bootparam {
|
||||
__le32 magic;
|
||||
@@ -88,6 +94,12 @@ struct mic_bootparam {
|
||||
__s8 h2c_config_db;
|
||||
__u8 shutdown_status;
|
||||
__u8 shutdown_card;
|
||||
__u8 tot_nodes;
|
||||
__u8 node_id;
|
||||
__u8 h2c_scif_db;
|
||||
__u8 c2h_scif_db;
|
||||
__u64 scif_host_dma_addr;
|
||||
__u64 scif_card_dma_addr;
|
||||
} __attribute__ ((aligned(8)));
|
||||
|
||||
/**
|
||||
|
||||
@@ -44,8 +44,6 @@ enum {
|
||||
/* there is a gap here to match userspace */
|
||||
#define NBD_FLAG_SEND_TRIM (1 << 5) /* send trim/discard */
|
||||
|
||||
#define nbd_cmd(req) ((req)->cmd[0])
|
||||
|
||||
/* userspace doesn't need the nbd_device structure */
|
||||
|
||||
/* These are sent over the network in the request/reply magic fields */
|
||||
|
||||
@@ -0,0 +1,197 @@
|
||||
/*
|
||||
* Copyright (c) 2014-2015, Intel Corporation.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms and conditions of the GNU Lesser General Public License,
|
||||
* version 2.1, 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 Lesser General Public License for
|
||||
* more details.
|
||||
*/
|
||||
#ifndef __NDCTL_H__
|
||||
#define __NDCTL_H__
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
struct nd_cmd_smart {
|
||||
__u32 status;
|
||||
__u8 data[128];
|
||||
} __packed;
|
||||
|
||||
struct nd_cmd_smart_threshold {
|
||||
__u32 status;
|
||||
__u8 data[8];
|
||||
} __packed;
|
||||
|
||||
struct nd_cmd_dimm_flags {
|
||||
__u32 status;
|
||||
__u32 flags;
|
||||
} __packed;
|
||||
|
||||
struct nd_cmd_get_config_size {
|
||||
__u32 status;
|
||||
__u32 config_size;
|
||||
__u32 max_xfer;
|
||||
} __packed;
|
||||
|
||||
struct nd_cmd_get_config_data_hdr {
|
||||
__u32 in_offset;
|
||||
__u32 in_length;
|
||||
__u32 status;
|
||||
__u8 out_buf[0];
|
||||
} __packed;
|
||||
|
||||
struct nd_cmd_set_config_hdr {
|
||||
__u32 in_offset;
|
||||
__u32 in_length;
|
||||
__u8 in_buf[0];
|
||||
} __packed;
|
||||
|
||||
struct nd_cmd_vendor_hdr {
|
||||
__u32 opcode;
|
||||
__u32 in_length;
|
||||
__u8 in_buf[0];
|
||||
} __packed;
|
||||
|
||||
struct nd_cmd_vendor_tail {
|
||||
__u32 status;
|
||||
__u32 out_length;
|
||||
__u8 out_buf[0];
|
||||
} __packed;
|
||||
|
||||
struct nd_cmd_ars_cap {
|
||||
__u64 address;
|
||||
__u64 length;
|
||||
__u32 status;
|
||||
__u32 max_ars_out;
|
||||
} __packed;
|
||||
|
||||
struct nd_cmd_ars_start {
|
||||
__u64 address;
|
||||
__u64 length;
|
||||
__u16 type;
|
||||
__u8 reserved[6];
|
||||
__u32 status;
|
||||
} __packed;
|
||||
|
||||
struct nd_cmd_ars_status {
|
||||
__u32 status;
|
||||
__u32 out_length;
|
||||
__u64 address;
|
||||
__u64 length;
|
||||
__u16 type;
|
||||
__u32 num_records;
|
||||
struct nd_ars_record {
|
||||
__u32 handle;
|
||||
__u32 flags;
|
||||
__u64 err_address;
|
||||
__u64 mask;
|
||||
} __packed records[0];
|
||||
} __packed;
|
||||
|
||||
enum {
|
||||
ND_CMD_IMPLEMENTED = 0,
|
||||
|
||||
/* bus commands */
|
||||
ND_CMD_ARS_CAP = 1,
|
||||
ND_CMD_ARS_START = 2,
|
||||
ND_CMD_ARS_STATUS = 3,
|
||||
|
||||
/* per-dimm commands */
|
||||
ND_CMD_SMART = 1,
|
||||
ND_CMD_SMART_THRESHOLD = 2,
|
||||
ND_CMD_DIMM_FLAGS = 3,
|
||||
ND_CMD_GET_CONFIG_SIZE = 4,
|
||||
ND_CMD_GET_CONFIG_DATA = 5,
|
||||
ND_CMD_SET_CONFIG_DATA = 6,
|
||||
ND_CMD_VENDOR_EFFECT_LOG_SIZE = 7,
|
||||
ND_CMD_VENDOR_EFFECT_LOG = 8,
|
||||
ND_CMD_VENDOR = 9,
|
||||
};
|
||||
|
||||
static inline const char *nvdimm_bus_cmd_name(unsigned cmd)
|
||||
{
|
||||
static const char * const names[] = {
|
||||
[ND_CMD_ARS_CAP] = "ars_cap",
|
||||
[ND_CMD_ARS_START] = "ars_start",
|
||||
[ND_CMD_ARS_STATUS] = "ars_status",
|
||||
};
|
||||
|
||||
if (cmd < ARRAY_SIZE(names) && names[cmd])
|
||||
return names[cmd];
|
||||
return "unknown";
|
||||
}
|
||||
|
||||
static inline const char *nvdimm_cmd_name(unsigned cmd)
|
||||
{
|
||||
static const char * const names[] = {
|
||||
[ND_CMD_SMART] = "smart",
|
||||
[ND_CMD_SMART_THRESHOLD] = "smart_thresh",
|
||||
[ND_CMD_DIMM_FLAGS] = "flags",
|
||||
[ND_CMD_GET_CONFIG_SIZE] = "get_size",
|
||||
[ND_CMD_GET_CONFIG_DATA] = "get_data",
|
||||
[ND_CMD_SET_CONFIG_DATA] = "set_data",
|
||||
[ND_CMD_VENDOR_EFFECT_LOG_SIZE] = "effect_size",
|
||||
[ND_CMD_VENDOR_EFFECT_LOG] = "effect_log",
|
||||
[ND_CMD_VENDOR] = "vendor",
|
||||
};
|
||||
|
||||
if (cmd < ARRAY_SIZE(names) && names[cmd])
|
||||
return names[cmd];
|
||||
return "unknown";
|
||||
}
|
||||
|
||||
#define ND_IOCTL 'N'
|
||||
|
||||
#define ND_IOCTL_SMART _IOWR(ND_IOCTL, ND_CMD_SMART,\
|
||||
struct nd_cmd_smart)
|
||||
|
||||
#define ND_IOCTL_SMART_THRESHOLD _IOWR(ND_IOCTL, ND_CMD_SMART_THRESHOLD,\
|
||||
struct nd_cmd_smart_threshold)
|
||||
|
||||
#define ND_IOCTL_DIMM_FLAGS _IOWR(ND_IOCTL, ND_CMD_DIMM_FLAGS,\
|
||||
struct nd_cmd_dimm_flags)
|
||||
|
||||
#define ND_IOCTL_GET_CONFIG_SIZE _IOWR(ND_IOCTL, ND_CMD_GET_CONFIG_SIZE,\
|
||||
struct nd_cmd_get_config_size)
|
||||
|
||||
#define ND_IOCTL_GET_CONFIG_DATA _IOWR(ND_IOCTL, ND_CMD_GET_CONFIG_DATA,\
|
||||
struct nd_cmd_get_config_data_hdr)
|
||||
|
||||
#define ND_IOCTL_SET_CONFIG_DATA _IOWR(ND_IOCTL, ND_CMD_SET_CONFIG_DATA,\
|
||||
struct nd_cmd_set_config_hdr)
|
||||
|
||||
#define ND_IOCTL_VENDOR _IOWR(ND_IOCTL, ND_CMD_VENDOR,\
|
||||
struct nd_cmd_vendor_hdr)
|
||||
|
||||
#define ND_IOCTL_ARS_CAP _IOWR(ND_IOCTL, ND_CMD_ARS_CAP,\
|
||||
struct nd_cmd_ars_cap)
|
||||
|
||||
#define ND_IOCTL_ARS_START _IOWR(ND_IOCTL, ND_CMD_ARS_START,\
|
||||
struct nd_cmd_ars_start)
|
||||
|
||||
#define ND_IOCTL_ARS_STATUS _IOWR(ND_IOCTL, ND_CMD_ARS_STATUS,\
|
||||
struct nd_cmd_ars_status)
|
||||
|
||||
#define ND_DEVICE_DIMM 1 /* nd_dimm: container for "config data" */
|
||||
#define ND_DEVICE_REGION_PMEM 2 /* nd_region: (parent of PMEM namespaces) */
|
||||
#define ND_DEVICE_REGION_BLK 3 /* nd_region: (parent of BLK namespaces) */
|
||||
#define ND_DEVICE_NAMESPACE_IO 4 /* legacy persistent memory */
|
||||
#define ND_DEVICE_NAMESPACE_PMEM 5 /* PMEM namespace (may alias with BLK) */
|
||||
#define ND_DEVICE_NAMESPACE_BLK 6 /* BLK namespace (may alias with PMEM) */
|
||||
|
||||
enum nd_driver_flags {
|
||||
ND_DRIVER_DIMM = 1 << ND_DEVICE_DIMM,
|
||||
ND_DRIVER_REGION_PMEM = 1 << ND_DEVICE_REGION_PMEM,
|
||||
ND_DRIVER_REGION_BLK = 1 << ND_DEVICE_REGION_BLK,
|
||||
ND_DRIVER_NAMESPACE_IO = 1 << ND_DEVICE_NAMESPACE_IO,
|
||||
ND_DRIVER_NAMESPACE_PMEM = 1 << ND_DEVICE_NAMESPACE_PMEM,
|
||||
ND_DRIVER_NAMESPACE_BLK = 1 << ND_DEVICE_NAMESPACE_BLK,
|
||||
};
|
||||
|
||||
enum {
|
||||
ND_MIN_NAMESPACE_SIZE = 0x00400000,
|
||||
};
|
||||
#endif /* __NDCTL_H__ */
|
||||
@@ -4,7 +4,8 @@
|
||||
#include <linux/types.h>
|
||||
#include <linux/compiler.h>
|
||||
#include <linux/sysctl.h>
|
||||
|
||||
#include <linux/in.h>
|
||||
#include <linux/in6.h>
|
||||
|
||||
/* Responses from hook functions. */
|
||||
#define NF_DROP 0
|
||||
@@ -51,11 +52,17 @@ enum nf_inet_hooks {
|
||||
NF_INET_NUMHOOKS
|
||||
};
|
||||
|
||||
enum nf_dev_hooks {
|
||||
NF_NETDEV_INGRESS,
|
||||
NF_NETDEV_NUMHOOKS
|
||||
};
|
||||
|
||||
enum {
|
||||
NFPROTO_UNSPEC = 0,
|
||||
NFPROTO_INET = 1,
|
||||
NFPROTO_IPV4 = 2,
|
||||
NFPROTO_ARP = 3,
|
||||
NFPROTO_NETDEV = 5,
|
||||
NFPROTO_BRIDGE = 7,
|
||||
NFPROTO_IPV6 = 10,
|
||||
NFPROTO_DECNET = 12,
|
||||
|
||||
@@ -15,12 +15,12 @@
|
||||
/* The protocol version */
|
||||
#define IPSET_PROTOCOL 6
|
||||
|
||||
/* The maximum permissible comment length we will accept over netlink */
|
||||
#define IPSET_MAX_COMMENT_SIZE 255
|
||||
|
||||
/* The max length of strings including NUL: set and type identifiers */
|
||||
#define IPSET_MAXNAMELEN 32
|
||||
|
||||
/* The maximum permissible comment length we will accept over netlink */
|
||||
#define IPSET_MAX_COMMENT_SIZE 255
|
||||
|
||||
/* Message types and commands */
|
||||
enum ipset_cmd {
|
||||
IPSET_CMD_NONE,
|
||||
|
||||
@@ -122,11 +122,13 @@ enum nft_list_attributes {
|
||||
*
|
||||
* @NFTA_HOOK_HOOKNUM: netfilter hook number (NLA_U32)
|
||||
* @NFTA_HOOK_PRIORITY: netfilter hook priority (NLA_U32)
|
||||
* @NFTA_HOOK_DEV: netdevice name (NLA_STRING)
|
||||
*/
|
||||
enum nft_hook_attributes {
|
||||
NFTA_HOOK_UNSPEC,
|
||||
NFTA_HOOK_HOOKNUM,
|
||||
NFTA_HOOK_PRIORITY,
|
||||
NFTA_HOOK_DEV,
|
||||
__NFTA_HOOK_MAX
|
||||
};
|
||||
#define NFTA_HOOK_MAX (__NFTA_HOOK_MAX - 1)
|
||||
|
||||
@@ -49,6 +49,7 @@ enum nfqnl_attr_type {
|
||||
NFQA_EXP, /* nf_conntrack_netlink.h */
|
||||
NFQA_UID, /* __u32 sk uid */
|
||||
NFQA_GID, /* __u32 sk gid */
|
||||
NFQA_SECCTX, /* security context string */
|
||||
|
||||
__NFQA_MAX
|
||||
};
|
||||
@@ -102,7 +103,8 @@ enum nfqnl_attr_config {
|
||||
#define NFQA_CFG_F_CONNTRACK (1 << 1)
|
||||
#define NFQA_CFG_F_GSO (1 << 2)
|
||||
#define NFQA_CFG_F_UID_GID (1 << 3)
|
||||
#define NFQA_CFG_F_MAX (1 << 4)
|
||||
#define NFQA_CFG_F_SECCTX (1 << 4)
|
||||
#define NFQA_CFG_F_MAX (1 << 5)
|
||||
|
||||
/* flags for NFQA_SKB_INFO */
|
||||
/* packet appears to have wrong checksums, but they are ok */
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
enum {
|
||||
XT_SOCKET_TRANSPARENT = 1 << 0,
|
||||
XT_SOCKET_NOWILDCARD = 1 << 1,
|
||||
XT_SOCKET_RESTORESKMARK = 1 << 2,
|
||||
};
|
||||
|
||||
struct xt_socket_mtinfo1 {
|
||||
@@ -18,4 +19,11 @@ struct xt_socket_mtinfo2 {
|
||||
};
|
||||
#define XT_SOCKET_FLAGS_V2 (XT_SOCKET_TRANSPARENT | XT_SOCKET_NOWILDCARD)
|
||||
|
||||
struct xt_socket_mtinfo3 {
|
||||
__u8 flags;
|
||||
};
|
||||
#define XT_SOCKET_FLAGS_V3 (XT_SOCKET_TRANSPARENT \
|
||||
| XT_SOCKET_NOWILDCARD \
|
||||
| XT_SOCKET_RESTORESKMARK)
|
||||
|
||||
#endif /* _XT_SOCKET_H */
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*
|
||||
* ebtables.c,v 2.0, April, 2002
|
||||
*
|
||||
* This code is stongly inspired on the iptables code which is
|
||||
* This code is strongly inspired by the iptables code which is
|
||||
* Copyright (C) 1999 Paul `Rusty' Russell & Michael J. Neuling
|
||||
*/
|
||||
|
||||
|
||||
@@ -101,13 +101,15 @@ struct nlmsgerr {
|
||||
struct nlmsghdr msg;
|
||||
};
|
||||
|
||||
#define NETLINK_ADD_MEMBERSHIP 1
|
||||
#define NETLINK_DROP_MEMBERSHIP 2
|
||||
#define NETLINK_PKTINFO 3
|
||||
#define NETLINK_BROADCAST_ERROR 4
|
||||
#define NETLINK_NO_ENOBUFS 5
|
||||
#define NETLINK_RX_RING 6
|
||||
#define NETLINK_TX_RING 7
|
||||
#define NETLINK_ADD_MEMBERSHIP 1
|
||||
#define NETLINK_DROP_MEMBERSHIP 2
|
||||
#define NETLINK_PKTINFO 3
|
||||
#define NETLINK_BROADCAST_ERROR 4
|
||||
#define NETLINK_NO_ENOBUFS 5
|
||||
#define NETLINK_RX_RING 6
|
||||
#define NETLINK_TX_RING 7
|
||||
#define NETLINK_LISTEN_ALL_NSID 8
|
||||
#define NETLINK_LIST_MEMBERSHIPS 9
|
||||
|
||||
struct nl_pktinfo {
|
||||
__u32 group;
|
||||
|
||||
@@ -86,6 +86,8 @@
|
||||
* for this event is the application ID (AID).
|
||||
* @NFC_CMD_GET_SE: Dump all discovered secure elements from an NFC controller.
|
||||
* @NFC_CMD_SE_IO: Send/Receive APDUs to/from the selected secure element.
|
||||
* @NFC_CMD_VENDOR: Vendor specific command, to be implemented directly
|
||||
* from the driver in order to support hardware specific operations.
|
||||
*/
|
||||
enum nfc_commands {
|
||||
NFC_CMD_UNSPEC,
|
||||
@@ -117,6 +119,7 @@ enum nfc_commands {
|
||||
NFC_CMD_GET_SE,
|
||||
NFC_CMD_SE_IO,
|
||||
NFC_CMD_ACTIVATE_TARGET,
|
||||
NFC_CMD_VENDOR,
|
||||
/* private: internal use only */
|
||||
__NFC_CMD_AFTER_LAST
|
||||
};
|
||||
@@ -153,6 +156,10 @@ enum nfc_commands {
|
||||
* @NFC_ATTR_APDU: Secure element APDU
|
||||
* @NFC_ATTR_TARGET_ISO15693_DSFID: ISO 15693 Data Storage Format Identifier
|
||||
* @NFC_ATTR_TARGET_ISO15693_UID: ISO 15693 Unique Identifier
|
||||
* @NFC_ATTR_VENDOR_ID: NFC manufacturer unique ID, typically an OUI
|
||||
* @NFC_ATTR_VENDOR_SUBCMD: Vendor specific sub command
|
||||
* @NFC_ATTR_VENDOR_DATA: Vendor specific data, to be optionally passed
|
||||
* to a vendor specific command implementation
|
||||
*/
|
||||
enum nfc_attrs {
|
||||
NFC_ATTR_UNSPEC,
|
||||
@@ -184,6 +191,9 @@ enum nfc_attrs {
|
||||
NFC_ATTR_TARGET_ISO15693_DSFID,
|
||||
NFC_ATTR_TARGET_ISO15693_UID,
|
||||
NFC_ATTR_SE_PARAMS,
|
||||
NFC_ATTR_VENDOR_ID,
|
||||
NFC_ATTR_VENDOR_SUBCMD,
|
||||
NFC_ATTR_VENDOR_DATA,
|
||||
/* private: internal use only */
|
||||
__NFC_ATTR_AFTER_LAST
|
||||
};
|
||||
|
||||
@@ -86,6 +86,10 @@
|
||||
#define ACL4_SUPPORT_AUDIT_ACL 0x04
|
||||
#define ACL4_SUPPORT_ALARM_ACL 0x08
|
||||
|
||||
#define NFS4_ACL_AUTO_INHERIT 0x00000001
|
||||
#define NFS4_ACL_PROTECTED 0x00000002
|
||||
#define NFS4_ACL_DEFAULTED 0x00000004
|
||||
|
||||
#define NFS4_ACE_FILE_INHERIT_ACE 0x00000001
|
||||
#define NFS4_ACE_DIRECTORY_INHERIT_ACE 0x00000002
|
||||
#define NFS4_ACE_NO_PROPAGATE_INHERIT_ACE 0x00000004
|
||||
@@ -93,6 +97,7 @@
|
||||
#define NFS4_ACE_SUCCESSFUL_ACCESS_ACE_FLAG 0x00000010
|
||||
#define NFS4_ACE_FAILED_ACCESS_ACE_FLAG 0x00000020
|
||||
#define NFS4_ACE_IDENTIFIER_GROUP 0x00000040
|
||||
#define NFS4_ACE_INHERITED_ACE 0x00000080
|
||||
|
||||
#define NFS4_ACE_READ_DATA 0x00000001
|
||||
#define NFS4_ACE_LIST_DIRECTORY 0x00000001
|
||||
@@ -106,6 +111,8 @@
|
||||
#define NFS4_ACE_DELETE_CHILD 0x00000040
|
||||
#define NFS4_ACE_READ_ATTRIBUTES 0x00000080
|
||||
#define NFS4_ACE_WRITE_ATTRIBUTES 0x00000100
|
||||
#define NFS4_ACE_WRITE_RETENTION 0x00000200
|
||||
#define NFS4_ACE_WRITE_RETENTION_HOLD 0x00000400
|
||||
#define NFS4_ACE_DELETE 0x00010000
|
||||
#define NFS4_ACE_READ_ACL 0x00020000
|
||||
#define NFS4_ACE_WRITE_ACL 0x00040000
|
||||
|
||||
@@ -2620,16 +2620,17 @@ enum nl80211_band_attr {
|
||||
* an indoor surroundings, i.e., it is connected to AC power (and not
|
||||
* through portable DC inverters) or is under the control of a master
|
||||
* that is acting as an AP and is connected to AC power.
|
||||
* @NL80211_FREQUENCY_ATTR_GO_CONCURRENT: GO operation is allowed on this
|
||||
* @NL80211_FREQUENCY_ATTR_IR_CONCURRENT: IR operation is allowed on this
|
||||
* channel if it's connected concurrently to a BSS on the same channel on
|
||||
* the 2 GHz band or to a channel in the same UNII band (on the 5 GHz
|
||||
* band), and IEEE80211_CHAN_RADAR is not set. Instantiating a GO on a
|
||||
* channel that has the GO_CONCURRENT attribute set can be done when there
|
||||
* is a clear assessment that the device is operating under the guidance of
|
||||
* an authorized master, i.e., setting up a GO while the device is also
|
||||
* connected to an AP with DFS and radar detection on the UNII band (it is
|
||||
* up to user-space, i.e., wpa_supplicant to perform the required
|
||||
* verifications)
|
||||
* band), and IEEE80211_CHAN_RADAR is not set. Instantiating a GO or TDLS
|
||||
* off-channel on a channel that has the IR_CONCURRENT attribute set can be
|
||||
* done when there is a clear assessment that the device is operating under
|
||||
* the guidance of an authorized master, i.e., setting up a GO or TDLS
|
||||
* off-channel while the device is also connected to an AP with DFS and
|
||||
* radar detection on the UNII band (it is up to user-space, i.e.,
|
||||
* wpa_supplicant to perform the required verifications). Using this
|
||||
* attribute for IR is disallowed for master interfaces (IBSS, AP).
|
||||
* @NL80211_FREQUENCY_ATTR_NO_20MHZ: 20 MHz operation is not allowed
|
||||
* on this channel in current regulatory domain.
|
||||
* @NL80211_FREQUENCY_ATTR_NO_10MHZ: 10 MHz operation is not allowed
|
||||
@@ -2641,7 +2642,7 @@ enum nl80211_band_attr {
|
||||
* See https://apps.fcc.gov/eas/comments/GetPublishedDocument.html?id=327&tn=528122
|
||||
* for more information on the FCC description of the relaxations allowed
|
||||
* by NL80211_FREQUENCY_ATTR_INDOOR_ONLY and
|
||||
* NL80211_FREQUENCY_ATTR_GO_CONCURRENT.
|
||||
* NL80211_FREQUENCY_ATTR_IR_CONCURRENT.
|
||||
*/
|
||||
enum nl80211_frequency_attr {
|
||||
__NL80211_FREQUENCY_ATTR_INVALID,
|
||||
@@ -2659,7 +2660,7 @@ enum nl80211_frequency_attr {
|
||||
NL80211_FREQUENCY_ATTR_NO_160MHZ,
|
||||
NL80211_FREQUENCY_ATTR_DFS_CAC_TIME,
|
||||
NL80211_FREQUENCY_ATTR_INDOOR_ONLY,
|
||||
NL80211_FREQUENCY_ATTR_GO_CONCURRENT,
|
||||
NL80211_FREQUENCY_ATTR_IR_CONCURRENT,
|
||||
NL80211_FREQUENCY_ATTR_NO_20MHZ,
|
||||
NL80211_FREQUENCY_ATTR_NO_10MHZ,
|
||||
|
||||
@@ -2672,6 +2673,8 @@ enum nl80211_frequency_attr {
|
||||
#define NL80211_FREQUENCY_ATTR_PASSIVE_SCAN NL80211_FREQUENCY_ATTR_NO_IR
|
||||
#define NL80211_FREQUENCY_ATTR_NO_IBSS NL80211_FREQUENCY_ATTR_NO_IR
|
||||
#define NL80211_FREQUENCY_ATTR_NO_IR NL80211_FREQUENCY_ATTR_NO_IR
|
||||
#define NL80211_FREQUENCY_ATTR_GO_CONCURRENT \
|
||||
NL80211_FREQUENCY_ATTR_IR_CONCURRENT
|
||||
|
||||
/**
|
||||
* enum nl80211_bitrate_attr - bitrate attributes
|
||||
@@ -2830,7 +2833,7 @@ enum nl80211_sched_scan_match_attr {
|
||||
* @NL80211_RRF_AUTO_BW: maximum available bandwidth should be calculated
|
||||
* base on contiguous rules and wider channels will be allowed to cross
|
||||
* multiple contiguous/overlapping frequency ranges.
|
||||
* @NL80211_RRF_GO_CONCURRENT: See &NL80211_FREQUENCY_ATTR_GO_CONCURRENT
|
||||
* @NL80211_RRF_IR_CONCURRENT: See &NL80211_FREQUENCY_ATTR_IR_CONCURRENT
|
||||
* @NL80211_RRF_NO_HT40MINUS: channels can't be used in HT40- operation
|
||||
* @NL80211_RRF_NO_HT40PLUS: channels can't be used in HT40+ operation
|
||||
* @NL80211_RRF_NO_80MHZ: 80MHz operation not allowed
|
||||
@@ -2847,7 +2850,7 @@ enum nl80211_reg_rule_flags {
|
||||
NL80211_RRF_NO_IR = 1<<7,
|
||||
__NL80211_RRF_NO_IBSS = 1<<8,
|
||||
NL80211_RRF_AUTO_BW = 1<<11,
|
||||
NL80211_RRF_GO_CONCURRENT = 1<<12,
|
||||
NL80211_RRF_IR_CONCURRENT = 1<<12,
|
||||
NL80211_RRF_NO_HT40MINUS = 1<<13,
|
||||
NL80211_RRF_NO_HT40PLUS = 1<<14,
|
||||
NL80211_RRF_NO_80MHZ = 1<<15,
|
||||
@@ -2859,6 +2862,7 @@ enum nl80211_reg_rule_flags {
|
||||
#define NL80211_RRF_NO_IR NL80211_RRF_NO_IR
|
||||
#define NL80211_RRF_NO_HT40 (NL80211_RRF_NO_HT40MINUS |\
|
||||
NL80211_RRF_NO_HT40PLUS)
|
||||
#define NL80211_RRF_GO_CONCURRENT NL80211_RRF_IR_CONCURRENT
|
||||
|
||||
/* For backport compatibility with older userspace */
|
||||
#define NL80211_RRF_NO_IR_ALL (NL80211_RRF_NO_IR | __NL80211_RRF_NO_IBSS)
|
||||
|
||||
@@ -179,6 +179,10 @@ enum {
|
||||
NVME_SMART_CRIT_VOLATILE_MEMORY = 1 << 4,
|
||||
};
|
||||
|
||||
enum {
|
||||
NVME_AER_NOTICE_NS_CHANGED = 0x0002,
|
||||
};
|
||||
|
||||
struct nvme_lba_range_type {
|
||||
__u8 type;
|
||||
__u8 attributes;
|
||||
@@ -579,5 +583,6 @@ struct nvme_passthru_cmd {
|
||||
#define NVME_IOCTL_ADMIN_CMD _IOWR('N', 0x41, struct nvme_admin_cmd)
|
||||
#define NVME_IOCTL_SUBMIT_IO _IOW('N', 0x42, struct nvme_user_io)
|
||||
#define NVME_IOCTL_IO_CMD _IOWR('N', 0x43, struct nvme_passthru_cmd)
|
||||
#define NVME_IOCTL_RESET _IO('N', 0x44)
|
||||
|
||||
#endif /* _UAPI_LINUX_NVME_H */
|
||||
|
||||
@@ -153,6 +153,8 @@ enum ovs_packet_cmd {
|
||||
* flow key against the kernel's.
|
||||
* @OVS_PACKET_ATTR_ACTIONS: Contains actions for the packet. Used
|
||||
* for %OVS_PACKET_CMD_EXECUTE. It has nested %OVS_ACTION_ATTR_* attributes.
|
||||
* Also used in upcall when %OVS_ACTION_ATTR_USERSPACE has optional
|
||||
* %OVS_USERSPACE_ATTR_ACTIONS attribute.
|
||||
* @OVS_PACKET_ATTR_USERDATA: Present for an %OVS_PACKET_CMD_ACTION
|
||||
* notification if the %OVS_ACTION_ATTR_USERSPACE action specified an
|
||||
* %OVS_USERSPACE_ATTR_USERDATA attribute, with the same length and content
|
||||
@@ -528,6 +530,7 @@ enum ovs_sample_attr {
|
||||
* copied to the %OVS_PACKET_CMD_ACTION message as %OVS_PACKET_ATTR_USERDATA.
|
||||
* @OVS_USERSPACE_ATTR_EGRESS_TUN_PORT: If present, u32 output port to get
|
||||
* tunnel info.
|
||||
* @OVS_USERSPACE_ATTR_ACTIONS: If present, send actions with upcall.
|
||||
*/
|
||||
enum ovs_userspace_attr {
|
||||
OVS_USERSPACE_ATTR_UNSPEC,
|
||||
@@ -535,6 +538,7 @@ enum ovs_userspace_attr {
|
||||
OVS_USERSPACE_ATTR_USERDATA, /* Optional user-specified cookie. */
|
||||
OVS_USERSPACE_ATTR_EGRESS_TUN_PORT, /* Optional, u32 output port
|
||||
* to get tunnel info. */
|
||||
OVS_USERSPACE_ATTR_ACTIONS, /* Optional flag to get actions. */
|
||||
__OVS_USERSPACE_ATTR_MAX
|
||||
};
|
||||
|
||||
|
||||
@@ -167,6 +167,7 @@ enum perf_branch_sample_type_shift {
|
||||
PERF_SAMPLE_BRANCH_COND_SHIFT = 10, /* conditional branches */
|
||||
|
||||
PERF_SAMPLE_BRANCH_CALL_STACK_SHIFT = 11, /* call/ret stack */
|
||||
PERF_SAMPLE_BRANCH_IND_JUMP_SHIFT = 12, /* indirect jumps */
|
||||
|
||||
PERF_SAMPLE_BRANCH_MAX_SHIFT /* non-ABI */
|
||||
};
|
||||
@@ -186,6 +187,7 @@ enum perf_branch_sample_type {
|
||||
PERF_SAMPLE_BRANCH_COND = 1U << PERF_SAMPLE_BRANCH_COND_SHIFT,
|
||||
|
||||
PERF_SAMPLE_BRANCH_CALL_STACK = 1U << PERF_SAMPLE_BRANCH_CALL_STACK_SHIFT,
|
||||
PERF_SAMPLE_BRANCH_IND_JUMP = 1U << PERF_SAMPLE_BRANCH_IND_JUMP_SHIFT,
|
||||
|
||||
PERF_SAMPLE_BRANCH_MAX = 1U << PERF_SAMPLE_BRANCH_MAX_SHIFT,
|
||||
};
|
||||
@@ -563,6 +565,10 @@ struct perf_event_mmap_page {
|
||||
#define PERF_RECORD_MISC_GUEST_KERNEL (4 << 0)
|
||||
#define PERF_RECORD_MISC_GUEST_USER (5 << 0)
|
||||
|
||||
/*
|
||||
* Indicates that /proc/PID/maps parsing are truncated by time out.
|
||||
*/
|
||||
#define PERF_RECORD_MISC_PROC_MAP_PARSE_TIMEOUT (1 << 12)
|
||||
/*
|
||||
* PERF_RECORD_MISC_MMAP_DATA and PERF_RECORD_MISC_COMM_EXEC are used on
|
||||
* different events so can reuse the same bit position.
|
||||
@@ -800,6 +806,18 @@ enum perf_event_type {
|
||||
*/
|
||||
PERF_RECORD_ITRACE_START = 12,
|
||||
|
||||
/*
|
||||
* Records the dropped/lost sample number.
|
||||
*
|
||||
* struct {
|
||||
* struct perf_event_header header;
|
||||
*
|
||||
* u64 lost;
|
||||
* struct sample_id sample_id;
|
||||
* };
|
||||
*/
|
||||
PERF_RECORD_LOST_SAMPLES = 13,
|
||||
|
||||
PERF_RECORD_MAX, /* non-ABI */
|
||||
};
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include <linux/types.h>
|
||||
#include <linux/pkt_sched.h>
|
||||
|
||||
#ifdef __KERNEL__
|
||||
/* I think i could have done better macros ; for now this is stolen from
|
||||
* some arch/mips code - jhs
|
||||
*/
|
||||
@@ -35,20 +36,6 @@ bits 9,10,11: redirect counter - redirect TTL. Loop avoidance
|
||||
*
|
||||
* */
|
||||
|
||||
#define TC_MUNGED _TC_MAKEMASK1(0)
|
||||
#define SET_TC_MUNGED(v) ( TC_MUNGED | (v & ~TC_MUNGED))
|
||||
#define CLR_TC_MUNGED(v) ( v & ~TC_MUNGED)
|
||||
|
||||
#define TC_OK2MUNGE _TC_MAKEMASK1(1)
|
||||
#define SET_TC_OK2MUNGE(v) ( TC_OK2MUNGE | (v & ~TC_OK2MUNGE))
|
||||
#define CLR_TC_OK2MUNGE(v) ( v & ~TC_OK2MUNGE)
|
||||
|
||||
#define S_TC_VERD _TC_MAKE32(2)
|
||||
#define M_TC_VERD _TC_MAKEMASK(4,S_TC_VERD)
|
||||
#define G_TC_VERD(x) _TC_GETVALUE(x,S_TC_VERD,M_TC_VERD)
|
||||
#define V_TC_VERD(x) _TC_MAKEVALUE(x,S_TC_VERD)
|
||||
#define SET_TC_VERD(v,n) ((V_TC_VERD(n)) | (v & ~M_TC_VERD))
|
||||
|
||||
#define S_TC_FROM _TC_MAKE32(6)
|
||||
#define M_TC_FROM _TC_MAKEMASK(2,S_TC_FROM)
|
||||
#define G_TC_FROM(x) _TC_GETVALUE(x,S_TC_FROM,M_TC_FROM)
|
||||
@@ -62,18 +49,16 @@ bits 9,10,11: redirect counter - redirect TTL. Loop avoidance
|
||||
#define SET_TC_NCLS(v) ( TC_NCLS | (v & ~TC_NCLS))
|
||||
#define CLR_TC_NCLS(v) ( v & ~TC_NCLS)
|
||||
|
||||
#define S_TC_RTTL _TC_MAKE32(9)
|
||||
#define M_TC_RTTL _TC_MAKEMASK(3,S_TC_RTTL)
|
||||
#define G_TC_RTTL(x) _TC_GETVALUE(x,S_TC_RTTL,M_TC_RTTL)
|
||||
#define V_TC_RTTL(x) _TC_MAKEVALUE(x,S_TC_RTTL)
|
||||
#define SET_TC_RTTL(v,n) ((V_TC_RTTL(n)) | (v & ~M_TC_RTTL))
|
||||
|
||||
#define S_TC_AT _TC_MAKE32(12)
|
||||
#define M_TC_AT _TC_MAKEMASK(2,S_TC_AT)
|
||||
#define G_TC_AT(x) _TC_GETVALUE(x,S_TC_AT,M_TC_AT)
|
||||
#define V_TC_AT(x) _TC_MAKEVALUE(x,S_TC_AT)
|
||||
#define SET_TC_AT(v,n) ((V_TC_AT(n)) | (v & ~M_TC_AT))
|
||||
|
||||
#define MAX_REC_LOOP 4
|
||||
#define MAX_RED_LOOP 4
|
||||
#endif
|
||||
|
||||
/* Action attributes */
|
||||
enum {
|
||||
TCA_ACT_UNSPEC,
|
||||
@@ -93,8 +78,6 @@ enum {
|
||||
#define TCA_ACT_NOUNBIND 0
|
||||
#define TCA_ACT_REPLACE 1
|
||||
#define TCA_ACT_NOREPLACE 0
|
||||
#define MAX_REC_LOOP 4
|
||||
#define MAX_RED_LOOP 4
|
||||
|
||||
#define TC_ACT_UNSPEC (-1)
|
||||
#define TC_ACT_OK 0
|
||||
@@ -404,6 +387,36 @@ enum {
|
||||
|
||||
#define TCA_BPF_MAX (__TCA_BPF_MAX - 1)
|
||||
|
||||
/* Flower classifier */
|
||||
|
||||
enum {
|
||||
TCA_FLOWER_UNSPEC,
|
||||
TCA_FLOWER_CLASSID,
|
||||
TCA_FLOWER_INDEV,
|
||||
TCA_FLOWER_ACT,
|
||||
TCA_FLOWER_KEY_ETH_DST, /* ETH_ALEN */
|
||||
TCA_FLOWER_KEY_ETH_DST_MASK, /* ETH_ALEN */
|
||||
TCA_FLOWER_KEY_ETH_SRC, /* ETH_ALEN */
|
||||
TCA_FLOWER_KEY_ETH_SRC_MASK, /* ETH_ALEN */
|
||||
TCA_FLOWER_KEY_ETH_TYPE, /* be16 */
|
||||
TCA_FLOWER_KEY_IP_PROTO, /* u8 */
|
||||
TCA_FLOWER_KEY_IPV4_SRC, /* be32 */
|
||||
TCA_FLOWER_KEY_IPV4_SRC_MASK, /* be32 */
|
||||
TCA_FLOWER_KEY_IPV4_DST, /* be32 */
|
||||
TCA_FLOWER_KEY_IPV4_DST_MASK, /* be32 */
|
||||
TCA_FLOWER_KEY_IPV6_SRC, /* struct in6_addr */
|
||||
TCA_FLOWER_KEY_IPV6_SRC_MASK, /* struct in6_addr */
|
||||
TCA_FLOWER_KEY_IPV6_DST, /* struct in6_addr */
|
||||
TCA_FLOWER_KEY_IPV6_DST_MASK, /* struct in6_addr */
|
||||
TCA_FLOWER_KEY_TCP_SRC, /* be16 */
|
||||
TCA_FLOWER_KEY_TCP_DST, /* be16 */
|
||||
TCA_FLOWER_KEY_UDP_SRC, /* be16 */
|
||||
TCA_FLOWER_KEY_UDP_DST, /* be16 */
|
||||
__TCA_FLOWER_MAX,
|
||||
};
|
||||
|
||||
#define TCA_FLOWER_MAX (__TCA_FLOWER_MAX - 1)
|
||||
|
||||
/* Extended Matches */
|
||||
|
||||
struct tcf_ematch_tree_hdr {
|
||||
|
||||
@@ -268,7 +268,8 @@ enum {
|
||||
TCA_GRED_STAB,
|
||||
TCA_GRED_DPS,
|
||||
TCA_GRED_MAX_P,
|
||||
__TCA_GRED_MAX,
|
||||
TCA_GRED_LIMIT,
|
||||
__TCA_GRED_MAX,
|
||||
};
|
||||
|
||||
#define TCA_GRED_MAX (__TCA_GRED_MAX - 1)
|
||||
@@ -679,6 +680,7 @@ enum {
|
||||
TCA_CODEL_LIMIT,
|
||||
TCA_CODEL_INTERVAL,
|
||||
TCA_CODEL_ECN,
|
||||
TCA_CODEL_CE_THRESHOLD,
|
||||
__TCA_CODEL_MAX
|
||||
};
|
||||
|
||||
@@ -695,6 +697,7 @@ struct tc_codel_xstats {
|
||||
__u32 drop_overlimit; /* number of time max qdisc packet limit was hit */
|
||||
__u32 ecn_mark; /* number of packets we ECN marked instead of dropped */
|
||||
__u32 dropping; /* are we in dropping state ? */
|
||||
__u32 ce_mark; /* number of CE marked packets because of ce_threshold */
|
||||
};
|
||||
|
||||
/* FQ_CODEL */
|
||||
@@ -707,6 +710,7 @@ enum {
|
||||
TCA_FQ_CODEL_ECN,
|
||||
TCA_FQ_CODEL_FLOWS,
|
||||
TCA_FQ_CODEL_QUANTUM,
|
||||
TCA_FQ_CODEL_CE_THRESHOLD,
|
||||
__TCA_FQ_CODEL_MAX
|
||||
};
|
||||
|
||||
@@ -730,6 +734,7 @@ struct tc_fq_codel_qd_stats {
|
||||
*/
|
||||
__u32 new_flows_len; /* count of flows in new list */
|
||||
__u32 old_flows_len; /* count of flows in old list */
|
||||
__u32 ce_mark; /* packets above ce_threshold */
|
||||
};
|
||||
|
||||
struct tc_fq_codel_cl_stats {
|
||||
|
||||
@@ -38,6 +38,8 @@
|
||||
|
||||
#define RDS_IB_ABI_VERSION 0x301
|
||||
|
||||
#define SOL_RDS 276
|
||||
|
||||
/*
|
||||
* setsockopt/getsockopt for SOL_RDS
|
||||
*/
|
||||
@@ -48,6 +50,14 @@
|
||||
#define RDS_RECVERR 5
|
||||
#define RDS_CONG_MONITOR 6
|
||||
#define RDS_GET_MR_FOR_DEST 7
|
||||
#define SO_RDS_TRANSPORT 8
|
||||
|
||||
/* supported values for SO_RDS_TRANSPORT */
|
||||
#define RDS_TRANS_IB 0
|
||||
#define RDS_TRANS_IWARP 1
|
||||
#define RDS_TRANS_TCP 2
|
||||
#define RDS_TRANS_COUNT 3
|
||||
#define RDS_TRANS_NONE (~0)
|
||||
|
||||
/*
|
||||
* Control message types for SOL_RDS.
|
||||
|
||||
@@ -338,6 +338,9 @@ struct rtnexthop {
|
||||
#define RTNH_F_PERVASIVE 2 /* Do recursive gateway lookup */
|
||||
#define RTNH_F_ONLINK 4 /* Gateway is forced on link */
|
||||
#define RTNH_F_OFFLOAD 8 /* offloaded route */
|
||||
#define RTNH_F_LINKDOWN 16 /* carrier-down on nexthop */
|
||||
|
||||
#define RTNH_COMPARE_MASK (RTNH_F_DEAD | RTNH_F_LINKDOWN)
|
||||
|
||||
/* Macros to handle hexthops */
|
||||
|
||||
|
||||
@@ -0,0 +1,130 @@
|
||||
/*
|
||||
* Intel MIC Platform Software Stack (MPSS)
|
||||
*
|
||||
* This file is provided under a dual BSD/GPLv2 license. When using or
|
||||
* redistributing this file, you may do so under either license.
|
||||
*
|
||||
* GPL LICENSE SUMMARY
|
||||
*
|
||||
* Copyright(c) 2014 Intel Corporation.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of version 2 of the GNU General Public License as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that 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.
|
||||
*
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright(c) 2014 Intel Corporation.
|
||||
*
|
||||
* 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.
|
||||
* * Neither the name of Intel Corporation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "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 COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS 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.
|
||||
*
|
||||
* Intel SCIF driver.
|
||||
*
|
||||
*/
|
||||
/*
|
||||
* -----------------------------------------
|
||||
* SCIF IOCTL interface information
|
||||
* -----------------------------------------
|
||||
*/
|
||||
#ifndef SCIF_IOCTL_H
|
||||
#define SCIF_IOCTL_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
/**
|
||||
* struct scif_port_id - SCIF port information
|
||||
* @node: node on which port resides
|
||||
* @port: local port number
|
||||
*/
|
||||
struct scif_port_id {
|
||||
__u16 node;
|
||||
__u16 port;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct scifioctl_connect - used for SCIF_CONNECT IOCTL
|
||||
* @self: used to read back the assigned port_id
|
||||
* @peer: destination node and port to connect to
|
||||
*/
|
||||
struct scifioctl_connect {
|
||||
struct scif_port_id self;
|
||||
struct scif_port_id peer;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct scifioctl_accept - used for SCIF_ACCEPTREQ IOCTL
|
||||
* @flags: flags
|
||||
* @peer: global id of peer endpoint
|
||||
* @endpt: new connected endpoint descriptor
|
||||
*/
|
||||
struct scifioctl_accept {
|
||||
__s32 flags;
|
||||
struct scif_port_id peer;
|
||||
__u64 endpt;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct scifioctl_msg - used for SCIF_SEND/SCIF_RECV IOCTL
|
||||
* @msg: message buffer address
|
||||
* @len: message length
|
||||
* @flags: flags
|
||||
* @out_len: number of bytes sent/received
|
||||
*/
|
||||
struct scifioctl_msg {
|
||||
__u64 msg;
|
||||
__s32 len;
|
||||
__s32 flags;
|
||||
__s32 out_len;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct scifioctl_node_ids - used for SCIF_GET_NODEIDS IOCTL
|
||||
* @nodes: pointer to an array of node_ids
|
||||
* @self: ID of the current node
|
||||
* @len: length of array
|
||||
*/
|
||||
struct scifioctl_node_ids {
|
||||
__u64 nodes;
|
||||
__u64 self;
|
||||
__s32 len;
|
||||
};
|
||||
|
||||
#define SCIF_BIND _IOWR('s', 1, __u64)
|
||||
#define SCIF_LISTEN _IOW('s', 2, __s32)
|
||||
#define SCIF_CONNECT _IOWR('s', 3, struct scifioctl_connect)
|
||||
#define SCIF_ACCEPTREQ _IOWR('s', 4, struct scifioctl_accept)
|
||||
#define SCIF_ACCEPTREG _IOWR('s', 5, __u64)
|
||||
#define SCIF_SEND _IOWR('s', 6, struct scifioctl_msg)
|
||||
#define SCIF_RECV _IOWR('s', 7, struct scifioctl_msg)
|
||||
#define SCIF_GET_NODEIDS _IOWR('s', 14, struct scifioctl_node_ids)
|
||||
|
||||
#endif /* SCIF_IOCTL_H */
|
||||
@@ -258,4 +258,7 @@
|
||||
/* Cris v10 / v32 SoC */
|
||||
#define PORT_CRIS 112
|
||||
|
||||
/* STM32 USART */
|
||||
#define PORT_STM32 113
|
||||
|
||||
#endif /* _UAPILINUX_SERIAL_CORE_H */
|
||||
|
||||
@@ -331,6 +331,9 @@
|
||||
* Extra serial register definitions for the internal UARTs
|
||||
* in TI OMAP processors.
|
||||
*/
|
||||
#define OMAP1_UART1_BASE 0xfffb0000
|
||||
#define OMAP1_UART2_BASE 0xfffb0800
|
||||
#define OMAP1_UART3_BASE 0xfffb9800
|
||||
#define UART_OMAP_MDR1 0x08 /* Mode definition register */
|
||||
#define UART_OMAP_MDR2 0x09 /* Mode definition register 2 */
|
||||
#define UART_OMAP_SCR 0x10 /* Supplementary control register */
|
||||
|
||||
@@ -276,6 +276,8 @@ enum
|
||||
LINUX_MIB_TCPACKSKIPPEDFINWAIT2, /* TCPACKSkippedFinWait2 */
|
||||
LINUX_MIB_TCPACKSKIPPEDTIMEWAIT, /* TCPACKSkippedTimeWait */
|
||||
LINUX_MIB_TCPACKSKIPPEDCHALLENGE, /* TCPACKSkippedChallenge */
|
||||
LINUX_MIB_TCPWINPROBE, /* TCPWinProbe */
|
||||
LINUX_MIB_TCPKEEPALIVE, /* TCPKeepAlive */
|
||||
__LINUX_MIB_MAX
|
||||
};
|
||||
|
||||
|
||||
@@ -23,4 +23,14 @@ enum {
|
||||
SK_MEMINFO_VARS,
|
||||
};
|
||||
|
||||
enum sknetlink_groups {
|
||||
SKNLGRP_NONE,
|
||||
SKNLGRP_INET_TCP_DESTROY,
|
||||
SKNLGRP_INET_UDP_DESTROY,
|
||||
SKNLGRP_INET6_TCP_DESTROY,
|
||||
SKNLGRP_INET6_UDP_DESTROY,
|
||||
__SKNLGRP_MAX,
|
||||
};
|
||||
#define SKNLGRP_MAX (__SKNLGRP_MAX - 1)
|
||||
|
||||
#endif /* _UAPI__SOCK_DIAG_H__ */
|
||||
|
||||
@@ -113,6 +113,8 @@ enum {
|
||||
#define TCP_TIMESTAMP 24
|
||||
#define TCP_NOTSENT_LOWAT 25 /* limit number of unsent bytes in write queue */
|
||||
#define TCP_CC_INFO 26 /* Get Congestion Control (optional) info */
|
||||
#define TCP_SAVE_SYN 27 /* Record SYN headers for new connections */
|
||||
#define TCP_SAVED_SYN 28 /* Get SYN headers recorded for connection */
|
||||
|
||||
struct tcp_repair_opt {
|
||||
__u32 opt_code;
|
||||
@@ -190,8 +192,10 @@ struct tcp_info {
|
||||
|
||||
__u64 tcpi_pacing_rate;
|
||||
__u64 tcpi_max_pacing_rate;
|
||||
__u64 tcpi_bytes_acked; /* RFC4898 tcpEStatsAppHCThruOctetsAcked */
|
||||
__u64 tcpi_bytes_acked; /* RFC4898 tcpEStatsAppHCThruOctetsAcked */
|
||||
__u64 tcpi_bytes_received; /* RFC4898 tcpEStatsAppHCThruOctetsReceived */
|
||||
__u32 tcpi_segs_out; /* RFC4898 tcpEStatsPerfSegsOut */
|
||||
__u32 tcpi_segs_in; /* RFC4898 tcpEStatsPerfSegsIn */
|
||||
};
|
||||
|
||||
/* for TCP_MD5SIG socket option */
|
||||
|
||||
@@ -34,5 +34,6 @@
|
||||
#define N_TI_WL 22 /* for TI's WL BT, FM, GPS combo chips */
|
||||
#define N_TRACESINK 23 /* Trace data routing for MIPI P1149.7 */
|
||||
#define N_TRACEROUTER 24 /* Trace data routing for MIPI P1149.7 */
|
||||
#define N_NCI 25 /* NFC NCI UART */
|
||||
|
||||
#endif /* _UAPI_LINUX_TTY_H */
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
#define ASYNCB_FOURPORT 1 /* Set OU1, OUT2 per AST Fourport settings */
|
||||
#define ASYNCB_SAK 2 /* Secure Attention Key (Orange book) */
|
||||
#define ASYNCB_SPLIT_TERMIOS 3 /* [x] Separate termios for dialin/callout */
|
||||
#define ASYNCB_SPD_HI 4 /* Use 56000 instead of 38400 bps */
|
||||
#define ASYNCB_SPD_HI 4 /* Use 57600 instead of 38400 bps */
|
||||
#define ASYNCB_SPD_VHI 5 /* Use 115200 instead of 38400 bps */
|
||||
#define ASYNCB_SKIP_TEST 6 /* Skip UART test during autoconfiguration */
|
||||
#define ASYNCB_AUTO_IRQ 7 /* Do automatic IRQ during
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
* @colorspace: colorspace of the data (from enum v4l2_colorspace)
|
||||
* @ycbcr_enc: YCbCr encoding of the data (from enum v4l2_ycbcr_encoding)
|
||||
* @quantization: quantization of the data (from enum v4l2_quantization)
|
||||
* @xfer_func: transfer function of the data (from enum v4l2_xfer_func)
|
||||
*/
|
||||
struct v4l2_mbus_framefmt {
|
||||
__u32 width;
|
||||
@@ -33,7 +34,8 @@ struct v4l2_mbus_framefmt {
|
||||
__u32 colorspace;
|
||||
__u16 ycbcr_enc;
|
||||
__u16 quantization;
|
||||
__u32 reserved[6];
|
||||
__u16 xfer_func;
|
||||
__u16 reserved[11];
|
||||
};
|
||||
|
||||
#ifndef __KERNEL__
|
||||
|
||||
@@ -36,6 +36,8 @@
|
||||
/* Two-stage IOMMU */
|
||||
#define VFIO_TYPE1_NESTING_IOMMU 6 /* Implies v2 */
|
||||
|
||||
#define VFIO_SPAPR_TCE_v2_IOMMU 7
|
||||
|
||||
/*
|
||||
* The IOCTL interface is designed for extensibility by embedding the
|
||||
* structure length (argsz) and flags into structures passed between
|
||||
@@ -442,6 +444,23 @@ struct vfio_iommu_type1_dma_unmap {
|
||||
|
||||
/* -------- Additional API for SPAPR TCE (Server POWERPC) IOMMU -------- */
|
||||
|
||||
/*
|
||||
* The SPAPR TCE DDW info struct provides the information about
|
||||
* the details of Dynamic DMA window capability.
|
||||
*
|
||||
* @pgsizes contains a page size bitmask, 4K/64K/16M are supported.
|
||||
* @max_dynamic_windows_supported tells the maximum number of windows
|
||||
* which the platform can create.
|
||||
* @levels tells the maximum number of levels in multi-level IOMMU tables;
|
||||
* this allows splitting a table into smaller chunks which reduces
|
||||
* the amount of physically contiguous memory required for the table.
|
||||
*/
|
||||
struct vfio_iommu_spapr_tce_ddw_info {
|
||||
__u64 pgsizes; /* Bitmap of supported page sizes */
|
||||
__u32 max_dynamic_windows_supported;
|
||||
__u32 levels;
|
||||
};
|
||||
|
||||
/*
|
||||
* The SPAPR TCE info struct provides the information about the PCI bus
|
||||
* address ranges available for DMA, these values are programmed into
|
||||
@@ -452,14 +471,17 @@ struct vfio_iommu_type1_dma_unmap {
|
||||
* addresses too so the window works as a filter rather than an offset
|
||||
* for IOVA addresses.
|
||||
*
|
||||
* A flag will need to be added if other page sizes are supported,
|
||||
* so as defined here, it is always 4k.
|
||||
* Flags supported:
|
||||
* - VFIO_IOMMU_SPAPR_INFO_DDW: informs the userspace that dynamic DMA windows
|
||||
* (DDW) support is present. @ddw is only supported when DDW is present.
|
||||
*/
|
||||
struct vfio_iommu_spapr_tce_info {
|
||||
__u32 argsz;
|
||||
__u32 flags; /* reserved for future use */
|
||||
__u32 flags;
|
||||
#define VFIO_IOMMU_SPAPR_INFO_DDW (1 << 0) /* DDW supported */
|
||||
__u32 dma32_window_start; /* 32 bit window start (bytes) */
|
||||
__u32 dma32_window_size; /* 32 bit window size (bytes) */
|
||||
struct vfio_iommu_spapr_tce_ddw_info ddw;
|
||||
};
|
||||
|
||||
#define VFIO_IOMMU_SPAPR_TCE_GET_INFO _IO(VFIO_TYPE, VFIO_BASE + 12)
|
||||
@@ -470,12 +492,23 @@ struct vfio_iommu_spapr_tce_info {
|
||||
* - unfreeze IO/DMA for frozen PE;
|
||||
* - read PE state;
|
||||
* - reset PE;
|
||||
* - configure PE.
|
||||
* - configure PE;
|
||||
* - inject EEH error.
|
||||
*/
|
||||
struct vfio_eeh_pe_err {
|
||||
__u32 type;
|
||||
__u32 func;
|
||||
__u64 addr;
|
||||
__u64 mask;
|
||||
};
|
||||
|
||||
struct vfio_eeh_pe_op {
|
||||
__u32 argsz;
|
||||
__u32 flags;
|
||||
__u32 op;
|
||||
union {
|
||||
struct vfio_eeh_pe_err err;
|
||||
};
|
||||
};
|
||||
|
||||
#define VFIO_EEH_PE_DISABLE 0 /* Disable EEH functionality */
|
||||
@@ -492,9 +525,70 @@ struct vfio_eeh_pe_op {
|
||||
#define VFIO_EEH_PE_RESET_HOT 6 /* Assert hot reset */
|
||||
#define VFIO_EEH_PE_RESET_FUNDAMENTAL 7 /* Assert fundamental reset */
|
||||
#define VFIO_EEH_PE_CONFIGURE 8 /* PE configuration */
|
||||
#define VFIO_EEH_PE_INJECT_ERR 9 /* Inject EEH error */
|
||||
|
||||
#define VFIO_EEH_PE_OP _IO(VFIO_TYPE, VFIO_BASE + 21)
|
||||
|
||||
/**
|
||||
* VFIO_IOMMU_SPAPR_REGISTER_MEMORY - _IOW(VFIO_TYPE, VFIO_BASE + 17, struct vfio_iommu_spapr_register_memory)
|
||||
*
|
||||
* Registers user space memory where DMA is allowed. It pins
|
||||
* user pages and does the locked memory accounting so
|
||||
* subsequent VFIO_IOMMU_MAP_DMA/VFIO_IOMMU_UNMAP_DMA calls
|
||||
* get faster.
|
||||
*/
|
||||
struct vfio_iommu_spapr_register_memory {
|
||||
__u32 argsz;
|
||||
__u32 flags;
|
||||
__u64 vaddr; /* Process virtual address */
|
||||
__u64 size; /* Size of mapping (bytes) */
|
||||
};
|
||||
#define VFIO_IOMMU_SPAPR_REGISTER_MEMORY _IO(VFIO_TYPE, VFIO_BASE + 17)
|
||||
|
||||
/**
|
||||
* VFIO_IOMMU_SPAPR_UNREGISTER_MEMORY - _IOW(VFIO_TYPE, VFIO_BASE + 18, struct vfio_iommu_spapr_register_memory)
|
||||
*
|
||||
* Unregisters user space memory registered with
|
||||
* VFIO_IOMMU_SPAPR_REGISTER_MEMORY.
|
||||
* Uses vfio_iommu_spapr_register_memory for parameters.
|
||||
*/
|
||||
#define VFIO_IOMMU_SPAPR_UNREGISTER_MEMORY _IO(VFIO_TYPE, VFIO_BASE + 18)
|
||||
|
||||
/**
|
||||
* VFIO_IOMMU_SPAPR_TCE_CREATE - _IOWR(VFIO_TYPE, VFIO_BASE + 19, struct vfio_iommu_spapr_tce_create)
|
||||
*
|
||||
* Creates an additional TCE table and programs it (sets a new DMA window)
|
||||
* to every IOMMU group in the container. It receives page shift, window
|
||||
* size and number of levels in the TCE table being created.
|
||||
*
|
||||
* It allocates and returns an offset on a PCI bus of the new DMA window.
|
||||
*/
|
||||
struct vfio_iommu_spapr_tce_create {
|
||||
__u32 argsz;
|
||||
__u32 flags;
|
||||
/* in */
|
||||
__u32 page_shift;
|
||||
__u64 window_size;
|
||||
__u32 levels;
|
||||
/* out */
|
||||
__u64 start_addr;
|
||||
};
|
||||
#define VFIO_IOMMU_SPAPR_TCE_CREATE _IO(VFIO_TYPE, VFIO_BASE + 19)
|
||||
|
||||
/**
|
||||
* VFIO_IOMMU_SPAPR_TCE_REMOVE - _IOW(VFIO_TYPE, VFIO_BASE + 20, struct vfio_iommu_spapr_tce_remove)
|
||||
*
|
||||
* Unprograms a TCE table from all groups in the container and destroys it.
|
||||
* It receives a PCI bus offset as a window id.
|
||||
*/
|
||||
struct vfio_iommu_spapr_tce_remove {
|
||||
__u32 argsz;
|
||||
__u32 flags;
|
||||
/* in */
|
||||
__u64 start_addr;
|
||||
};
|
||||
#define VFIO_IOMMU_SPAPR_TCE_REMOVE _IO(VFIO_TYPE, VFIO_BASE + 20)
|
||||
|
||||
/* ***************************************************************** */
|
||||
|
||||
#endif /* _UAPIVFIO_H */
|
||||
|
||||
@@ -103,6 +103,20 @@ struct vhost_memory {
|
||||
/* Get accessor: reads index, writes value in num */
|
||||
#define VHOST_GET_VRING_BASE _IOWR(VHOST_VIRTIO, 0x12, struct vhost_vring_state)
|
||||
|
||||
/* Set the vring byte order in num. Valid values are VHOST_VRING_LITTLE_ENDIAN
|
||||
* or VHOST_VRING_BIG_ENDIAN (other values return -EINVAL).
|
||||
* The byte order cannot be changed while the device is active: trying to do so
|
||||
* returns -EBUSY.
|
||||
* This is a legacy only API that is simply ignored when VIRTIO_F_VERSION_1 is
|
||||
* set.
|
||||
* Not all kernel configurations support this ioctl, but all configurations that
|
||||
* support SET also support GET.
|
||||
*/
|
||||
#define VHOST_VRING_LITTLE_ENDIAN 0
|
||||
#define VHOST_VRING_BIG_ENDIAN 1
|
||||
#define VHOST_SET_VRING_ENDIAN _IOW(VHOST_VIRTIO, 0x13, struct vhost_vring_state)
|
||||
#define VHOST_GET_VRING_ENDIAN _IOW(VHOST_VIRTIO, 0x14, struct vhost_vring_state)
|
||||
|
||||
/* The following ioctls use eventfd file descriptors to signal and poll
|
||||
* for events. */
|
||||
|
||||
|
||||
@@ -178,6 +178,12 @@ enum v4l2_memory {
|
||||
|
||||
/* see also http://vektor.theorem.ca/graphics/ycbcr/ */
|
||||
enum v4l2_colorspace {
|
||||
/*
|
||||
* Default colorspace, i.e. let the driver figure it out.
|
||||
* Can only be used with video capture.
|
||||
*/
|
||||
V4L2_COLORSPACE_DEFAULT = 0,
|
||||
|
||||
/* SMPTE 170M: used for broadcast NTSC/PAL SDTV */
|
||||
V4L2_COLORSPACE_SMPTE170M = 1,
|
||||
|
||||
@@ -220,8 +226,56 @@ enum v4l2_colorspace {
|
||||
|
||||
/* BT.2020 colorspace, used for UHDTV. */
|
||||
V4L2_COLORSPACE_BT2020 = 10,
|
||||
|
||||
/* Raw colorspace: for RAW unprocessed images */
|
||||
V4L2_COLORSPACE_RAW = 11,
|
||||
};
|
||||
|
||||
/*
|
||||
* Determine how COLORSPACE_DEFAULT should map to a proper colorspace.
|
||||
* This depends on whether this is a SDTV image (use SMPTE 170M), an
|
||||
* HDTV image (use Rec. 709), or something else (use sRGB).
|
||||
*/
|
||||
#define V4L2_MAP_COLORSPACE_DEFAULT(is_sdtv, is_hdtv) \
|
||||
((is_sdtv) ? V4L2_COLORSPACE_SMPTE170M : \
|
||||
((is_hdtv) ? V4L2_COLORSPACE_REC709 : V4L2_COLORSPACE_SRGB))
|
||||
|
||||
enum v4l2_xfer_func {
|
||||
/*
|
||||
* Mapping of V4L2_XFER_FUNC_DEFAULT to actual transfer functions
|
||||
* for the various colorspaces:
|
||||
*
|
||||
* V4L2_COLORSPACE_SMPTE170M, V4L2_COLORSPACE_470_SYSTEM_M,
|
||||
* V4L2_COLORSPACE_470_SYSTEM_BG, V4L2_COLORSPACE_REC709 and
|
||||
* V4L2_COLORSPACE_BT2020: V4L2_XFER_FUNC_709
|
||||
*
|
||||
* V4L2_COLORSPACE_SRGB, V4L2_COLORSPACE_JPEG: V4L2_XFER_FUNC_SRGB
|
||||
*
|
||||
* V4L2_COLORSPACE_ADOBERGB: V4L2_XFER_FUNC_ADOBERGB
|
||||
*
|
||||
* V4L2_COLORSPACE_SMPTE240M: V4L2_XFER_FUNC_SMPTE240M
|
||||
*
|
||||
* V4L2_COLORSPACE_RAW: V4L2_XFER_FUNC_NONE
|
||||
*/
|
||||
V4L2_XFER_FUNC_DEFAULT = 0,
|
||||
V4L2_XFER_FUNC_709 = 1,
|
||||
V4L2_XFER_FUNC_SRGB = 2,
|
||||
V4L2_XFER_FUNC_ADOBERGB = 3,
|
||||
V4L2_XFER_FUNC_SMPTE240M = 4,
|
||||
V4L2_XFER_FUNC_NONE = 5,
|
||||
};
|
||||
|
||||
/*
|
||||
* Determine how XFER_FUNC_DEFAULT should map to a proper transfer function.
|
||||
* This depends on the colorspace.
|
||||
*/
|
||||
#define V4L2_MAP_XFER_FUNC_DEFAULT(colsp) \
|
||||
((colsp) == V4L2_COLORSPACE_ADOBERGB ? V4L2_XFER_FUNC_ADOBERGB : \
|
||||
((colsp) == V4L2_COLORSPACE_SMPTE240M ? V4L2_XFER_FUNC_SMPTE240M : \
|
||||
((colsp) == V4L2_COLORSPACE_RAW ? V4L2_XFER_FUNC_NONE : \
|
||||
((colsp) == V4L2_COLORSPACE_SRGB || (colsp) == V4L2_COLORSPACE_JPEG ? \
|
||||
V4L2_XFER_FUNC_SRGB : V4L2_XFER_FUNC_709))))
|
||||
|
||||
enum v4l2_ycbcr_encoding {
|
||||
/*
|
||||
* Mapping of V4L2_YCBCR_ENC_DEFAULT to actual encodings for the
|
||||
@@ -266,6 +320,16 @@ enum v4l2_ycbcr_encoding {
|
||||
V4L2_YCBCR_ENC_SMPTE240M = 8,
|
||||
};
|
||||
|
||||
/*
|
||||
* Determine how YCBCR_ENC_DEFAULT should map to a proper Y'CbCr encoding.
|
||||
* This depends on the colorspace.
|
||||
*/
|
||||
#define V4L2_MAP_YCBCR_ENC_DEFAULT(colsp) \
|
||||
((colsp) == V4L2_COLORSPACE_REC709 ? V4L2_YCBCR_ENC_709 : \
|
||||
((colsp) == V4L2_COLORSPACE_BT2020 ? V4L2_YCBCR_ENC_BT2020 : \
|
||||
((colsp) == V4L2_COLORSPACE_SMPTE240M ? V4L2_YCBCR_ENC_SMPTE240M : \
|
||||
V4L2_YCBCR_ENC_601)))
|
||||
|
||||
enum v4l2_quantization {
|
||||
/*
|
||||
* The default for R'G'B' quantization is always full range, except
|
||||
@@ -278,6 +342,17 @@ enum v4l2_quantization {
|
||||
V4L2_QUANTIZATION_LIM_RANGE = 2,
|
||||
};
|
||||
|
||||
/*
|
||||
* Determine how QUANTIZATION_DEFAULT should map to a proper quantization.
|
||||
* This depends on whether the image is RGB or not, the colorspace and the
|
||||
* Y'CbCr encoding.
|
||||
*/
|
||||
#define V4L2_MAP_QUANTIZATION_DEFAULT(is_rgb, colsp, ycbcr_enc) \
|
||||
(((is_rgb) && (colsp) == V4L2_COLORSPACE_BT2020) ? V4L2_QUANTIZATION_LIM_RANGE : \
|
||||
(((is_rgb) || (ycbcr_enc) == V4L2_YCBCR_ENC_XV601 || \
|
||||
(ycbcr_enc) == V4L2_YCBCR_ENC_XV709 || (colsp) == V4L2_COLORSPACE_JPEG) ? \
|
||||
V4L2_QUANTIZATION_FULL_RANGE : V4L2_QUANTIZATION_LIM_RANGE))
|
||||
|
||||
enum v4l2_priority {
|
||||
V4L2_PRIORITY_UNSET = 0, /* not initialized */
|
||||
V4L2_PRIORITY_BACKGROUND = 1,
|
||||
@@ -370,6 +445,7 @@ struct v4l2_pix_format {
|
||||
__u32 flags; /* format flags (V4L2_PIX_FMT_FLAG_*) */
|
||||
__u32 ycbcr_enc; /* enum v4l2_ycbcr_encoding */
|
||||
__u32 quantization; /* enum v4l2_quantization */
|
||||
__u32 xfer_func; /* enum v4l2_xfer_func */
|
||||
};
|
||||
|
||||
/* Pixel format FOURCC depth Description */
|
||||
@@ -404,6 +480,7 @@ struct v4l2_pix_format {
|
||||
#define V4L2_PIX_FMT_Y10 v4l2_fourcc('Y', '1', '0', ' ') /* 10 Greyscale */
|
||||
#define V4L2_PIX_FMT_Y12 v4l2_fourcc('Y', '1', '2', ' ') /* 12 Greyscale */
|
||||
#define V4L2_PIX_FMT_Y16 v4l2_fourcc('Y', '1', '6', ' ') /* 16 Greyscale */
|
||||
#define V4L2_PIX_FMT_Y16_BE v4l2_fourcc_be('Y', '1', '6', ' ') /* 16 Greyscale BE */
|
||||
|
||||
/* Grey bit-packed formats */
|
||||
#define V4L2_PIX_FMT_Y10BPACK v4l2_fourcc('Y', '1', '0', 'B') /* 10 Greyscale bit-packed */
|
||||
@@ -810,6 +887,8 @@ struct v4l2_buffer {
|
||||
#define V4L2_BUF_FLAG_TSTAMP_SRC_MASK 0x00070000
|
||||
#define V4L2_BUF_FLAG_TSTAMP_SRC_EOF 0x00000000
|
||||
#define V4L2_BUF_FLAG_TSTAMP_SRC_SOE 0x00010000
|
||||
/* mem2mem encoder/decoder */
|
||||
#define V4L2_BUF_FLAG_LAST 0x00100000
|
||||
|
||||
/**
|
||||
* struct v4l2_exportbuffer - export of video buffer as DMABUF file descriptor
|
||||
@@ -1865,6 +1944,7 @@ struct v4l2_plane_pix_format {
|
||||
* @flags: format flags (V4L2_PIX_FMT_FLAG_*)
|
||||
* @ycbcr_enc: enum v4l2_ycbcr_encoding, Y'CbCr encoding
|
||||
* @quantization: enum v4l2_quantization, colorspace quantization
|
||||
* @xfer_func: enum v4l2_xfer_func, colorspace transfer function
|
||||
*/
|
||||
struct v4l2_pix_format_mplane {
|
||||
__u32 width;
|
||||
@@ -1878,7 +1958,8 @@ struct v4l2_pix_format_mplane {
|
||||
__u8 flags;
|
||||
__u8 ycbcr_enc;
|
||||
__u8 quantization;
|
||||
__u8 reserved[8];
|
||||
__u8 xfer_func;
|
||||
__u8 reserved[7];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
/**
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE. */
|
||||
#include <linux/types.h>
|
||||
#include <linux/virtio_types.h>
|
||||
#include <linux/virtio_ids.h>
|
||||
#include <linux/virtio_config.h>
|
||||
|
||||
|
||||
@@ -32,10 +32,32 @@ struct cxl_ioctl_start_work {
|
||||
#define CXL_START_WORK_ALL (CXL_START_WORK_AMR |\
|
||||
CXL_START_WORK_NUM_IRQS)
|
||||
|
||||
|
||||
/* Possible modes that an afu can be in */
|
||||
#define CXL_MODE_DEDICATED 0x1
|
||||
#define CXL_MODE_DIRECTED 0x2
|
||||
|
||||
/* possible flags for the cxl_afu_id flags field */
|
||||
#define CXL_AFUID_FLAG_SLAVE 0x1 /* In directed-mode afu is in slave mode */
|
||||
|
||||
struct cxl_afu_id {
|
||||
__u64 flags; /* One of CXL_AFUID_FLAG_X */
|
||||
__u32 card_id;
|
||||
__u32 afu_offset;
|
||||
__u32 afu_mode; /* one of the CXL_MODE_X */
|
||||
__u32 reserved1;
|
||||
__u64 reserved2;
|
||||
__u64 reserved3;
|
||||
__u64 reserved4;
|
||||
__u64 reserved5;
|
||||
__u64 reserved6;
|
||||
};
|
||||
|
||||
/* ioctl numbers */
|
||||
#define CXL_MAGIC 0xCA
|
||||
#define CXL_IOCTL_START_WORK _IOW(CXL_MAGIC, 0x00, struct cxl_ioctl_start_work)
|
||||
#define CXL_IOCTL_GET_PROCESS_ELEMENT _IOR(CXL_MAGIC, 0x01, __u32)
|
||||
#define CXL_IOCTL_GET_AFU_ID _IOR(CXL_MAGIC, 0x02, struct cxl_afu_id)
|
||||
|
||||
#define CXL_READ_MIN_SIZE 0x1000 /* 4K */
|
||||
|
||||
|
||||
@@ -91,6 +91,7 @@ enum {
|
||||
|
||||
enum {
|
||||
IB_USER_VERBS_EX_CMD_QUERY_DEVICE = IB_USER_VERBS_CMD_QUERY_DEVICE,
|
||||
IB_USER_VERBS_EX_CMD_CREATE_CQ = IB_USER_VERBS_CMD_CREATE_CQ,
|
||||
IB_USER_VERBS_EX_CMD_CREATE_FLOW = IB_USER_VERBS_CMD_THRESHOLD,
|
||||
IB_USER_VERBS_EX_CMD_DESTROY_FLOW,
|
||||
};
|
||||
@@ -222,6 +223,8 @@ 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 */
|
||||
};
|
||||
|
||||
struct ib_uverbs_query_port {
|
||||
@@ -353,11 +356,27 @@ struct ib_uverbs_create_cq {
|
||||
__u64 driver_data[0];
|
||||
};
|
||||
|
||||
struct ib_uverbs_ex_create_cq {
|
||||
__u64 user_handle;
|
||||
__u32 cqe;
|
||||
__u32 comp_vector;
|
||||
__s32 comp_channel;
|
||||
__u32 comp_mask;
|
||||
__u32 flags;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct ib_uverbs_create_cq_resp {
|
||||
__u32 cq_handle;
|
||||
__u32 cqe;
|
||||
};
|
||||
|
||||
struct ib_uverbs_ex_create_cq_resp {
|
||||
struct ib_uverbs_create_cq_resp base;
|
||||
__u32 comp_mask;
|
||||
__u32 response_length;
|
||||
};
|
||||
|
||||
struct ib_uverbs_resize_cq {
|
||||
__u64 response;
|
||||
__u32 cq_handle;
|
||||
|
||||
@@ -0,0 +1,388 @@
|
||||
/*
|
||||
* uapi/sound/asoc.h -- ALSA SoC Firmware Controls and DAPM
|
||||
*
|
||||
* Copyright (C) 2012 Texas Instruments Inc.
|
||||
* Copyright (C) 2015 Intel Corporation.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* Simple file API to load FW that includes mixers, coefficients, DAPM graphs,
|
||||
* algorithms, equalisers, DAIs, widgets etc.
|
||||
*/
|
||||
|
||||
#ifndef __LINUX_UAPI_SND_ASOC_H
|
||||
#define __LINUX_UAPI_SND_ASOC_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <sound/asound.h>
|
||||
|
||||
/*
|
||||
* Maximum number of channels topology kcontrol can represent.
|
||||
*/
|
||||
#define SND_SOC_TPLG_MAX_CHAN 8
|
||||
|
||||
/*
|
||||
* Maximum number of PCM formats capability
|
||||
*/
|
||||
#define SND_SOC_TPLG_MAX_FORMATS 16
|
||||
|
||||
/*
|
||||
* Maximum number of PCM stream configs
|
||||
*/
|
||||
#define SND_SOC_TPLG_STREAM_CONFIG_MAX 8
|
||||
|
||||
/* individual kcontrol info types - can be mixed with other types */
|
||||
#define SND_SOC_TPLG_CTL_VOLSW 1
|
||||
#define SND_SOC_TPLG_CTL_VOLSW_SX 2
|
||||
#define SND_SOC_TPLG_CTL_VOLSW_XR_SX 3
|
||||
#define SND_SOC_TPLG_CTL_ENUM 4
|
||||
#define SND_SOC_TPLG_CTL_BYTES 5
|
||||
#define SND_SOC_TPLG_CTL_ENUM_VALUE 6
|
||||
#define SND_SOC_TPLG_CTL_RANGE 7
|
||||
#define SND_SOC_TPLG_CTL_STROBE 8
|
||||
|
||||
|
||||
/* individual widget kcontrol info types - can be mixed with other types */
|
||||
#define SND_SOC_TPLG_DAPM_CTL_VOLSW 64
|
||||
#define SND_SOC_TPLG_DAPM_CTL_ENUM_DOUBLE 65
|
||||
#define SND_SOC_TPLG_DAPM_CTL_ENUM_VIRT 66
|
||||
#define SND_SOC_TPLG_DAPM_CTL_ENUM_VALUE 67
|
||||
#define SND_SOC_TPLG_DAPM_CTL_PIN 68
|
||||
|
||||
/* DAPM widget types - add new items to the end */
|
||||
#define SND_SOC_TPLG_DAPM_INPUT 0
|
||||
#define SND_SOC_TPLG_DAPM_OUTPUT 1
|
||||
#define SND_SOC_TPLG_DAPM_MUX 2
|
||||
#define SND_SOC_TPLG_DAPM_MIXER 3
|
||||
#define SND_SOC_TPLG_DAPM_PGA 4
|
||||
#define SND_SOC_TPLG_DAPM_OUT_DRV 5
|
||||
#define SND_SOC_TPLG_DAPM_ADC 6
|
||||
#define SND_SOC_TPLG_DAPM_DAC 7
|
||||
#define SND_SOC_TPLG_DAPM_SWITCH 8
|
||||
#define SND_SOC_TPLG_DAPM_PRE 9
|
||||
#define SND_SOC_TPLG_DAPM_POST 10
|
||||
#define SND_SOC_TPLG_DAPM_AIF_IN 11
|
||||
#define SND_SOC_TPLG_DAPM_AIF_OUT 12
|
||||
#define SND_SOC_TPLG_DAPM_DAI_IN 13
|
||||
#define SND_SOC_TPLG_DAPM_DAI_OUT 14
|
||||
#define SND_SOC_TPLG_DAPM_DAI_LINK 15
|
||||
#define SND_SOC_TPLG_DAPM_LAST SND_SOC_TPLG_DAPM_DAI_LINK
|
||||
|
||||
/* Header magic number and string sizes */
|
||||
#define SND_SOC_TPLG_MAGIC 0x41536F43 /* ASoC */
|
||||
|
||||
/* string sizes */
|
||||
#define SND_SOC_TPLG_NUM_TEXTS 16
|
||||
|
||||
/* ABI version */
|
||||
#define SND_SOC_TPLG_ABI_VERSION 0x2
|
||||
|
||||
/* Max size of TLV data */
|
||||
#define SND_SOC_TPLG_TLV_SIZE 32
|
||||
|
||||
/*
|
||||
* File and Block header data types.
|
||||
* Add new generic and vendor types to end of list.
|
||||
* Generic types are handled by the core whilst vendors types are passed
|
||||
* to the component drivers for handling.
|
||||
*/
|
||||
#define SND_SOC_TPLG_TYPE_MIXER 1
|
||||
#define SND_SOC_TPLG_TYPE_BYTES 2
|
||||
#define SND_SOC_TPLG_TYPE_ENUM 3
|
||||
#define SND_SOC_TPLG_TYPE_DAPM_GRAPH 4
|
||||
#define SND_SOC_TPLG_TYPE_DAPM_WIDGET 5
|
||||
#define SND_SOC_TPLG_TYPE_DAI_LINK 6
|
||||
#define SND_SOC_TPLG_TYPE_PCM 7
|
||||
#define SND_SOC_TPLG_TYPE_MANIFEST 8
|
||||
#define SND_SOC_TPLG_TYPE_CODEC_LINK 9
|
||||
#define SND_SOC_TPLG_TYPE_MAX SND_SOC_TPLG_TYPE_CODEC_LINK
|
||||
|
||||
/* vendor block IDs - please add new vendor types to end */
|
||||
#define SND_SOC_TPLG_TYPE_VENDOR_FW 1000
|
||||
#define SND_SOC_TPLG_TYPE_VENDOR_CONFIG 1001
|
||||
#define SND_SOC_TPLG_TYPE_VENDOR_COEFF 1002
|
||||
#define SND_SOC_TPLG_TYPEVENDOR_CODEC 1003
|
||||
|
||||
#define SND_SOC_TPLG_STREAM_PLAYBACK 0
|
||||
#define SND_SOC_TPLG_STREAM_CAPTURE 1
|
||||
|
||||
/*
|
||||
* Block Header.
|
||||
* This header preceeds all object and object arrays below.
|
||||
*/
|
||||
struct snd_soc_tplg_hdr {
|
||||
__le32 magic; /* magic number */
|
||||
__le32 abi; /* ABI version */
|
||||
__le32 version; /* optional vendor specific version details */
|
||||
__le32 type; /* SND_SOC_TPLG_TYPE_ */
|
||||
__le32 size; /* size of this structure */
|
||||
__le32 vendor_type; /* optional vendor specific type info */
|
||||
__le32 payload_size; /* data bytes, excluding this header */
|
||||
__le32 index; /* identifier for block */
|
||||
__le32 count; /* number of elements in block */
|
||||
} __attribute__((packed));
|
||||
|
||||
/*
|
||||
* Private data.
|
||||
* All topology objects may have private data that can be used by the driver or
|
||||
* firmware. Core will ignore this data.
|
||||
*/
|
||||
struct snd_soc_tplg_private {
|
||||
__le32 size; /* in bytes of private data */
|
||||
char data[0];
|
||||
} __attribute__((packed));
|
||||
|
||||
/*
|
||||
* Kcontrol TLV data.
|
||||
*/
|
||||
struct snd_soc_tplg_ctl_tlv {
|
||||
__le32 size; /* in bytes aligned to 4 */
|
||||
__le32 numid; /* control element numeric identification */
|
||||
__le32 count; /* number of elem in data array */
|
||||
__le32 data[SND_SOC_TPLG_TLV_SIZE];
|
||||
} __attribute__((packed));
|
||||
|
||||
/*
|
||||
* Kcontrol channel data
|
||||
*/
|
||||
struct snd_soc_tplg_channel {
|
||||
__le32 size; /* in bytes of this structure */
|
||||
__le32 reg;
|
||||
__le32 shift;
|
||||
__le32 id; /* ID maps to Left, Right, LFE etc */
|
||||
} __attribute__((packed));
|
||||
|
||||
/*
|
||||
* Kcontrol Operations IDs
|
||||
*/
|
||||
struct snd_soc_tplg_kcontrol_ops_id {
|
||||
__le32 get;
|
||||
__le32 put;
|
||||
__le32 info;
|
||||
} __attribute__((packed));
|
||||
|
||||
/*
|
||||
* kcontrol header
|
||||
*/
|
||||
struct snd_soc_tplg_ctl_hdr {
|
||||
__le32 size; /* in bytes of this structure */
|
||||
__le32 type;
|
||||
char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
|
||||
__le32 access;
|
||||
struct snd_soc_tplg_kcontrol_ops_id ops;
|
||||
__le32 tlv_size; /* non zero means control has TLV data */
|
||||
} __attribute__((packed));
|
||||
|
||||
/*
|
||||
* Stream Capabilities
|
||||
*/
|
||||
struct snd_soc_tplg_stream_caps {
|
||||
__le32 size; /* in bytes of this structure */
|
||||
char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
|
||||
__le64 formats[SND_SOC_TPLG_MAX_FORMATS]; /* supported formats SNDRV_PCM_FMTBIT_* */
|
||||
__le32 rates; /* supported rates SNDRV_PCM_RATE_* */
|
||||
__le32 rate_min; /* min rate */
|
||||
__le32 rate_max; /* max rate */
|
||||
__le32 channels_min; /* min channels */
|
||||
__le32 channels_max; /* max channels */
|
||||
__le32 periods_min; /* min number of periods */
|
||||
__le32 periods_max; /* max number of periods */
|
||||
__le32 period_size_min; /* min period size bytes */
|
||||
__le32 period_size_max; /* max period size bytes */
|
||||
__le32 buffer_size_min; /* min buffer size bytes */
|
||||
__le32 buffer_size_max; /* max buffer size bytes */
|
||||
} __attribute__((packed));
|
||||
|
||||
/*
|
||||
* FE or BE Stream configuration supported by SW/FW
|
||||
*/
|
||||
struct snd_soc_tplg_stream {
|
||||
__le32 size; /* in bytes of this structure */
|
||||
__le64 format; /* SNDRV_PCM_FMTBIT_* */
|
||||
__le32 rate; /* SNDRV_PCM_RATE_* */
|
||||
__le32 period_bytes; /* size of period in bytes */
|
||||
__le32 buffer_bytes; /* size of buffer in bytes */
|
||||
__le32 channels; /* channels */
|
||||
__le32 tdm_slot; /* optional BE bitmask of supported TDM slots */
|
||||
__le32 dai_fmt; /* SND_SOC_DAIFMT_ */
|
||||
} __attribute__((packed));
|
||||
|
||||
/*
|
||||
* Duplex stream configuration supported by SW/FW.
|
||||
*/
|
||||
struct snd_soc_tplg_stream_config {
|
||||
__le32 size; /* in bytes of this structure */
|
||||
char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
|
||||
struct snd_soc_tplg_stream playback;
|
||||
struct snd_soc_tplg_stream capture;
|
||||
} __attribute__((packed));
|
||||
|
||||
/*
|
||||
* Manifest. List totals for each payload type. Not used in parsing, but will
|
||||
* be passed to the component driver before any other objects in order for any
|
||||
* global componnent resource allocations.
|
||||
*
|
||||
* File block representation for manifest :-
|
||||
* +-----------------------------------+----+
|
||||
* | struct snd_soc_tplg_hdr | 1 |
|
||||
* +-----------------------------------+----+
|
||||
* | struct snd_soc_tplg_manifest | 1 |
|
||||
* +-----------------------------------+----+
|
||||
*/
|
||||
struct snd_soc_tplg_manifest {
|
||||
__le32 size; /* in bytes of this structure */
|
||||
__le32 control_elems; /* number of control elements */
|
||||
__le32 widget_elems; /* number of widget elements */
|
||||
__le32 graph_elems; /* number of graph elements */
|
||||
__le32 dai_elems; /* number of DAI elements */
|
||||
__le32 dai_link_elems; /* number of DAI link elements */
|
||||
} __attribute__((packed));
|
||||
|
||||
/*
|
||||
* Mixer kcontrol.
|
||||
*
|
||||
* File block representation for mixer kcontrol :-
|
||||
* +-----------------------------------+----+
|
||||
* | struct snd_soc_tplg_hdr | 1 |
|
||||
* +-----------------------------------+----+
|
||||
* | struct snd_soc_tplg_mixer_control | N |
|
||||
* +-----------------------------------+----+
|
||||
*/
|
||||
struct snd_soc_tplg_mixer_control {
|
||||
struct snd_soc_tplg_ctl_hdr hdr;
|
||||
__le32 size; /* in bytes of this structure */
|
||||
__le32 min;
|
||||
__le32 max;
|
||||
__le32 platform_max;
|
||||
__le32 invert;
|
||||
__le32 num_channels;
|
||||
struct snd_soc_tplg_channel channel[SND_SOC_TPLG_MAX_CHAN];
|
||||
struct snd_soc_tplg_ctl_tlv tlv;
|
||||
struct snd_soc_tplg_private priv;
|
||||
} __attribute__((packed));
|
||||
|
||||
/*
|
||||
* Enumerated kcontrol
|
||||
*
|
||||
* File block representation for enum kcontrol :-
|
||||
* +-----------------------------------+----+
|
||||
* | struct snd_soc_tplg_hdr | 1 |
|
||||
* +-----------------------------------+----+
|
||||
* | struct snd_soc_tplg_enum_control | N |
|
||||
* +-----------------------------------+----+
|
||||
*/
|
||||
struct snd_soc_tplg_enum_control {
|
||||
struct snd_soc_tplg_ctl_hdr hdr;
|
||||
__le32 size; /* in bytes of this structure */
|
||||
__le32 num_channels;
|
||||
struct snd_soc_tplg_channel channel[SND_SOC_TPLG_MAX_CHAN];
|
||||
__le32 items;
|
||||
__le32 mask;
|
||||
__le32 count;
|
||||
char texts[SND_SOC_TPLG_NUM_TEXTS][SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
|
||||
__le32 values[SND_SOC_TPLG_NUM_TEXTS * SNDRV_CTL_ELEM_ID_NAME_MAXLEN / 4];
|
||||
struct snd_soc_tplg_private priv;
|
||||
} __attribute__((packed));
|
||||
|
||||
/*
|
||||
* Bytes kcontrol
|
||||
*
|
||||
* File block representation for bytes kcontrol :-
|
||||
* +-----------------------------------+----+
|
||||
* | struct snd_soc_tplg_hdr | 1 |
|
||||
* +-----------------------------------+----+
|
||||
* | struct snd_soc_tplg_bytes_control | N |
|
||||
* +-----------------------------------+----+
|
||||
*/
|
||||
struct snd_soc_tplg_bytes_control {
|
||||
struct snd_soc_tplg_ctl_hdr hdr;
|
||||
__le32 size; /* in bytes of this structure */
|
||||
__le32 max;
|
||||
__le32 mask;
|
||||
__le32 base;
|
||||
__le32 num_regs;
|
||||
struct snd_soc_tplg_private priv;
|
||||
} __attribute__((packed));
|
||||
|
||||
/*
|
||||
* DAPM Graph Element
|
||||
*
|
||||
* File block representation for DAPM graph elements :-
|
||||
* +-------------------------------------+----+
|
||||
* | struct snd_soc_tplg_hdr | 1 |
|
||||
* +-------------------------------------+----+
|
||||
* | struct snd_soc_tplg_dapm_graph_elem | N |
|
||||
* +-------------------------------------+----+
|
||||
*/
|
||||
struct snd_soc_tplg_dapm_graph_elem {
|
||||
char sink[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
|
||||
char control[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
|
||||
char source[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
|
||||
} __attribute__((packed));
|
||||
|
||||
/*
|
||||
* DAPM Widget.
|
||||
*
|
||||
* File block representation for DAPM widget :-
|
||||
* +-------------------------------------+-----+
|
||||
* | struct snd_soc_tplg_hdr | 1 |
|
||||
* +-------------------------------------+-----+
|
||||
* | struct snd_soc_tplg_dapm_widget | N |
|
||||
* +-------------------------------------+-----+
|
||||
* | struct snd_soc_tplg_enum_control | 0|1 |
|
||||
* | struct snd_soc_tplg_mixer_control | 0|N |
|
||||
* +-------------------------------------+-----+
|
||||
*
|
||||
* Optional enum or mixer control can be appended to the end of each widget
|
||||
* in the block.
|
||||
*/
|
||||
struct snd_soc_tplg_dapm_widget {
|
||||
__le32 size; /* in bytes of this structure */
|
||||
__le32 id; /* SND_SOC_DAPM_CTL */
|
||||
char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
|
||||
char sname[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
|
||||
|
||||
__le32 reg; /* negative reg = no direct dapm */
|
||||
__le32 shift; /* bits to shift */
|
||||
__le32 mask; /* non-shifted mask */
|
||||
__u32 invert; /* invert the power bit */
|
||||
__u32 ignore_suspend; /* kept enabled over suspend */
|
||||
__u16 event_flags;
|
||||
__u16 event_type;
|
||||
__u16 num_kcontrols;
|
||||
struct snd_soc_tplg_private priv;
|
||||
/*
|
||||
* kcontrols that relate to this widget
|
||||
* follow here after widget private data
|
||||
*/
|
||||
} __attribute__((packed));
|
||||
|
||||
struct snd_soc_tplg_pcm_cfg_caps {
|
||||
struct snd_soc_tplg_stream_caps caps;
|
||||
struct snd_soc_tplg_stream_config configs[SND_SOC_TPLG_STREAM_CONFIG_MAX];
|
||||
__le32 num_configs; /* number of configs */
|
||||
} __attribute__((packed));
|
||||
|
||||
/*
|
||||
* Describes SW/FW specific features of PCM or DAI link.
|
||||
*
|
||||
* File block representation for PCM/DAI-Link :-
|
||||
* +-----------------------------------+-----+
|
||||
* | struct snd_soc_tplg_hdr | 1 |
|
||||
* +-----------------------------------+-----+
|
||||
* | struct snd_soc_tplg_dapm_pcm_dai | N |
|
||||
* +-----------------------------------+-----+
|
||||
*/
|
||||
struct snd_soc_tplg_pcm_dai {
|
||||
__le32 size; /* in bytes of this structure */
|
||||
char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
|
||||
__le32 id; /* unique ID - used to match */
|
||||
__le32 playback; /* supports playback mode */
|
||||
__le32 capture; /* supports capture mode */
|
||||
__le32 compress; /* 1 = compressed; 0 = PCM */
|
||||
struct snd_soc_tplg_pcm_cfg_caps capconf[2]; /* capabilities and configs */
|
||||
} __attribute__((packed));
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* 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 program is distributed in the hope that 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.
|
||||
*/
|
||||
|
||||
#ifndef __UAPI_SOUND_TLV_H
|
||||
#define __UAPI_SOUND_TLV_H
|
||||
|
||||
#define SNDRV_CTL_TLVT_CONTAINER 0 /* one level down - group of TLVs */
|
||||
#define SNDRV_CTL_TLVT_DB_SCALE 1 /* dB scale */
|
||||
#define SNDRV_CTL_TLVT_DB_LINEAR 2 /* linear volume */
|
||||
#define SNDRV_CTL_TLVT_DB_RANGE 3 /* dB range container */
|
||||
#define SNDRV_CTL_TLVT_DB_MINMAX 4 /* dB scale with min/max */
|
||||
#define SNDRV_CTL_TLVT_DB_MINMAX_MUTE 5 /* dB scale with min/max with mute */
|
||||
|
||||
/*
|
||||
* channel-mapping TLV items
|
||||
* TLV length must match with num_channels
|
||||
*/
|
||||
#define SNDRV_CTL_TLVT_CHMAP_FIXED 0x101 /* fixed channel position */
|
||||
#define SNDRV_CTL_TLVT_CHMAP_VAR 0x102 /* channels freely swappable */
|
||||
#define SNDRV_CTL_TLVT_CHMAP_PAIRED 0x103 /* pair-wise swappable */
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user