Merge branch 'linus' into sched/urgent, to resolve conflicts
Conflicts: arch/arm64/kernel/entry.S arch/x86/Kconfig include/linux/sched/mm.h kernel/fork.c Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
73
include/uapi/linux/arm_sdei.h
Normal file
73
include/uapi/linux/arm_sdei.h
Normal file
@@ -0,0 +1,73 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
/* Copyright (C) 2017 Arm Ltd. */
|
||||
#ifndef _UAPI_LINUX_ARM_SDEI_H
|
||||
#define _UAPI_LINUX_ARM_SDEI_H
|
||||
|
||||
#define SDEI_1_0_FN_BASE 0xC4000020
|
||||
#define SDEI_1_0_MASK 0xFFFFFFE0
|
||||
#define SDEI_1_0_FN(n) (SDEI_1_0_FN_BASE + (n))
|
||||
|
||||
#define SDEI_1_0_FN_SDEI_VERSION SDEI_1_0_FN(0x00)
|
||||
#define SDEI_1_0_FN_SDEI_EVENT_REGISTER SDEI_1_0_FN(0x01)
|
||||
#define SDEI_1_0_FN_SDEI_EVENT_ENABLE SDEI_1_0_FN(0x02)
|
||||
#define SDEI_1_0_FN_SDEI_EVENT_DISABLE SDEI_1_0_FN(0x03)
|
||||
#define SDEI_1_0_FN_SDEI_EVENT_CONTEXT SDEI_1_0_FN(0x04)
|
||||
#define SDEI_1_0_FN_SDEI_EVENT_COMPLETE SDEI_1_0_FN(0x05)
|
||||
#define SDEI_1_0_FN_SDEI_EVENT_COMPLETE_AND_RESUME SDEI_1_0_FN(0x06)
|
||||
#define SDEI_1_0_FN_SDEI_EVENT_UNREGISTER SDEI_1_0_FN(0x07)
|
||||
#define SDEI_1_0_FN_SDEI_EVENT_STATUS SDEI_1_0_FN(0x08)
|
||||
#define SDEI_1_0_FN_SDEI_EVENT_GET_INFO SDEI_1_0_FN(0x09)
|
||||
#define SDEI_1_0_FN_SDEI_EVENT_ROUTING_SET SDEI_1_0_FN(0x0A)
|
||||
#define SDEI_1_0_FN_SDEI_PE_MASK SDEI_1_0_FN(0x0B)
|
||||
#define SDEI_1_0_FN_SDEI_PE_UNMASK SDEI_1_0_FN(0x0C)
|
||||
#define SDEI_1_0_FN_SDEI_INTERRUPT_BIND SDEI_1_0_FN(0x0D)
|
||||
#define SDEI_1_0_FN_SDEI_INTERRUPT_RELEASE SDEI_1_0_FN(0x0E)
|
||||
#define SDEI_1_0_FN_SDEI_PRIVATE_RESET SDEI_1_0_FN(0x11)
|
||||
#define SDEI_1_0_FN_SDEI_SHARED_RESET SDEI_1_0_FN(0x12)
|
||||
|
||||
#define SDEI_VERSION_MAJOR_SHIFT 48
|
||||
#define SDEI_VERSION_MAJOR_MASK 0x7fff
|
||||
#define SDEI_VERSION_MINOR_SHIFT 32
|
||||
#define SDEI_VERSION_MINOR_MASK 0xffff
|
||||
#define SDEI_VERSION_VENDOR_SHIFT 0
|
||||
#define SDEI_VERSION_VENDOR_MASK 0xffffffff
|
||||
|
||||
#define SDEI_VERSION_MAJOR(x) (x>>SDEI_VERSION_MAJOR_SHIFT & SDEI_VERSION_MAJOR_MASK)
|
||||
#define SDEI_VERSION_MINOR(x) (x>>SDEI_VERSION_MINOR_SHIFT & SDEI_VERSION_MINOR_MASK)
|
||||
#define SDEI_VERSION_VENDOR(x) (x>>SDEI_VERSION_VENDOR_SHIFT & SDEI_VERSION_VENDOR_MASK)
|
||||
|
||||
/* SDEI return values */
|
||||
#define SDEI_SUCCESS 0
|
||||
#define SDEI_NOT_SUPPORTED -1
|
||||
#define SDEI_INVALID_PARAMETERS -2
|
||||
#define SDEI_DENIED -3
|
||||
#define SDEI_PENDING -5
|
||||
#define SDEI_OUT_OF_RESOURCE -10
|
||||
|
||||
/* EVENT_REGISTER flags */
|
||||
#define SDEI_EVENT_REGISTER_RM_ANY 0
|
||||
#define SDEI_EVENT_REGISTER_RM_PE 1
|
||||
|
||||
/* EVENT_STATUS return value bits */
|
||||
#define SDEI_EVENT_STATUS_RUNNING 2
|
||||
#define SDEI_EVENT_STATUS_ENABLED 1
|
||||
#define SDEI_EVENT_STATUS_REGISTERED 0
|
||||
|
||||
/* EVENT_COMPLETE status values */
|
||||
#define SDEI_EV_HANDLED 0
|
||||
#define SDEI_EV_FAILED 1
|
||||
|
||||
/* GET_INFO values */
|
||||
#define SDEI_EVENT_INFO_EV_TYPE 0
|
||||
#define SDEI_EVENT_INFO_EV_SIGNALED 1
|
||||
#define SDEI_EVENT_INFO_EV_PRIORITY 2
|
||||
#define SDEI_EVENT_INFO_EV_ROUTING_MODE 3
|
||||
#define SDEI_EVENT_INFO_EV_ROUTING_AFF 4
|
||||
|
||||
/* and their results */
|
||||
#define SDEI_EVENT_TYPE_PRIVATE 0
|
||||
#define SDEI_EVENT_TYPE_SHARED 1
|
||||
#define SDEI_EVENT_PRIORITY_NORMAL 0
|
||||
#define SDEI_EVENT_PRIORITY_CRITICAL 1
|
||||
|
||||
#endif /* _UAPI_LINUX_ARM_SDEI_H */
|
644
include/uapi/linux/batadv_packet.h
Normal file
644
include/uapi/linux/batadv_packet.h
Normal file
@@ -0,0 +1,644 @@
|
||||
/* SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) */
|
||||
/* Copyright (C) 2007-2017 B.A.T.M.A.N. contributors:
|
||||
*
|
||||
* Marek Lindner, Simon Wunderlich
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef _UAPI_LINUX_BATADV_PACKET_H_
|
||||
#define _UAPI_LINUX_BATADV_PACKET_H_
|
||||
|
||||
#include <asm/byteorder.h>
|
||||
#include <linux/if_ether.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
/**
|
||||
* batadv_tp_is_error() - Check throughput meter return code for error
|
||||
* @n: throughput meter return code
|
||||
*
|
||||
* Return: 0 when not error was detected, != 0 otherwise
|
||||
*/
|
||||
#define batadv_tp_is_error(n) ((__u8)(n) > 127 ? 1 : 0)
|
||||
|
||||
/**
|
||||
* enum batadv_packettype - types for batman-adv encapsulated packets
|
||||
* @BATADV_IV_OGM: originator messages for B.A.T.M.A.N. IV
|
||||
* @BATADV_BCAST: broadcast packets carrying broadcast payload
|
||||
* @BATADV_CODED: network coded packets
|
||||
* @BATADV_ELP: echo location packets for B.A.T.M.A.N. V
|
||||
* @BATADV_OGM2: originator messages for B.A.T.M.A.N. V
|
||||
*
|
||||
* @BATADV_UNICAST: unicast packets carrying unicast payload traffic
|
||||
* @BATADV_UNICAST_FRAG: unicast packets carrying a fragment of the original
|
||||
* payload packet
|
||||
* @BATADV_UNICAST_4ADDR: unicast packet including the originator address of
|
||||
* the sender
|
||||
* @BATADV_ICMP: unicast packet like IP ICMP used for ping or traceroute
|
||||
* @BATADV_UNICAST_TVLV: unicast packet carrying TVLV containers
|
||||
*/
|
||||
enum batadv_packettype {
|
||||
/* 0x00 - 0x3f: local packets or special rules for handling */
|
||||
BATADV_IV_OGM = 0x00,
|
||||
BATADV_BCAST = 0x01,
|
||||
BATADV_CODED = 0x02,
|
||||
BATADV_ELP = 0x03,
|
||||
BATADV_OGM2 = 0x04,
|
||||
/* 0x40 - 0x7f: unicast */
|
||||
#define BATADV_UNICAST_MIN 0x40
|
||||
BATADV_UNICAST = 0x40,
|
||||
BATADV_UNICAST_FRAG = 0x41,
|
||||
BATADV_UNICAST_4ADDR = 0x42,
|
||||
BATADV_ICMP = 0x43,
|
||||
BATADV_UNICAST_TVLV = 0x44,
|
||||
#define BATADV_UNICAST_MAX 0x7f
|
||||
/* 0x80 - 0xff: reserved */
|
||||
};
|
||||
|
||||
/**
|
||||
* enum batadv_subtype - packet subtype for unicast4addr
|
||||
* @BATADV_P_DATA: user payload
|
||||
* @BATADV_P_DAT_DHT_GET: DHT request message
|
||||
* @BATADV_P_DAT_DHT_PUT: DHT store message
|
||||
* @BATADV_P_DAT_CACHE_REPLY: ARP reply generated by DAT
|
||||
*/
|
||||
enum batadv_subtype {
|
||||
BATADV_P_DATA = 0x01,
|
||||
BATADV_P_DAT_DHT_GET = 0x02,
|
||||
BATADV_P_DAT_DHT_PUT = 0x03,
|
||||
BATADV_P_DAT_CACHE_REPLY = 0x04,
|
||||
};
|
||||
|
||||
/* this file is included by batctl which needs these defines */
|
||||
#define BATADV_COMPAT_VERSION 15
|
||||
|
||||
/**
|
||||
* enum batadv_iv_flags - flags used in B.A.T.M.A.N. IV OGM packets
|
||||
* @BATADV_NOT_BEST_NEXT_HOP: flag is set when ogm packet is forwarded and was
|
||||
* previously received from someone else than the best neighbor.
|
||||
* @BATADV_PRIMARIES_FIRST_HOP: flag unused.
|
||||
* @BATADV_DIRECTLINK: flag is for the first hop or if rebroadcasted from a
|
||||
* one hop neighbor on the interface where it was originally received.
|
||||
*/
|
||||
enum batadv_iv_flags {
|
||||
BATADV_NOT_BEST_NEXT_HOP = 1UL << 0,
|
||||
BATADV_PRIMARIES_FIRST_HOP = 1UL << 1,
|
||||
BATADV_DIRECTLINK = 1UL << 2,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum batadv_icmp_packettype - ICMP message types
|
||||
* @BATADV_ECHO_REPLY: success reply to BATADV_ECHO_REQUEST
|
||||
* @BATADV_DESTINATION_UNREACHABLE: failure when route to destination not found
|
||||
* @BATADV_ECHO_REQUEST: request BATADV_ECHO_REPLY from destination
|
||||
* @BATADV_TTL_EXCEEDED: error after BATADV_ECHO_REQUEST traversed too many hops
|
||||
* @BATADV_PARAMETER_PROBLEM: return code for malformed messages
|
||||
* @BATADV_TP: throughput meter packet
|
||||
*/
|
||||
enum batadv_icmp_packettype {
|
||||
BATADV_ECHO_REPLY = 0,
|
||||
BATADV_DESTINATION_UNREACHABLE = 3,
|
||||
BATADV_ECHO_REQUEST = 8,
|
||||
BATADV_TTL_EXCEEDED = 11,
|
||||
BATADV_PARAMETER_PROBLEM = 12,
|
||||
BATADV_TP = 15,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum batadv_mcast_flags - flags for multicast capabilities and settings
|
||||
* @BATADV_MCAST_WANT_ALL_UNSNOOPABLES: we want all packets destined for
|
||||
* 224.0.0.0/24 or ff02::1
|
||||
* @BATADV_MCAST_WANT_ALL_IPV4: we want all IPv4 multicast packets
|
||||
* @BATADV_MCAST_WANT_ALL_IPV6: we want all IPv6 multicast packets
|
||||
*/
|
||||
enum batadv_mcast_flags {
|
||||
BATADV_MCAST_WANT_ALL_UNSNOOPABLES = 1UL << 0,
|
||||
BATADV_MCAST_WANT_ALL_IPV4 = 1UL << 1,
|
||||
BATADV_MCAST_WANT_ALL_IPV6 = 1UL << 2,
|
||||
};
|
||||
|
||||
/* tt data subtypes */
|
||||
#define BATADV_TT_DATA_TYPE_MASK 0x0F
|
||||
|
||||
/**
|
||||
* enum batadv_tt_data_flags - flags for tt data tvlv
|
||||
* @BATADV_TT_OGM_DIFF: TT diff propagated through OGM
|
||||
* @BATADV_TT_REQUEST: TT request message
|
||||
* @BATADV_TT_RESPONSE: TT response message
|
||||
* @BATADV_TT_FULL_TABLE: contains full table to replace existing table
|
||||
*/
|
||||
enum batadv_tt_data_flags {
|
||||
BATADV_TT_OGM_DIFF = 1UL << 0,
|
||||
BATADV_TT_REQUEST = 1UL << 1,
|
||||
BATADV_TT_RESPONSE = 1UL << 2,
|
||||
BATADV_TT_FULL_TABLE = 1UL << 4,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum batadv_vlan_flags - flags for the four MSB of any vlan ID field
|
||||
* @BATADV_VLAN_HAS_TAG: whether the field contains a valid vlan tag or not
|
||||
*/
|
||||
enum batadv_vlan_flags {
|
||||
BATADV_VLAN_HAS_TAG = 1UL << 15,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum batadv_bla_claimframe - claim frame types for the bridge loop avoidance
|
||||
* @BATADV_CLAIM_TYPE_CLAIM: claim of a client mac address
|
||||
* @BATADV_CLAIM_TYPE_UNCLAIM: unclaim of a client mac address
|
||||
* @BATADV_CLAIM_TYPE_ANNOUNCE: announcement of backbone with current crc
|
||||
* @BATADV_CLAIM_TYPE_REQUEST: request of full claim table
|
||||
* @BATADV_CLAIM_TYPE_LOOPDETECT: mesh-traversing loop detect packet
|
||||
*/
|
||||
enum batadv_bla_claimframe {
|
||||
BATADV_CLAIM_TYPE_CLAIM = 0x00,
|
||||
BATADV_CLAIM_TYPE_UNCLAIM = 0x01,
|
||||
BATADV_CLAIM_TYPE_ANNOUNCE = 0x02,
|
||||
BATADV_CLAIM_TYPE_REQUEST = 0x03,
|
||||
BATADV_CLAIM_TYPE_LOOPDETECT = 0x04,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum batadv_tvlv_type - tvlv type definitions
|
||||
* @BATADV_TVLV_GW: gateway tvlv
|
||||
* @BATADV_TVLV_DAT: distributed arp table tvlv
|
||||
* @BATADV_TVLV_NC: network coding tvlv
|
||||
* @BATADV_TVLV_TT: translation table tvlv
|
||||
* @BATADV_TVLV_ROAM: roaming advertisement tvlv
|
||||
* @BATADV_TVLV_MCAST: multicast capability tvlv
|
||||
*/
|
||||
enum batadv_tvlv_type {
|
||||
BATADV_TVLV_GW = 0x01,
|
||||
BATADV_TVLV_DAT = 0x02,
|
||||
BATADV_TVLV_NC = 0x03,
|
||||
BATADV_TVLV_TT = 0x04,
|
||||
BATADV_TVLV_ROAM = 0x05,
|
||||
BATADV_TVLV_MCAST = 0x06,
|
||||
};
|
||||
|
||||
#pragma pack(2)
|
||||
/* the destination hardware field in the ARP frame is used to
|
||||
* transport the claim type and the group id
|
||||
*/
|
||||
struct batadv_bla_claim_dst {
|
||||
__u8 magic[3]; /* FF:43:05 */
|
||||
__u8 type; /* bla_claimframe */
|
||||
__be16 group; /* group id */
|
||||
};
|
||||
|
||||
#pragma pack()
|
||||
|
||||
/**
|
||||
* struct batadv_ogm_packet - ogm (routing protocol) packet
|
||||
* @packet_type: batman-adv packet type, part of the general header
|
||||
* @version: batman-adv protocol version, part of the genereal header
|
||||
* @ttl: time to live for this packet, part of the genereal header
|
||||
* @flags: contains routing relevant flags - see enum batadv_iv_flags
|
||||
* @seqno: sequence identification
|
||||
* @orig: address of the source node
|
||||
* @prev_sender: address of the previous sender
|
||||
* @reserved: reserved byte for alignment
|
||||
* @tq: transmission quality
|
||||
* @tvlv_len: length of tvlv data following the ogm header
|
||||
*/
|
||||
struct batadv_ogm_packet {
|
||||
__u8 packet_type;
|
||||
__u8 version;
|
||||
__u8 ttl;
|
||||
__u8 flags;
|
||||
__be32 seqno;
|
||||
__u8 orig[ETH_ALEN];
|
||||
__u8 prev_sender[ETH_ALEN];
|
||||
__u8 reserved;
|
||||
__u8 tq;
|
||||
__be16 tvlv_len;
|
||||
/* __packed is not needed as the struct size is divisible by 4,
|
||||
* and the largest data type in this struct has a size of 4.
|
||||
*/
|
||||
};
|
||||
|
||||
#define BATADV_OGM_HLEN sizeof(struct batadv_ogm_packet)
|
||||
|
||||
/**
|
||||
* struct batadv_ogm2_packet - ogm2 (routing protocol) packet
|
||||
* @packet_type: batman-adv packet type, part of the general header
|
||||
* @version: batman-adv protocol version, part of the general header
|
||||
* @ttl: time to live for this packet, part of the general header
|
||||
* @flags: reseved for routing relevant flags - currently always 0
|
||||
* @seqno: sequence number
|
||||
* @orig: originator mac address
|
||||
* @tvlv_len: length of the appended tvlv buffer (in bytes)
|
||||
* @throughput: the currently flooded path throughput
|
||||
*/
|
||||
struct batadv_ogm2_packet {
|
||||
__u8 packet_type;
|
||||
__u8 version;
|
||||
__u8 ttl;
|
||||
__u8 flags;
|
||||
__be32 seqno;
|
||||
__u8 orig[ETH_ALEN];
|
||||
__be16 tvlv_len;
|
||||
__be32 throughput;
|
||||
/* __packed is not needed as the struct size is divisible by 4,
|
||||
* and the largest data type in this struct has a size of 4.
|
||||
*/
|
||||
};
|
||||
|
||||
#define BATADV_OGM2_HLEN sizeof(struct batadv_ogm2_packet)
|
||||
|
||||
/**
|
||||
* struct batadv_elp_packet - elp (neighbor discovery) packet
|
||||
* @packet_type: batman-adv packet type, part of the general header
|
||||
* @version: batman-adv protocol version, part of the genereal header
|
||||
* @orig: originator mac address
|
||||
* @seqno: sequence number
|
||||
* @elp_interval: currently used ELP sending interval in ms
|
||||
*/
|
||||
struct batadv_elp_packet {
|
||||
__u8 packet_type;
|
||||
__u8 version;
|
||||
__u8 orig[ETH_ALEN];
|
||||
__be32 seqno;
|
||||
__be32 elp_interval;
|
||||
};
|
||||
|
||||
#define BATADV_ELP_HLEN sizeof(struct batadv_elp_packet)
|
||||
|
||||
/**
|
||||
* struct batadv_icmp_header - common members among all the ICMP packets
|
||||
* @packet_type: batman-adv packet type, part of the general header
|
||||
* @version: batman-adv protocol version, part of the genereal header
|
||||
* @ttl: time to live for this packet, part of the genereal header
|
||||
* @msg_type: ICMP packet type
|
||||
* @dst: address of the destination node
|
||||
* @orig: address of the source node
|
||||
* @uid: local ICMP socket identifier
|
||||
* @align: not used - useful for alignment purposes only
|
||||
*
|
||||
* This structure is used for ICMP packets parsing only and it is never sent
|
||||
* over the wire. The alignment field at the end is there to ensure that
|
||||
* members are padded the same way as they are in real packets.
|
||||
*/
|
||||
struct batadv_icmp_header {
|
||||
__u8 packet_type;
|
||||
__u8 version;
|
||||
__u8 ttl;
|
||||
__u8 msg_type; /* see ICMP message types above */
|
||||
__u8 dst[ETH_ALEN];
|
||||
__u8 orig[ETH_ALEN];
|
||||
__u8 uid;
|
||||
__u8 align[3];
|
||||
};
|
||||
|
||||
/**
|
||||
* struct batadv_icmp_packet - ICMP packet
|
||||
* @packet_type: batman-adv packet type, part of the general header
|
||||
* @version: batman-adv protocol version, part of the genereal header
|
||||
* @ttl: time to live for this packet, part of the genereal header
|
||||
* @msg_type: ICMP packet type
|
||||
* @dst: address of the destination node
|
||||
* @orig: address of the source node
|
||||
* @uid: local ICMP socket identifier
|
||||
* @reserved: not used - useful for alignment
|
||||
* @seqno: ICMP sequence number
|
||||
*/
|
||||
struct batadv_icmp_packet {
|
||||
__u8 packet_type;
|
||||
__u8 version;
|
||||
__u8 ttl;
|
||||
__u8 msg_type; /* see ICMP message types above */
|
||||
__u8 dst[ETH_ALEN];
|
||||
__u8 orig[ETH_ALEN];
|
||||
__u8 uid;
|
||||
__u8 reserved;
|
||||
__be16 seqno;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct batadv_icmp_tp_packet - ICMP TP Meter packet
|
||||
* @packet_type: batman-adv packet type, part of the general header
|
||||
* @version: batman-adv protocol version, part of the genereal header
|
||||
* @ttl: time to live for this packet, part of the genereal header
|
||||
* @msg_type: ICMP packet type
|
||||
* @dst: address of the destination node
|
||||
* @orig: address of the source node
|
||||
* @uid: local ICMP socket identifier
|
||||
* @subtype: TP packet subtype (see batadv_icmp_tp_subtype)
|
||||
* @session: TP session identifier
|
||||
* @seqno: the TP sequence number
|
||||
* @timestamp: time when the packet has been sent. This value is filled in a
|
||||
* TP_MSG and echoed back in the next TP_ACK so that the sender can compute the
|
||||
* RTT. Since it is read only by the host which wrote it, there is no need to
|
||||
* store it using network order
|
||||
*/
|
||||
struct batadv_icmp_tp_packet {
|
||||
__u8 packet_type;
|
||||
__u8 version;
|
||||
__u8 ttl;
|
||||
__u8 msg_type; /* see ICMP message types above */
|
||||
__u8 dst[ETH_ALEN];
|
||||
__u8 orig[ETH_ALEN];
|
||||
__u8 uid;
|
||||
__u8 subtype;
|
||||
__u8 session[2];
|
||||
__be32 seqno;
|
||||
__be32 timestamp;
|
||||
};
|
||||
|
||||
/**
|
||||
* enum batadv_icmp_tp_subtype - ICMP TP Meter packet subtypes
|
||||
* @BATADV_TP_MSG: Msg from sender to receiver
|
||||
* @BATADV_TP_ACK: acknowledgment from receiver to sender
|
||||
*/
|
||||
enum batadv_icmp_tp_subtype {
|
||||
BATADV_TP_MSG = 0,
|
||||
BATADV_TP_ACK,
|
||||
};
|
||||
|
||||
#define BATADV_RR_LEN 16
|
||||
|
||||
/**
|
||||
* struct batadv_icmp_packet_rr - ICMP RouteRecord packet
|
||||
* @packet_type: batman-adv packet type, part of the general header
|
||||
* @version: batman-adv protocol version, part of the genereal header
|
||||
* @ttl: time to live for this packet, part of the genereal header
|
||||
* @msg_type: ICMP packet type
|
||||
* @dst: address of the destination node
|
||||
* @orig: address of the source node
|
||||
* @uid: local ICMP socket identifier
|
||||
* @rr_cur: number of entries the rr array
|
||||
* @seqno: ICMP sequence number
|
||||
* @rr: route record array
|
||||
*/
|
||||
struct batadv_icmp_packet_rr {
|
||||
__u8 packet_type;
|
||||
__u8 version;
|
||||
__u8 ttl;
|
||||
__u8 msg_type; /* see ICMP message types above */
|
||||
__u8 dst[ETH_ALEN];
|
||||
__u8 orig[ETH_ALEN];
|
||||
__u8 uid;
|
||||
__u8 rr_cur;
|
||||
__be16 seqno;
|
||||
__u8 rr[BATADV_RR_LEN][ETH_ALEN];
|
||||
};
|
||||
|
||||
#define BATADV_ICMP_MAX_PACKET_SIZE sizeof(struct batadv_icmp_packet_rr)
|
||||
|
||||
/* All packet headers in front of an ethernet header have to be completely
|
||||
* divisible by 2 but not by 4 to make the payload after the ethernet
|
||||
* header again 4 bytes boundary aligned.
|
||||
*
|
||||
* A packing of 2 is necessary to avoid extra padding at the end of the struct
|
||||
* caused by a structure member which is larger than two bytes. Otherwise
|
||||
* the structure would not fulfill the previously mentioned rule to avoid the
|
||||
* misalignment of the payload after the ethernet header. It may also lead to
|
||||
* leakage of information when the padding it not initialized before sending.
|
||||
*/
|
||||
#pragma pack(2)
|
||||
|
||||
/**
|
||||
* struct batadv_unicast_packet - unicast packet for network payload
|
||||
* @packet_type: batman-adv packet type, part of the general header
|
||||
* @version: batman-adv protocol version, part of the genereal header
|
||||
* @ttl: time to live for this packet, part of the genereal header
|
||||
* @ttvn: translation table version number
|
||||
* @dest: originator destination of the unicast packet
|
||||
*/
|
||||
struct batadv_unicast_packet {
|
||||
__u8 packet_type;
|
||||
__u8 version;
|
||||
__u8 ttl;
|
||||
__u8 ttvn; /* destination translation table version number */
|
||||
__u8 dest[ETH_ALEN];
|
||||
/* "4 bytes boundary + 2 bytes" long to make the payload after the
|
||||
* following ethernet header again 4 bytes boundary aligned
|
||||
*/
|
||||
};
|
||||
|
||||
/**
|
||||
* struct batadv_unicast_4addr_packet - extended unicast packet
|
||||
* @u: common unicast packet header
|
||||
* @src: address of the source
|
||||
* @subtype: packet subtype
|
||||
* @reserved: reserved byte for alignment
|
||||
*/
|
||||
struct batadv_unicast_4addr_packet {
|
||||
struct batadv_unicast_packet u;
|
||||
__u8 src[ETH_ALEN];
|
||||
__u8 subtype;
|
||||
__u8 reserved;
|
||||
/* "4 bytes boundary + 2 bytes" long to make the payload after the
|
||||
* following ethernet header again 4 bytes boundary aligned
|
||||
*/
|
||||
};
|
||||
|
||||
/**
|
||||
* struct batadv_frag_packet - fragmented packet
|
||||
* @packet_type: batman-adv packet type, part of the general header
|
||||
* @version: batman-adv protocol version, part of the genereal header
|
||||
* @ttl: time to live for this packet, part of the genereal header
|
||||
* @dest: final destination used when routing fragments
|
||||
* @orig: originator of the fragment used when merging the packet
|
||||
* @no: fragment number within this sequence
|
||||
* @priority: priority of frame, from ToS IP precedence or 802.1p
|
||||
* @reserved: reserved byte for alignment
|
||||
* @seqno: sequence identification
|
||||
* @total_size: size of the merged packet
|
||||
*/
|
||||
struct batadv_frag_packet {
|
||||
__u8 packet_type;
|
||||
__u8 version; /* batman version field */
|
||||
__u8 ttl;
|
||||
#if defined(__BIG_ENDIAN_BITFIELD)
|
||||
__u8 no:4;
|
||||
__u8 priority:3;
|
||||
__u8 reserved:1;
|
||||
#elif defined(__LITTLE_ENDIAN_BITFIELD)
|
||||
__u8 reserved:1;
|
||||
__u8 priority:3;
|
||||
__u8 no:4;
|
||||
#else
|
||||
#error "unknown bitfield endianness"
|
||||
#endif
|
||||
__u8 dest[ETH_ALEN];
|
||||
__u8 orig[ETH_ALEN];
|
||||
__be16 seqno;
|
||||
__be16 total_size;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct batadv_bcast_packet - broadcast packet for network payload
|
||||
* @packet_type: batman-adv packet type, part of the general header
|
||||
* @version: batman-adv protocol version, part of the genereal header
|
||||
* @ttl: time to live for this packet, part of the genereal header
|
||||
* @reserved: reserved byte for alignment
|
||||
* @seqno: sequence identification
|
||||
* @orig: originator of the broadcast packet
|
||||
*/
|
||||
struct batadv_bcast_packet {
|
||||
__u8 packet_type;
|
||||
__u8 version; /* batman version field */
|
||||
__u8 ttl;
|
||||
__u8 reserved;
|
||||
__be32 seqno;
|
||||
__u8 orig[ETH_ALEN];
|
||||
/* "4 bytes boundary + 2 bytes" long to make the payload after the
|
||||
* following ethernet header again 4 bytes boundary aligned
|
||||
*/
|
||||
};
|
||||
|
||||
/**
|
||||
* struct batadv_coded_packet - network coded packet
|
||||
* @packet_type: batman-adv packet type, part of the general header
|
||||
* @version: batman-adv protocol version, part of the genereal header
|
||||
* @ttl: time to live for this packet, part of the genereal header
|
||||
* @first_source: original source of first included packet
|
||||
* @first_orig_dest: original destinal of first included packet
|
||||
* @first_crc: checksum of first included packet
|
||||
* @first_ttvn: tt-version number of first included packet
|
||||
* @second_ttl: ttl of second packet
|
||||
* @second_dest: second receiver of this coded packet
|
||||
* @second_source: original source of second included packet
|
||||
* @second_orig_dest: original destination of second included packet
|
||||
* @second_crc: checksum of second included packet
|
||||
* @second_ttvn: tt version number of second included packet
|
||||
* @coded_len: length of network coded part of the payload
|
||||
*/
|
||||
struct batadv_coded_packet {
|
||||
__u8 packet_type;
|
||||
__u8 version; /* batman version field */
|
||||
__u8 ttl;
|
||||
__u8 first_ttvn;
|
||||
/* __u8 first_dest[ETH_ALEN]; - saved in mac header destination */
|
||||
__u8 first_source[ETH_ALEN];
|
||||
__u8 first_orig_dest[ETH_ALEN];
|
||||
__be32 first_crc;
|
||||
__u8 second_ttl;
|
||||
__u8 second_ttvn;
|
||||
__u8 second_dest[ETH_ALEN];
|
||||
__u8 second_source[ETH_ALEN];
|
||||
__u8 second_orig_dest[ETH_ALEN];
|
||||
__be32 second_crc;
|
||||
__be16 coded_len;
|
||||
};
|
||||
|
||||
#pragma pack()
|
||||
|
||||
/**
|
||||
* struct batadv_unicast_tvlv_packet - generic unicast packet with tvlv payload
|
||||
* @packet_type: batman-adv packet type, part of the general header
|
||||
* @version: batman-adv protocol version, part of the genereal header
|
||||
* @ttl: time to live for this packet, part of the genereal header
|
||||
* @reserved: reserved field (for packet alignment)
|
||||
* @src: address of the source
|
||||
* @dst: address of the destination
|
||||
* @tvlv_len: length of tvlv data following the unicast tvlv header
|
||||
* @align: 2 bytes to align the header to a 4 byte boundary
|
||||
*/
|
||||
struct batadv_unicast_tvlv_packet {
|
||||
__u8 packet_type;
|
||||
__u8 version; /* batman version field */
|
||||
__u8 ttl;
|
||||
__u8 reserved;
|
||||
__u8 dst[ETH_ALEN];
|
||||
__u8 src[ETH_ALEN];
|
||||
__be16 tvlv_len;
|
||||
__u16 align;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct batadv_tvlv_hdr - base tvlv header struct
|
||||
* @type: tvlv container type (see batadv_tvlv_type)
|
||||
* @version: tvlv container version
|
||||
* @len: tvlv container length
|
||||
*/
|
||||
struct batadv_tvlv_hdr {
|
||||
__u8 type;
|
||||
__u8 version;
|
||||
__be16 len;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct batadv_tvlv_gateway_data - gateway data propagated through gw tvlv
|
||||
* container
|
||||
* @bandwidth_down: advertised uplink download bandwidth
|
||||
* @bandwidth_up: advertised uplink upload bandwidth
|
||||
*/
|
||||
struct batadv_tvlv_gateway_data {
|
||||
__be32 bandwidth_down;
|
||||
__be32 bandwidth_up;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct batadv_tvlv_tt_data - tt data propagated through the tt tvlv container
|
||||
* @flags: translation table flags (see batadv_tt_data_flags)
|
||||
* @ttvn: translation table version number
|
||||
* @num_vlan: number of announced VLANs. In the TVLV this struct is followed by
|
||||
* one batadv_tvlv_tt_vlan_data object per announced vlan
|
||||
*/
|
||||
struct batadv_tvlv_tt_data {
|
||||
__u8 flags;
|
||||
__u8 ttvn;
|
||||
__be16 num_vlan;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct batadv_tvlv_tt_vlan_data - vlan specific tt data propagated through
|
||||
* the tt tvlv container
|
||||
* @crc: crc32 checksum of the entries belonging to this vlan
|
||||
* @vid: vlan identifier
|
||||
* @reserved: unused, useful for alignment purposes
|
||||
*/
|
||||
struct batadv_tvlv_tt_vlan_data {
|
||||
__be32 crc;
|
||||
__be16 vid;
|
||||
__u16 reserved;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct batadv_tvlv_tt_change - translation table diff data
|
||||
* @flags: status indicators concerning the non-mesh client (see
|
||||
* batadv_tt_client_flags)
|
||||
* @reserved: reserved field - useful for alignment purposes only
|
||||
* @addr: mac address of non-mesh client that triggered this tt change
|
||||
* @vid: VLAN identifier
|
||||
*/
|
||||
struct batadv_tvlv_tt_change {
|
||||
__u8 flags;
|
||||
__u8 reserved[3];
|
||||
__u8 addr[ETH_ALEN];
|
||||
__be16 vid;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct batadv_tvlv_roam_adv - roaming advertisement
|
||||
* @client: mac address of roaming client
|
||||
* @vid: VLAN identifier
|
||||
*/
|
||||
struct batadv_tvlv_roam_adv {
|
||||
__u8 client[ETH_ALEN];
|
||||
__be16 vid;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct batadv_tvlv_mcast_data - payload of a multicast tvlv
|
||||
* @flags: multicast flags announced by the orig node
|
||||
* @reserved: reserved field
|
||||
*/
|
||||
struct batadv_tvlv_mcast_data {
|
||||
__u8 flags;
|
||||
__u8 reserved[3];
|
||||
};
|
||||
|
||||
#endif /* _UAPI_LINUX_BATADV_PACKET_H_ */
|
@@ -1,18 +1,25 @@
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
/* Copyright (C) 2016-2017 B.A.T.M.A.N. contributors:
|
||||
*
|
||||
* Matthias Schiffer
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef _UAPI_LINUX_BATMAN_ADV_H_
|
||||
|
@@ -17,7 +17,7 @@
|
||||
#define BPF_ALU64 0x07 /* alu mode in double word width */
|
||||
|
||||
/* ld/ldx fields */
|
||||
#define BPF_DW 0x18 /* double word */
|
||||
#define BPF_DW 0x18 /* double word (64-bit) */
|
||||
#define BPF_XADD 0xc0 /* exclusive add */
|
||||
|
||||
/* alu/jmp fields */
|
||||
@@ -197,8 +197,14 @@ enum bpf_attach_type {
|
||||
*/
|
||||
#define BPF_F_STRICT_ALIGNMENT (1U << 0)
|
||||
|
||||
/* when bpf_ldimm64->src_reg == BPF_PSEUDO_MAP_FD, bpf_ldimm64->imm == fd */
|
||||
#define BPF_PSEUDO_MAP_FD 1
|
||||
|
||||
/* when bpf_call->src_reg == BPF_PSEUDO_CALL, bpf_call->imm == pc-relative
|
||||
* offset to another bpf function
|
||||
*/
|
||||
#define BPF_PSEUDO_CALL 1
|
||||
|
||||
/* flags for BPF_MAP_UPDATE_ELEM command */
|
||||
#define BPF_ANY 0 /* create new element or update existing */
|
||||
#define BPF_NOEXIST 1 /* create new element if it didn't exist */
|
||||
@@ -239,6 +245,7 @@ union bpf_attr {
|
||||
* BPF_F_NUMA_NODE is set).
|
||||
*/
|
||||
char map_name[BPF_OBJ_NAME_LEN];
|
||||
__u32 map_ifindex; /* ifindex of netdev to create on */
|
||||
};
|
||||
|
||||
struct { /* anonymous struct used by BPF_MAP_*_ELEM commands */
|
||||
@@ -635,6 +642,14 @@ union bpf_attr {
|
||||
* @optlen: length of optval in bytes
|
||||
* Return: 0 or negative error
|
||||
*
|
||||
* int bpf_sock_ops_cb_flags_set(bpf_sock_ops, flags)
|
||||
* Set callback flags for sock_ops
|
||||
* @bpf_sock_ops: pointer to bpf_sock_ops_kern struct
|
||||
* @flags: flags value
|
||||
* Return: 0 for no error
|
||||
* -EINVAL if there is no full tcp socket
|
||||
* bits in flags that are not supported by current kernel
|
||||
*
|
||||
* int bpf_skb_adjust_room(skb, len_diff, mode, flags)
|
||||
* Grow or shrink room in sk_buff.
|
||||
* @skb: pointer to skb
|
||||
@@ -677,6 +692,10 @@ union bpf_attr {
|
||||
* @buf: buf to fill
|
||||
* @buf_size: size of the buf
|
||||
* Return : 0 on success or negative error code
|
||||
*
|
||||
* int bpf_override_return(pt_regs, rc)
|
||||
* @pt_regs: pointer to struct pt_regs
|
||||
* @rc: the return value to set
|
||||
*/
|
||||
#define __BPF_FUNC_MAPPER(FN) \
|
||||
FN(unspec), \
|
||||
@@ -736,7 +755,9 @@ union bpf_attr {
|
||||
FN(xdp_adjust_meta), \
|
||||
FN(perf_event_read_value), \
|
||||
FN(perf_prog_read_value), \
|
||||
FN(getsockopt),
|
||||
FN(getsockopt), \
|
||||
FN(override_return), \
|
||||
FN(sock_ops_cb_flags_set),
|
||||
|
||||
/* integer value in 'imm' field of BPF_CALL instruction selects which helper
|
||||
* function eBPF program intends to call
|
||||
@@ -888,6 +909,9 @@ struct xdp_md {
|
||||
__u32 data;
|
||||
__u32 data_end;
|
||||
__u32 data_meta;
|
||||
/* Below access go through struct xdp_rxq_info */
|
||||
__u32 ingress_ifindex; /* rxq->dev->ifindex */
|
||||
__u32 rx_queue_index; /* rxq->queue_index */
|
||||
};
|
||||
|
||||
enum sk_action {
|
||||
@@ -910,6 +934,9 @@ struct bpf_prog_info {
|
||||
__u32 nr_map_ids;
|
||||
__aligned_u64 map_ids;
|
||||
char name[BPF_OBJ_NAME_LEN];
|
||||
__u32 ifindex;
|
||||
__u64 netns_dev;
|
||||
__u64 netns_ino;
|
||||
} __attribute__((aligned(8)));
|
||||
|
||||
struct bpf_map_info {
|
||||
@@ -920,6 +947,9 @@ struct bpf_map_info {
|
||||
__u32 max_entries;
|
||||
__u32 map_flags;
|
||||
char name[BPF_OBJ_NAME_LEN];
|
||||
__u32 ifindex;
|
||||
__u64 netns_dev;
|
||||
__u64 netns_ino;
|
||||
} __attribute__((aligned(8)));
|
||||
|
||||
/* User bpf_sock_ops struct to access socket values and specify request ops
|
||||
@@ -931,8 +961,9 @@ struct bpf_map_info {
|
||||
struct bpf_sock_ops {
|
||||
__u32 op;
|
||||
union {
|
||||
__u32 reply;
|
||||
__u32 replylong[4];
|
||||
__u32 args[4]; /* Optionally passed to bpf program */
|
||||
__u32 reply; /* Returned by bpf program */
|
||||
__u32 replylong[4]; /* Optionally returned by bpf prog */
|
||||
};
|
||||
__u32 family;
|
||||
__u32 remote_ip4; /* Stored in network byte order */
|
||||
@@ -941,8 +972,45 @@ struct bpf_sock_ops {
|
||||
__u32 local_ip6[4]; /* Stored in network byte order */
|
||||
__u32 remote_port; /* Stored in network byte order */
|
||||
__u32 local_port; /* stored in host byte order */
|
||||
__u32 is_fullsock; /* Some TCP fields are only valid if
|
||||
* there is a full socket. If not, the
|
||||
* fields read as zero.
|
||||
*/
|
||||
__u32 snd_cwnd;
|
||||
__u32 srtt_us; /* Averaged RTT << 3 in usecs */
|
||||
__u32 bpf_sock_ops_cb_flags; /* flags defined in uapi/linux/tcp.h */
|
||||
__u32 state;
|
||||
__u32 rtt_min;
|
||||
__u32 snd_ssthresh;
|
||||
__u32 rcv_nxt;
|
||||
__u32 snd_nxt;
|
||||
__u32 snd_una;
|
||||
__u32 mss_cache;
|
||||
__u32 ecn_flags;
|
||||
__u32 rate_delivered;
|
||||
__u32 rate_interval_us;
|
||||
__u32 packets_out;
|
||||
__u32 retrans_out;
|
||||
__u32 total_retrans;
|
||||
__u32 segs_in;
|
||||
__u32 data_segs_in;
|
||||
__u32 segs_out;
|
||||
__u32 data_segs_out;
|
||||
__u32 lost_out;
|
||||
__u32 sacked_out;
|
||||
__u32 sk_txhash;
|
||||
__u64 bytes_received;
|
||||
__u64 bytes_acked;
|
||||
};
|
||||
|
||||
/* Definitions for bpf_sock_ops_cb_flags */
|
||||
#define BPF_SOCK_OPS_RTO_CB_FLAG (1<<0)
|
||||
#define BPF_SOCK_OPS_RETRANS_CB_FLAG (1<<1)
|
||||
#define BPF_SOCK_OPS_STATE_CB_FLAG (1<<2)
|
||||
#define BPF_SOCK_OPS_ALL_CB_FLAGS 0x7 /* Mask of all currently
|
||||
* supported cb flags
|
||||
*/
|
||||
|
||||
/* List of known BPF sock_ops operators.
|
||||
* New entries can only be added at the end
|
||||
*/
|
||||
@@ -976,6 +1044,43 @@ enum {
|
||||
* a congestion threshold. RTTs above
|
||||
* this indicate congestion
|
||||
*/
|
||||
BPF_SOCK_OPS_RTO_CB, /* Called when an RTO has triggered.
|
||||
* Arg1: value of icsk_retransmits
|
||||
* Arg2: value of icsk_rto
|
||||
* Arg3: whether RTO has expired
|
||||
*/
|
||||
BPF_SOCK_OPS_RETRANS_CB, /* Called when skb is retransmitted.
|
||||
* Arg1: sequence number of 1st byte
|
||||
* Arg2: # segments
|
||||
* Arg3: return value of
|
||||
* tcp_transmit_skb (0 => success)
|
||||
*/
|
||||
BPF_SOCK_OPS_STATE_CB, /* Called when TCP changes state.
|
||||
* Arg1: old_state
|
||||
* Arg2: new_state
|
||||
*/
|
||||
};
|
||||
|
||||
/* List of TCP states. There is a build check in net/ipv4/tcp.c to detect
|
||||
* changes between the TCP and BPF versions. Ideally this should never happen.
|
||||
* If it does, we need to add code to convert them before calling
|
||||
* the BPF sock_ops function.
|
||||
*/
|
||||
enum {
|
||||
BPF_TCP_ESTABLISHED = 1,
|
||||
BPF_TCP_SYN_SENT,
|
||||
BPF_TCP_SYN_RECV,
|
||||
BPF_TCP_FIN_WAIT1,
|
||||
BPF_TCP_FIN_WAIT2,
|
||||
BPF_TCP_TIME_WAIT,
|
||||
BPF_TCP_CLOSE,
|
||||
BPF_TCP_CLOSE_WAIT,
|
||||
BPF_TCP_LAST_ACK,
|
||||
BPF_TCP_LISTEN,
|
||||
BPF_TCP_CLOSING, /* Now a valid state */
|
||||
BPF_TCP_NEW_SYN_RECV,
|
||||
|
||||
BPF_TCP_MAX_STATES /* Leave at the end! */
|
||||
};
|
||||
|
||||
#define TCP_BPF_IW 1001 /* Set TCP initial congestion window */
|
||||
@@ -995,7 +1100,8 @@ struct bpf_perf_event_value {
|
||||
#define BPF_DEVCG_DEV_CHAR (1ULL << 1)
|
||||
|
||||
struct bpf_cgroup_dev_ctx {
|
||||
__u32 access_type; /* (access << 16) | type */
|
||||
/* access_type encoded as (BPF_DEVCG_ACC_* << 16) | BPF_DEVCG_DEV_* */
|
||||
__u32 access_type;
|
||||
__u32 major;
|
||||
__u32 minor;
|
||||
};
|
||||
|
@@ -15,9 +15,10 @@
|
||||
|
||||
/* ld/ldx fields */
|
||||
#define BPF_SIZE(code) ((code) & 0x18)
|
||||
#define BPF_W 0x00
|
||||
#define BPF_H 0x08
|
||||
#define BPF_B 0x10
|
||||
#define BPF_W 0x00 /* 32-bit */
|
||||
#define BPF_H 0x08 /* 16-bit */
|
||||
#define BPF_B 0x10 /* 8-bit */
|
||||
/* eBPF BPF_DW 0x18 64-bit */
|
||||
#define BPF_MODE(code) ((code) & 0xe0)
|
||||
#define BPF_IMM 0x00
|
||||
#define BPF_ABS 0x20
|
||||
|
@@ -132,6 +132,7 @@ enum {
|
||||
IFLA_CAN_TERMINATION_CONST,
|
||||
IFLA_CAN_BITRATE_CONST,
|
||||
IFLA_CAN_DATA_BITRATE_CONST,
|
||||
IFLA_CAN_BITRATE_MAX,
|
||||
__IFLA_CAN_MAX
|
||||
};
|
||||
|
||||
|
@@ -70,6 +70,13 @@ enum devlink_command {
|
||||
DEVLINK_CMD_DPIPE_ENTRIES_GET,
|
||||
DEVLINK_CMD_DPIPE_HEADERS_GET,
|
||||
DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET,
|
||||
DEVLINK_CMD_RESOURCE_SET,
|
||||
DEVLINK_CMD_RESOURCE_DUMP,
|
||||
|
||||
/* Hot driver reload, makes configuration changes take place. The
|
||||
* devlink instance is not released during the process.
|
||||
*/
|
||||
DEVLINK_CMD_RELOAD,
|
||||
|
||||
/* add new commands above here */
|
||||
__DEVLINK_CMD_MAX,
|
||||
@@ -202,6 +209,20 @@ enum devlink_attr {
|
||||
DEVLINK_ATTR_PAD,
|
||||
|
||||
DEVLINK_ATTR_ESWITCH_ENCAP_MODE, /* u8 */
|
||||
DEVLINK_ATTR_RESOURCE_LIST, /* nested */
|
||||
DEVLINK_ATTR_RESOURCE, /* nested */
|
||||
DEVLINK_ATTR_RESOURCE_NAME, /* string */
|
||||
DEVLINK_ATTR_RESOURCE_ID, /* u64 */
|
||||
DEVLINK_ATTR_RESOURCE_SIZE, /* u64 */
|
||||
DEVLINK_ATTR_RESOURCE_SIZE_NEW, /* u64 */
|
||||
DEVLINK_ATTR_RESOURCE_SIZE_VALID, /* u8 */
|
||||
DEVLINK_ATTR_RESOURCE_SIZE_MIN, /* u64 */
|
||||
DEVLINK_ATTR_RESOURCE_SIZE_MAX, /* u64 */
|
||||
DEVLINK_ATTR_RESOURCE_SIZE_GRAN, /* u64 */
|
||||
DEVLINK_ATTR_RESOURCE_UNIT, /* u8 */
|
||||
DEVLINK_ATTR_RESOURCE_OCC, /* u64 */
|
||||
DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_ID, /* u64 */
|
||||
DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_UNITS,/* u64 */
|
||||
|
||||
/* add new attributes above here, update the policy in devlink.c */
|
||||
|
||||
@@ -245,4 +266,8 @@ enum devlink_dpipe_header_id {
|
||||
DEVLINK_DPIPE_HEADER_IPV6,
|
||||
};
|
||||
|
||||
enum devlink_resource_unit {
|
||||
DEVLINK_RESOURCE_UNIT_ENTRY,
|
||||
};
|
||||
|
||||
#endif /* _UAPI_LINUX_DEVLINK_H_ */
|
||||
|
@@ -211,6 +211,61 @@ struct dmx_stc {
|
||||
__u64 stc;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct dmx_buffer - dmx buffer info
|
||||
*
|
||||
* @index: id number of the buffer
|
||||
* @bytesused: number of bytes occupied by data in the buffer (payload);
|
||||
* @offset: for buffers with memory == DMX_MEMORY_MMAP;
|
||||
* offset from the start of the device memory for this plane,
|
||||
* (or a "cookie" that should be passed to mmap() as offset)
|
||||
* @length: size in bytes of the buffer
|
||||
*
|
||||
* Contains data exchanged by application and driver using one of the streaming
|
||||
* I/O methods.
|
||||
*/
|
||||
struct dmx_buffer {
|
||||
__u32 index;
|
||||
__u32 bytesused;
|
||||
__u32 offset;
|
||||
__u32 length;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct dmx_requestbuffers - request dmx buffer information
|
||||
*
|
||||
* @count: number of requested buffers,
|
||||
* @size: size in bytes of the requested buffer
|
||||
*
|
||||
* Contains data used for requesting a dmx buffer.
|
||||
* All reserved fields must be set to zero.
|
||||
*/
|
||||
struct dmx_requestbuffers {
|
||||
__u32 count;
|
||||
__u32 size;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct dmx_exportbuffer - export of dmx buffer as DMABUF file descriptor
|
||||
*
|
||||
* @index: id number of the buffer
|
||||
* @flags: flags for newly created file, currently only O_CLOEXEC is
|
||||
* supported, refer to manual of open syscall for more details
|
||||
* @fd: file descriptor associated with DMABUF (set by driver)
|
||||
*
|
||||
* Contains data used for exporting a dmx buffer as DMABUF file descriptor.
|
||||
* The buffer is identified by a 'cookie' returned by DMX_QUERYBUF
|
||||
* (identical to the cookie used to mmap() the buffer to userspace). All
|
||||
* reserved fields must be set to zero. The field reserved0 is expected to
|
||||
* become a structure 'type' allowing an alternative layout of the structure
|
||||
* content. Therefore this field should not be used for any other extensions.
|
||||
*/
|
||||
struct dmx_exportbuffer {
|
||||
__u32 index;
|
||||
__u32 flags;
|
||||
__s32 fd;
|
||||
};
|
||||
|
||||
#define DMX_START _IO('o', 41)
|
||||
#define DMX_STOP _IO('o', 42)
|
||||
#define DMX_SET_FILTER _IOW('o', 43, struct dmx_sct_filter_params)
|
||||
@@ -231,4 +286,10 @@ typedef struct dmx_filter dmx_filter_t;
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* _UAPI_DVBDMX_H_ */
|
||||
#define DMX_REQBUFS _IOWR('o', 60, struct dmx_requestbuffers)
|
||||
#define DMX_QUERYBUF _IOWR('o', 61, struct dmx_buffer)
|
||||
#define DMX_EXPBUF _IOWR('o', 62, struct dmx_exportbuffer)
|
||||
#define DMX_QBUF _IOWR('o', 63, struct dmx_buffer)
|
||||
#define DMX_DQBUF _IOWR('o', 64, struct dmx_buffer)
|
||||
|
||||
#endif /* _DVBDMX_H_ */
|
||||
|
@@ -547,7 +547,10 @@ enum fe_interleaving {
|
||||
#define DTV_STAT_ERROR_BLOCK_COUNT 68
|
||||
#define DTV_STAT_TOTAL_BLOCK_COUNT 69
|
||||
|
||||
#define DTV_MAX_COMMAND DTV_STAT_TOTAL_BLOCK_COUNT
|
||||
/* Physical layer scrambling */
|
||||
#define DTV_SCRAMBLING_SEQUENCE_INDEX 70
|
||||
|
||||
#define DTV_MAX_COMMAND DTV_SCRAMBLING_SEQUENCE_INDEX
|
||||
|
||||
/**
|
||||
* enum fe_pilot - Type of pilot tone
|
||||
@@ -756,16 +759,15 @@ enum fecap_scale_params {
|
||||
/**
|
||||
* struct dtv_stats - Used for reading a DTV status property
|
||||
*
|
||||
* @scale: Filled with enum fecap_scale_params - the scale
|
||||
* in usage for that parameter
|
||||
* @scale:
|
||||
* Filled with enum fecap_scale_params - the scale in usage
|
||||
* for that parameter
|
||||
*
|
||||
* The ``{unnamed_union}`` may have either one of the values below:
|
||||
*
|
||||
* %svalue
|
||||
* @svalue:
|
||||
* integer value of the measure, for %FE_SCALE_DECIBEL,
|
||||
* used for dB measures. The unit is 0.001 dB.
|
||||
*
|
||||
* %uvalue
|
||||
* @uvalue:
|
||||
* unsigned integer value of the measure, used when @scale is
|
||||
* either %FE_SCALE_RELATIVE or %FE_SCALE_COUNTER.
|
||||
*
|
||||
@@ -828,19 +830,19 @@ struct dtv_fe_stats {
|
||||
/**
|
||||
* struct dtv_property - store one of frontend command and its value
|
||||
*
|
||||
* @cmd: Digital TV command.
|
||||
* @reserved: Not used.
|
||||
* @u: Union with the values for the command.
|
||||
* @result: Unused
|
||||
* @cmd: Digital TV command.
|
||||
* @reserved: Not used.
|
||||
* @u: Union with the values for the command.
|
||||
* @u.data: A unsigned 32 bits integer with command value.
|
||||
* @u.buffer: Struct to store bigger properties.
|
||||
* Currently unused.
|
||||
* @u.buffer.data: an unsigned 32-bits array.
|
||||
* @u.buffer.len: number of elements of the buffer.
|
||||
* @u.buffer.reserved1: Reserved.
|
||||
* @u.buffer.reserved2: Reserved.
|
||||
* @u.st: a &struct dtv_fe_stats array of statistics.
|
||||
* @result: Currently unused.
|
||||
*
|
||||
* The @u union may have either one of the values below:
|
||||
*
|
||||
* %data
|
||||
* an unsigned 32-bits number.
|
||||
* %st
|
||||
* a &struct dtv_fe_stats array of statistics.
|
||||
* %buffer
|
||||
* a buffer of up to 32 characters (currently unused).
|
||||
*/
|
||||
struct dtv_property {
|
||||
__u32 cmd;
|
||||
|
@@ -25,6 +25,6 @@
|
||||
#define _DVBVERSION_H_
|
||||
|
||||
#define DVB_API_VERSION 5
|
||||
#define DVB_API_VERSION_MINOR 10
|
||||
#define DVB_API_VERSION_MINOR 11
|
||||
|
||||
#endif /*_DVBVERSION_H_*/
|
||||
|
@@ -83,11 +83,11 @@ typedef enum {
|
||||
#define VIDEO_CMD_CONTINUE (3)
|
||||
|
||||
/* Flags for VIDEO_CMD_FREEZE */
|
||||
#define VIDEO_CMD_FREEZE_TO_BLACK (1 << 0)
|
||||
#define VIDEO_CMD_FREEZE_TO_BLACK (1 << 0)
|
||||
|
||||
/* Flags for VIDEO_CMD_STOP */
|
||||
#define VIDEO_CMD_STOP_TO_BLACK (1 << 0)
|
||||
#define VIDEO_CMD_STOP_IMMEDIATELY (1 << 1)
|
||||
#define VIDEO_CMD_STOP_TO_BLACK (1 << 0)
|
||||
#define VIDEO_CMD_STOP_IMMEDIATELY (1 << 1)
|
||||
|
||||
/* Play input formats: */
|
||||
/* The decoder has no special format requirements */
|
||||
@@ -124,8 +124,8 @@ struct video_command {
|
||||
/* FIELD_UNKNOWN can be used if the hardware does not know whether
|
||||
the Vsync is for an odd, even or progressive (i.e. non-interlaced)
|
||||
field. */
|
||||
#define VIDEO_VSYNC_FIELD_UNKNOWN (0)
|
||||
#define VIDEO_VSYNC_FIELD_ODD (1)
|
||||
#define VIDEO_VSYNC_FIELD_UNKNOWN (0)
|
||||
#define VIDEO_VSYNC_FIELD_ODD (1)
|
||||
#define VIDEO_VSYNC_FIELD_EVEN (2)
|
||||
#define VIDEO_VSYNC_FIELD_PROGRESSIVE (3)
|
||||
|
||||
@@ -133,8 +133,8 @@ struct video_event {
|
||||
__s32 type;
|
||||
#define VIDEO_EVENT_SIZE_CHANGED 1
|
||||
#define VIDEO_EVENT_FRAME_RATE_CHANGED 2
|
||||
#define VIDEO_EVENT_DECODER_STOPPED 3
|
||||
#define VIDEO_EVENT_VSYNC 4
|
||||
#define VIDEO_EVENT_DECODER_STOPPED 3
|
||||
#define VIDEO_EVENT_VSYNC 4
|
||||
/* unused, make sure to use atomic time for y2038 if it ever gets used */
|
||||
long timestamp;
|
||||
union {
|
||||
@@ -268,9 +268,9 @@ typedef __u16 video_attributes_t;
|
||||
#define VIDEO_GET_PTS _IOR('o', 57, __u64)
|
||||
|
||||
/* Read the number of displayed frames since the decoder was started */
|
||||
#define VIDEO_GET_FRAME_COUNT _IOR('o', 58, __u64)
|
||||
#define VIDEO_GET_FRAME_COUNT _IOR('o', 58, __u64)
|
||||
|
||||
#define VIDEO_COMMAND _IOWR('o', 59, struct video_command)
|
||||
#define VIDEO_TRY_COMMAND _IOWR('o', 60, struct video_command)
|
||||
#define VIDEO_COMMAND _IOWR('o', 59, struct video_command)
|
||||
#define VIDEO_TRY_COMMAND _IOWR('o', 60, struct video_command)
|
||||
|
||||
#endif /* _UAPI_DVBVIDEO_H_ */
|
||||
|
@@ -396,6 +396,7 @@ typedef struct elf64_shdr {
|
||||
#define NT_PPC_TM_CTAR 0x10d /* TM checkpointed Target Address Register */
|
||||
#define NT_PPC_TM_CPPR 0x10e /* TM checkpointed Program Priority Register */
|
||||
#define NT_PPC_TM_CDSCR 0x10f /* TM checkpointed Data Stream Control Register */
|
||||
#define NT_PPC_PKEY 0x110 /* Memory Protection Keys registers */
|
||||
#define NT_386_TLS 0x200 /* i386 TLS slots (struct user_desc) */
|
||||
#define NT_386_IOPERM 0x201 /* x86 io permission bitmap (1=deny) */
|
||||
#define NT_X86_XSTATE 0x202 /* x86 extended state using xsave */
|
||||
|
52
include/uapi/linux/erspan.h
Normal file
52
include/uapi/linux/erspan.h
Normal file
@@ -0,0 +1,52 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
/*
|
||||
* ERSPAN Tunnel Metadata
|
||||
*
|
||||
* Copyright (c) 2018 VMware
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* Userspace API for metadata mode ERSPAN tunnel
|
||||
*/
|
||||
#ifndef _UAPI_ERSPAN_H
|
||||
#define _UAPI_ERSPAN_H
|
||||
|
||||
#include <linux/types.h> /* For __beXX in userspace */
|
||||
#include <asm/byteorder.h>
|
||||
|
||||
/* ERSPAN version 2 metadata header */
|
||||
struct erspan_md2 {
|
||||
__be32 timestamp;
|
||||
__be16 sgt; /* security group tag */
|
||||
#if defined(__LITTLE_ENDIAN_BITFIELD)
|
||||
__u8 hwid_upper:2,
|
||||
ft:5,
|
||||
p:1;
|
||||
__u8 o:1,
|
||||
gra:2,
|
||||
dir:1,
|
||||
hwid:4;
|
||||
#elif defined(__BIG_ENDIAN_BITFIELD)
|
||||
__u8 p:1,
|
||||
ft:5,
|
||||
hwid_upper:2;
|
||||
__u8 hwid:4,
|
||||
dir:1,
|
||||
gra:2,
|
||||
o:1;
|
||||
#else
|
||||
#error "Please fix <asm/byteorder.h>"
|
||||
#endif
|
||||
};
|
||||
|
||||
struct erspan_metadata {
|
||||
int version;
|
||||
union {
|
||||
__be32 index; /* Version 1 (type II)*/
|
||||
struct erspan_md2 md2; /* Version 2 (type III) */
|
||||
} u;
|
||||
};
|
||||
|
||||
#endif /* _UAPI_ERSPAN_H */
|
@@ -1686,6 +1686,7 @@ enum ethtool_reset_flags {
|
||||
ETH_RESET_PHY = 1 << 6, /* Transceiver/PHY */
|
||||
ETH_RESET_RAM = 1 << 7, /* RAM shared between
|
||||
* multiple components */
|
||||
ETH_RESET_AP = 1 << 8, /* Application processor */
|
||||
|
||||
ETH_RESET_DEDICATED = 0x0000ffff, /* All components dedicated to
|
||||
* this interface */
|
||||
|
@@ -377,7 +377,11 @@ typedef int __bitwise __kernel_rwf_t;
|
||||
/* per-IO, return -EAGAIN if operation would block */
|
||||
#define RWF_NOWAIT ((__force __kernel_rwf_t)0x00000008)
|
||||
|
||||
/* per-IO O_APPEND */
|
||||
#define RWF_APPEND ((__force __kernel_rwf_t)0x00000010)
|
||||
|
||||
/* mask of flags supported by the kernel */
|
||||
#define RWF_SUPPORTED (RWF_HIPRI | RWF_DSYNC | RWF_SYNC | RWF_NOWAIT)
|
||||
#define RWF_SUPPORTED (RWF_HIPRI | RWF_DSYNC | RWF_SYNC | RWF_NOWAIT |\
|
||||
RWF_APPEND)
|
||||
|
||||
#endif /* _UAPI_LINUX_FS_H */
|
||||
|
@@ -187,10 +187,19 @@ struct gfs2_rgrp {
|
||||
__be32 rg_flags;
|
||||
__be32 rg_free;
|
||||
__be32 rg_dinodes;
|
||||
__be32 __pad;
|
||||
union {
|
||||
__be32 __pad;
|
||||
__be32 rg_skip; /* Distance to the next rgrp in fs blocks */
|
||||
};
|
||||
__be64 rg_igeneration;
|
||||
/* The following 3 fields are duplicated from gfs2_rindex to reduce
|
||||
reliance on the rindex */
|
||||
__be64 rg_data0; /* First data location */
|
||||
__be32 rg_data; /* Number of data blocks in rgrp */
|
||||
__be32 rg_bitbytes; /* Number of bytes in data bitmaps */
|
||||
__be32 rg_crc; /* crc32 of the structure with this field 0 */
|
||||
|
||||
__u8 rg_reserved[80]; /* Several fields from gfs1 now reserved */
|
||||
__u8 rg_reserved[60]; /* Several fields from gfs1 now reserved */
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -394,7 +403,36 @@ struct gfs2_ea_header {
|
||||
* Log header structure
|
||||
*/
|
||||
|
||||
#define GFS2_LOG_HEAD_UNMOUNT 0x00000001 /* log is clean */
|
||||
#define GFS2_LOG_HEAD_UNMOUNT 0x00000001 /* log is clean */
|
||||
#define GFS2_LOG_HEAD_FLUSH_NORMAL 0x00000002 /* normal log flush */
|
||||
#define GFS2_LOG_HEAD_FLUSH_SYNC 0x00000004 /* Sync log flush */
|
||||
#define GFS2_LOG_HEAD_FLUSH_SHUTDOWN 0x00000008 /* Shutdown log flush */
|
||||
#define GFS2_LOG_HEAD_FLUSH_FREEZE 0x00000010 /* Freeze flush */
|
||||
#define GFS2_LOG_HEAD_RECOVERY 0x00000020 /* Journal recovery */
|
||||
#define GFS2_LOG_HEAD_USERSPACE 0x80000000 /* Written by gfs2-utils */
|
||||
|
||||
/* Log flush callers */
|
||||
#define GFS2_LFC_SHUTDOWN 0x00000100
|
||||
#define GFS2_LFC_JDATA_WPAGES 0x00000200
|
||||
#define GFS2_LFC_SET_FLAGS 0x00000400
|
||||
#define GFS2_LFC_AIL_EMPTY_GL 0x00000800
|
||||
#define GFS2_LFC_AIL_FLUSH 0x00001000
|
||||
#define GFS2_LFC_RGRP_GO_SYNC 0x00002000
|
||||
#define GFS2_LFC_INODE_GO_SYNC 0x00004000
|
||||
#define GFS2_LFC_INODE_GO_INVAL 0x00008000
|
||||
#define GFS2_LFC_FREEZE_GO_SYNC 0x00010000
|
||||
#define GFS2_LFC_KILL_SB 0x00020000
|
||||
#define GFS2_LFC_DO_SYNC 0x00040000
|
||||
#define GFS2_LFC_INPLACE_RESERVE 0x00080000
|
||||
#define GFS2_LFC_WRITE_INODE 0x00100000
|
||||
#define GFS2_LFC_MAKE_FS_RO 0x00200000
|
||||
#define GFS2_LFC_SYNC_FS 0x00400000
|
||||
#define GFS2_LFC_EVICT_INODE 0x00800000
|
||||
#define GFS2_LFC_TRANS_END 0x01000000
|
||||
#define GFS2_LFC_LOGD_JFLUSH_REQD 0x02000000
|
||||
#define GFS2_LFC_LOGD_AIL_FLUSH_REQD 0x04000000
|
||||
|
||||
#define LH_V1_SIZE (offsetofend(struct gfs2_log_header, lh_hash))
|
||||
|
||||
struct gfs2_log_header {
|
||||
struct gfs2_meta_header lh_header;
|
||||
@@ -403,7 +441,21 @@ struct gfs2_log_header {
|
||||
__be32 lh_flags; /* GFS2_LOG_HEAD_... */
|
||||
__be32 lh_tail; /* Block number of log tail */
|
||||
__be32 lh_blkno;
|
||||
__be32 lh_hash;
|
||||
__be32 lh_hash; /* crc up to here with this field 0 */
|
||||
|
||||
/* Version 2 additional fields start here */
|
||||
__be32 lh_crc; /* crc32c from lh_nsec to end of block */
|
||||
__be32 lh_nsec; /* Nanoseconds of timestamp */
|
||||
__be64 lh_sec; /* Seconds of timestamp */
|
||||
__be64 lh_addr; /* Block addr of this log header (absolute) */
|
||||
__be64 lh_jinode; /* Journal inode number */
|
||||
__be64 lh_statfs_addr; /* Local statfs inode number */
|
||||
__be64 lh_quota_addr; /* Local quota change inode number */
|
||||
|
||||
/* Statfs local changes (i.e. diff from global statfs) */
|
||||
__be64 lh_local_total;
|
||||
__be64 lh_local_free;
|
||||
__be64 lh_local_dinodes;
|
||||
};
|
||||
|
||||
/*
|
||||
|
@@ -72,6 +72,9 @@ struct i2c_msg {
|
||||
#define I2C_M_RD 0x0001 /* read data, from slave to master */
|
||||
/* I2C_M_RD is guaranteed to be 0x0001! */
|
||||
#define I2C_M_TEN 0x0010 /* this is a ten bit chip address */
|
||||
#define I2C_M_DMA_SAFE 0x0200 /* the buffer of this message is DMA safe */
|
||||
/* makes only sense in kernelspace */
|
||||
/* userspace buffers are copied anyway */
|
||||
#define I2C_M_RECV_LEN 0x0400 /* length will be first received byte */
|
||||
#define I2C_M_NO_RD_ACK 0x0800 /* if I2C_FUNC_PROTOCOL_MANGLING */
|
||||
#define I2C_M_IGNORE_NAK 0x1000 /* if I2C_FUNC_PROTOCOL_MANGLING */
|
||||
|
@@ -48,6 +48,7 @@
|
||||
#define ETH_P_PUP 0x0200 /* Xerox PUP packet */
|
||||
#define ETH_P_PUPAT 0x0201 /* Xerox PUP Addr Trans packet */
|
||||
#define ETH_P_TSN 0x22F0 /* TSN (IEEE 1722) packet */
|
||||
#define ETH_P_ERSPAN2 0x22EB /* ERSPAN version 2 (type III) */
|
||||
#define ETH_P_IP 0x0800 /* Internet Protocol packet */
|
||||
#define ETH_P_X25 0x0805 /* CCITT X.25 */
|
||||
#define ETH_P_ARP 0x0806 /* Address Resolution packet */
|
||||
|
@@ -161,6 +161,9 @@ enum {
|
||||
IFLA_EVENT,
|
||||
IFLA_NEW_NETNSID,
|
||||
IFLA_IF_NETNSID,
|
||||
IFLA_CARRIER_UP_COUNT,
|
||||
IFLA_CARRIER_DOWN_COUNT,
|
||||
IFLA_NEW_IFINDEX,
|
||||
__IFLA_MAX
|
||||
};
|
||||
|
||||
@@ -732,6 +735,8 @@ enum {
|
||||
IFLA_VF_STATS_BROADCAST,
|
||||
IFLA_VF_STATS_MULTICAST,
|
||||
IFLA_VF_STATS_PAD,
|
||||
IFLA_VF_STATS_RX_DROPPED,
|
||||
IFLA_VF_STATS_TX_DROPPED,
|
||||
__IFLA_VF_STATS_MAX,
|
||||
};
|
||||
|
||||
|
@@ -22,8 +22,13 @@
|
||||
|
||||
#define MACSEC_KEYID_LEN 16
|
||||
|
||||
#define MACSEC_DEFAULT_CIPHER_ID 0x0080020001000001ULL
|
||||
#define MACSEC_DEFAULT_CIPHER_ALT 0x0080C20001000001ULL
|
||||
/* cipher IDs as per IEEE802.1AEbn-2011 */
|
||||
#define MACSEC_CIPHER_ID_GCM_AES_128 0x0080C20001000001ULL
|
||||
#define MACSEC_CIPHER_ID_GCM_AES_256 0x0080C20001000002ULL
|
||||
|
||||
/* deprecated cipher ID for GCM-AES-128 */
|
||||
#define MACSEC_DEFAULT_CIPHER_ID 0x0080020001000001ULL
|
||||
#define MACSEC_DEFAULT_CIPHER_ALT MACSEC_CIPHER_ID_GCM_AES_128
|
||||
|
||||
#define MACSEC_MIN_ICV_LEN 8
|
||||
#define MACSEC_MAX_ICV_LEN 32
|
||||
|
@@ -57,6 +57,8 @@
|
||||
*/
|
||||
#define TUNSETVNETBE _IOW('T', 222, int)
|
||||
#define TUNGETVNETBE _IOR('T', 223, int)
|
||||
#define TUNSETSTEERINGEBPF _IOR('T', 224, int)
|
||||
#define TUNSETFILTEREBPF _IOR('T', 225, int)
|
||||
|
||||
/* TUNSETIFF ifr flags */
|
||||
#define IFF_TUN 0x0001
|
||||
|
@@ -137,6 +137,9 @@ enum {
|
||||
IFLA_GRE_IGNORE_DF,
|
||||
IFLA_GRE_FWMARK,
|
||||
IFLA_GRE_ERSPAN_INDEX,
|
||||
IFLA_GRE_ERSPAN_VER,
|
||||
IFLA_GRE_ERSPAN_DIR,
|
||||
IFLA_GRE_ERSPAN_HWID,
|
||||
__IFLA_GRE_MAX,
|
||||
};
|
||||
|
||||
|
@@ -92,6 +92,8 @@ enum {
|
||||
INET_DIAG_BC_D_COND,
|
||||
INET_DIAG_BC_DEV_COND, /* u32 ifindex */
|
||||
INET_DIAG_BC_MARK_COND,
|
||||
INET_DIAG_BC_S_EQ,
|
||||
INET_DIAG_BC_D_EQ,
|
||||
};
|
||||
|
||||
struct inet_diag_hostcond {
|
||||
|
@@ -21,10 +21,21 @@
|
||||
|
||||
/*
|
||||
* The event structure itself
|
||||
* Note that __USE_TIME_BITS64 is defined by libc based on
|
||||
* application's request to use 64 bit time_t.
|
||||
*/
|
||||
|
||||
struct input_event {
|
||||
#if (__BITS_PER_LONG != 32 || !defined(__USE_TIME_BITS64)) && !defined(__KERNEL)
|
||||
struct timeval time;
|
||||
#define input_event_sec time.tv_sec
|
||||
#define input_event_usec time.tv_usec
|
||||
#else
|
||||
__kernel_ulong_t __sec;
|
||||
__kernel_ulong_t __usec;
|
||||
#define input_event_sec __sec
|
||||
#define input_event_usec __usec
|
||||
#endif
|
||||
__u16 type;
|
||||
__u16 code;
|
||||
__s32 value;
|
||||
|
@@ -58,7 +58,8 @@ struct kfd_ioctl_create_queue_args {
|
||||
__u64 eop_buffer_address; /* to KFD */
|
||||
__u64 eop_buffer_size; /* to KFD */
|
||||
__u64 ctx_save_restore_address; /* to KFD */
|
||||
__u64 ctx_save_restore_size; /* to KFD */
|
||||
__u32 ctx_save_restore_size; /* to KFD */
|
||||
__u32 ctl_stack_size; /* to KFD */
|
||||
};
|
||||
|
||||
struct kfd_ioctl_destroy_queue_args {
|
||||
@@ -261,6 +262,13 @@ struct kfd_ioctl_get_tile_config_args {
|
||||
*/
|
||||
};
|
||||
|
||||
struct kfd_ioctl_set_trap_handler_args {
|
||||
uint64_t tba_addr; /* to KFD */
|
||||
uint64_t tma_addr; /* to KFD */
|
||||
uint32_t gpu_id; /* to KFD */
|
||||
uint32_t pad;
|
||||
};
|
||||
|
||||
#define AMDKFD_IOCTL_BASE 'K'
|
||||
#define AMDKFD_IO(nr) _IO(AMDKFD_IOCTL_BASE, nr)
|
||||
#define AMDKFD_IOR(nr, type) _IOR(AMDKFD_IOCTL_BASE, nr, type)
|
||||
@@ -321,7 +329,10 @@ struct kfd_ioctl_get_tile_config_args {
|
||||
#define AMDKFD_IOC_GET_TILE_CONFIG \
|
||||
AMDKFD_IOWR(0x12, struct kfd_ioctl_get_tile_config_args)
|
||||
|
||||
#define AMDKFD_IOC_SET_TRAP_HANDLER \
|
||||
AMDKFD_IOW(0x13, struct kfd_ioctl_set_trap_handler_args)
|
||||
|
||||
#define AMDKFD_COMMAND_START 0x01
|
||||
#define AMDKFD_COMMAND_END 0x13
|
||||
#define AMDKFD_COMMAND_END 0x14
|
||||
|
||||
#endif
|
||||
|
@@ -65,7 +65,7 @@ struct sockaddr_l2tpip6 {
|
||||
* TUNNEL_MODIFY - CONN_ID, udpcsum
|
||||
* TUNNEL_GETSTATS - CONN_ID, (stats)
|
||||
* TUNNEL_GET - CONN_ID, (...)
|
||||
* SESSION_CREATE - SESSION_ID, PW_TYPE, offset, data_seq, cookie, peer_cookie, offset, l2spec
|
||||
* SESSION_CREATE - SESSION_ID, PW_TYPE, data_seq, cookie, peer_cookie, l2spec
|
||||
* SESSION_DELETE - SESSION_ID
|
||||
* SESSION_MODIFY - SESSION_ID, data_seq
|
||||
* SESSION_GET - SESSION_ID, (...)
|
||||
@@ -94,10 +94,10 @@ enum {
|
||||
L2TP_ATTR_NONE, /* no data */
|
||||
L2TP_ATTR_PW_TYPE, /* u16, enum l2tp_pwtype */
|
||||
L2TP_ATTR_ENCAP_TYPE, /* u16, enum l2tp_encap_type */
|
||||
L2TP_ATTR_OFFSET, /* u16 */
|
||||
L2TP_ATTR_OFFSET, /* u16 (not used) */
|
||||
L2TP_ATTR_DATA_SEQ, /* u16 */
|
||||
L2TP_ATTR_L2SPEC_TYPE, /* u8, enum l2tp_l2spec_type */
|
||||
L2TP_ATTR_L2SPEC_LEN, /* u8, enum l2tp_l2spec_type */
|
||||
L2TP_ATTR_L2SPEC_LEN, /* u8 (not used) */
|
||||
L2TP_ATTR_PROTO_VERSION, /* u8 */
|
||||
L2TP_ATTR_IFNAME, /* string */
|
||||
L2TP_ATTR_CONN_ID, /* u32 */
|
||||
|
@@ -47,12 +47,14 @@
|
||||
#define LIRC_MODE_RAW 0x00000001
|
||||
#define LIRC_MODE_PULSE 0x00000002
|
||||
#define LIRC_MODE_MODE2 0x00000004
|
||||
#define LIRC_MODE_SCANCODE 0x00000008
|
||||
#define LIRC_MODE_LIRCCODE 0x00000010
|
||||
|
||||
|
||||
#define LIRC_CAN_SEND_RAW LIRC_MODE2SEND(LIRC_MODE_RAW)
|
||||
#define LIRC_CAN_SEND_PULSE LIRC_MODE2SEND(LIRC_MODE_PULSE)
|
||||
#define LIRC_CAN_SEND_MODE2 LIRC_MODE2SEND(LIRC_MODE_MODE2)
|
||||
#define LIRC_CAN_SEND_SCANCODE LIRC_MODE2SEND(LIRC_MODE_SCANCODE)
|
||||
#define LIRC_CAN_SEND_LIRCCODE LIRC_MODE2SEND(LIRC_MODE_LIRCCODE)
|
||||
|
||||
#define LIRC_CAN_SEND_MASK 0x0000003f
|
||||
@@ -64,6 +66,7 @@
|
||||
#define LIRC_CAN_REC_RAW LIRC_MODE2REC(LIRC_MODE_RAW)
|
||||
#define LIRC_CAN_REC_PULSE LIRC_MODE2REC(LIRC_MODE_PULSE)
|
||||
#define LIRC_CAN_REC_MODE2 LIRC_MODE2REC(LIRC_MODE_MODE2)
|
||||
#define LIRC_CAN_REC_SCANCODE LIRC_MODE2REC(LIRC_MODE_SCANCODE)
|
||||
#define LIRC_CAN_REC_LIRCCODE LIRC_MODE2REC(LIRC_MODE_LIRCCODE)
|
||||
|
||||
#define LIRC_CAN_REC_MASK LIRC_MODE2REC(LIRC_CAN_SEND_MASK)
|
||||
@@ -131,4 +134,83 @@
|
||||
|
||||
#define LIRC_SET_WIDEBAND_RECEIVER _IOW('i', 0x00000023, __u32)
|
||||
|
||||
/*
|
||||
* struct lirc_scancode - decoded scancode with protocol for use with
|
||||
* LIRC_MODE_SCANCODE
|
||||
*
|
||||
* @timestamp: Timestamp in nanoseconds using CLOCK_MONOTONIC when IR
|
||||
* was decoded.
|
||||
* @flags: should be 0 for transmit. When receiving scancodes,
|
||||
* LIRC_SCANCODE_FLAG_TOGGLE or LIRC_SCANCODE_FLAG_REPEAT can be set
|
||||
* depending on the protocol
|
||||
* @rc_proto: see enum rc_proto
|
||||
* @keycode: the translated keycode. Set to 0 for transmit.
|
||||
* @scancode: the scancode received or to be sent
|
||||
*/
|
||||
struct lirc_scancode {
|
||||
__u64 timestamp;
|
||||
__u16 flags;
|
||||
__u16 rc_proto;
|
||||
__u32 keycode;
|
||||
__u64 scancode;
|
||||
};
|
||||
|
||||
/* Set if the toggle bit of rc-5 or rc-6 is enabled */
|
||||
#define LIRC_SCANCODE_FLAG_TOGGLE 1
|
||||
/* Set if this is a nec or sanyo repeat */
|
||||
#define LIRC_SCANCODE_FLAG_REPEAT 2
|
||||
|
||||
/**
|
||||
* enum rc_proto - the Remote Controller protocol
|
||||
*
|
||||
* @RC_PROTO_UNKNOWN: Protocol not known
|
||||
* @RC_PROTO_OTHER: Protocol known but proprietary
|
||||
* @RC_PROTO_RC5: Philips RC5 protocol
|
||||
* @RC_PROTO_RC5X_20: Philips RC5x 20 bit protocol
|
||||
* @RC_PROTO_RC5_SZ: StreamZap variant of RC5
|
||||
* @RC_PROTO_JVC: JVC protocol
|
||||
* @RC_PROTO_SONY12: Sony 12 bit protocol
|
||||
* @RC_PROTO_SONY15: Sony 15 bit protocol
|
||||
* @RC_PROTO_SONY20: Sony 20 bit protocol
|
||||
* @RC_PROTO_NEC: NEC protocol
|
||||
* @RC_PROTO_NECX: Extended NEC protocol
|
||||
* @RC_PROTO_NEC32: NEC 32 bit protocol
|
||||
* @RC_PROTO_SANYO: Sanyo protocol
|
||||
* @RC_PROTO_MCIR2_KBD: RC6-ish MCE keyboard
|
||||
* @RC_PROTO_MCIR2_MSE: RC6-ish MCE mouse
|
||||
* @RC_PROTO_RC6_0: Philips RC6-0-16 protocol
|
||||
* @RC_PROTO_RC6_6A_20: Philips RC6-6A-20 protocol
|
||||
* @RC_PROTO_RC6_6A_24: Philips RC6-6A-24 protocol
|
||||
* @RC_PROTO_RC6_6A_32: Philips RC6-6A-32 protocol
|
||||
* @RC_PROTO_RC6_MCE: MCE (Philips RC6-6A-32 subtype) protocol
|
||||
* @RC_PROTO_SHARP: Sharp protocol
|
||||
* @RC_PROTO_XMP: XMP protocol
|
||||
* @RC_PROTO_CEC: CEC protocol
|
||||
*/
|
||||
enum rc_proto {
|
||||
RC_PROTO_UNKNOWN = 0,
|
||||
RC_PROTO_OTHER = 1,
|
||||
RC_PROTO_RC5 = 2,
|
||||
RC_PROTO_RC5X_20 = 3,
|
||||
RC_PROTO_RC5_SZ = 4,
|
||||
RC_PROTO_JVC = 5,
|
||||
RC_PROTO_SONY12 = 6,
|
||||
RC_PROTO_SONY15 = 7,
|
||||
RC_PROTO_SONY20 = 8,
|
||||
RC_PROTO_NEC = 9,
|
||||
RC_PROTO_NECX = 10,
|
||||
RC_PROTO_NEC32 = 11,
|
||||
RC_PROTO_SANYO = 12,
|
||||
RC_PROTO_MCIR2_KBD = 13,
|
||||
RC_PROTO_MCIR2_MSE = 14,
|
||||
RC_PROTO_RC6_0 = 15,
|
||||
RC_PROTO_RC6_6A_20 = 16,
|
||||
RC_PROTO_RC6_6A_24 = 17,
|
||||
RC_PROTO_RC6_6A_32 = 18,
|
||||
RC_PROTO_RC6_MCE = 19,
|
||||
RC_PROTO_SHARP = 20,
|
||||
RC_PROTO_XMP = 21,
|
||||
RC_PROTO_CEC = 22,
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@@ -8,6 +8,8 @@
|
||||
#ifndef _UAPI_LINUX_LP_H
|
||||
#define _UAPI_LINUX_LP_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/ioctl.h>
|
||||
|
||||
/*
|
||||
* Per POSIX guidelines, this module reserves the LP and lp prefixes
|
||||
@@ -88,7 +90,15 @@
|
||||
#define LPGETSTATS 0x060d /* get statistics (struct lp_stats) */
|
||||
#endif
|
||||
#define LPGETFLAGS 0x060e /* get status flags */
|
||||
#define LPSETTIMEOUT 0x060f /* set parport timeout */
|
||||
#define LPSETTIMEOUT_OLD 0x060f /* set parport timeout */
|
||||
#define LPSETTIMEOUT_NEW \
|
||||
_IOW(0x6, 0xf, __s64[2]) /* set parport timeout */
|
||||
#if __BITS_PER_LONG == 64
|
||||
#define LPSETTIMEOUT LPSETTIMEOUT_OLD
|
||||
#else
|
||||
#define LPSETTIMEOUT (sizeof(time_t) > sizeof(__kernel_long_t) ? \
|
||||
LPSETTIMEOUT_NEW : LPSETTIMEOUT_OLD)
|
||||
#endif
|
||||
|
||||
/* timeout for printk'ing a timeout, in jiffies (100ths of a second).
|
||||
This is also used for re-checking error conditions if LP_ABORT is
|
||||
|
@@ -15,54 +15,6 @@
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
struct nd_cmd_smart {
|
||||
__u32 status;
|
||||
__u8 data[128];
|
||||
} __packed;
|
||||
|
||||
#define ND_SMART_HEALTH_VALID (1 << 0)
|
||||
#define ND_SMART_SPARES_VALID (1 << 1)
|
||||
#define ND_SMART_USED_VALID (1 << 2)
|
||||
#define ND_SMART_TEMP_VALID (1 << 3)
|
||||
#define ND_SMART_CTEMP_VALID (1 << 4)
|
||||
#define ND_SMART_ALARM_VALID (1 << 9)
|
||||
#define ND_SMART_SHUTDOWN_VALID (1 << 10)
|
||||
#define ND_SMART_VENDOR_VALID (1 << 11)
|
||||
#define ND_SMART_SPARE_TRIP (1 << 0)
|
||||
#define ND_SMART_TEMP_TRIP (1 << 1)
|
||||
#define ND_SMART_CTEMP_TRIP (1 << 2)
|
||||
#define ND_SMART_NON_CRITICAL_HEALTH (1 << 0)
|
||||
#define ND_SMART_CRITICAL_HEALTH (1 << 1)
|
||||
#define ND_SMART_FATAL_HEALTH (1 << 2)
|
||||
|
||||
struct nd_smart_payload {
|
||||
__u32 flags;
|
||||
__u8 reserved0[4];
|
||||
__u8 health;
|
||||
__u8 spares;
|
||||
__u8 life_used;
|
||||
__u8 alarm_flags;
|
||||
__u16 temperature;
|
||||
__u16 ctrl_temperature;
|
||||
__u8 reserved1[15];
|
||||
__u8 shutdown_state;
|
||||
__u32 vendor_size;
|
||||
__u8 vendor_data[92];
|
||||
} __packed;
|
||||
|
||||
struct nd_cmd_smart_threshold {
|
||||
__u32 status;
|
||||
__u8 data[8];
|
||||
} __packed;
|
||||
|
||||
struct nd_smart_threshold_payload {
|
||||
__u8 alarm_control;
|
||||
__u8 reserved0;
|
||||
__u16 temperature;
|
||||
__u8 spares;
|
||||
__u8 reserved[3];
|
||||
} __packed;
|
||||
|
||||
struct nd_cmd_dimm_flags {
|
||||
__u32 status;
|
||||
__u32 flags;
|
||||
@@ -211,12 +163,6 @@ static inline const char *nvdimm_cmd_name(unsigned cmd)
|
||||
|
||||
#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)
|
||||
|
||||
@@ -263,7 +209,7 @@ enum nd_driver_flags {
|
||||
};
|
||||
|
||||
enum {
|
||||
ND_MIN_NAMESPACE_SIZE = 0x00400000,
|
||||
ND_MIN_NAMESPACE_SIZE = PAGE_SIZE,
|
||||
};
|
||||
|
||||
enum ars_masks {
|
||||
|
@@ -101,12 +101,16 @@ enum ip_conntrack_status {
|
||||
IPS_HELPER_BIT = 13,
|
||||
IPS_HELPER = (1 << IPS_HELPER_BIT),
|
||||
|
||||
/* Conntrack has been offloaded to flow table. */
|
||||
IPS_OFFLOAD_BIT = 14,
|
||||
IPS_OFFLOAD = (1 << IPS_OFFLOAD_BIT),
|
||||
|
||||
/* Be careful here, modifying these bits can make things messy,
|
||||
* so don't let users modify them directly.
|
||||
*/
|
||||
IPS_UNCHANGEABLE_MASK = (IPS_NAT_DONE_MASK | IPS_NAT_MASK |
|
||||
IPS_EXPECTED | IPS_CONFIRMED | IPS_DYING |
|
||||
IPS_SEQ_ADJUST | IPS_TEMPLATE),
|
||||
IPS_SEQ_ADJUST | IPS_TEMPLATE | IPS_OFFLOAD),
|
||||
|
||||
__IPS_MAX_BIT = 14,
|
||||
};
|
||||
|
@@ -92,6 +92,9 @@ enum nft_verdicts {
|
||||
* @NFT_MSG_GETOBJ: get a stateful object (enum nft_obj_attributes)
|
||||
* @NFT_MSG_DELOBJ: delete a stateful object (enum nft_obj_attributes)
|
||||
* @NFT_MSG_GETOBJ_RESET: get and reset a stateful object (enum nft_obj_attributes)
|
||||
* @NFT_MSG_NEWFLOWTABLE: add new flow table (enum nft_flowtable_attributes)
|
||||
* @NFT_MSG_GETFLOWTABLE: get flow table (enum nft_flowtable_attributes)
|
||||
* @NFT_MSG_DELFLOWTABLE: delete flow table (enum nft_flowtable_attributes)
|
||||
*/
|
||||
enum nf_tables_msg_types {
|
||||
NFT_MSG_NEWTABLE,
|
||||
@@ -116,6 +119,9 @@ enum nf_tables_msg_types {
|
||||
NFT_MSG_GETOBJ,
|
||||
NFT_MSG_DELOBJ,
|
||||
NFT_MSG_GETOBJ_RESET,
|
||||
NFT_MSG_NEWFLOWTABLE,
|
||||
NFT_MSG_GETFLOWTABLE,
|
||||
NFT_MSG_DELFLOWTABLE,
|
||||
NFT_MSG_MAX,
|
||||
};
|
||||
|
||||
@@ -168,6 +174,8 @@ enum nft_table_attributes {
|
||||
NFTA_TABLE_NAME,
|
||||
NFTA_TABLE_FLAGS,
|
||||
NFTA_TABLE_USE,
|
||||
NFTA_TABLE_HANDLE,
|
||||
NFTA_TABLE_PAD,
|
||||
__NFTA_TABLE_MAX
|
||||
};
|
||||
#define NFTA_TABLE_MAX (__NFTA_TABLE_MAX - 1)
|
||||
@@ -311,6 +319,7 @@ enum nft_set_desc_attributes {
|
||||
* @NFTA_SET_GC_INTERVAL: garbage collection interval (NLA_U32)
|
||||
* @NFTA_SET_USERDATA: user data (NLA_BINARY)
|
||||
* @NFTA_SET_OBJ_TYPE: stateful object type (NLA_U32: NFT_OBJECT_*)
|
||||
* @NFTA_SET_HANDLE: set handle (NLA_U64)
|
||||
*/
|
||||
enum nft_set_attributes {
|
||||
NFTA_SET_UNSPEC,
|
||||
@@ -329,6 +338,7 @@ enum nft_set_attributes {
|
||||
NFTA_SET_USERDATA,
|
||||
NFTA_SET_PAD,
|
||||
NFTA_SET_OBJ_TYPE,
|
||||
NFTA_SET_HANDLE,
|
||||
__NFTA_SET_MAX
|
||||
};
|
||||
#define NFTA_SET_MAX (__NFTA_SET_MAX - 1)
|
||||
@@ -777,6 +787,7 @@ enum nft_exthdr_attributes {
|
||||
* @NFT_META_OIFGROUP: packet output interface group
|
||||
* @NFT_META_CGROUP: socket control group (skb->sk->sk_classid)
|
||||
* @NFT_META_PRANDOM: a 32bit pseudo-random number
|
||||
* @NFT_META_SECPATH: boolean, secpath_exists (!!skb->sp)
|
||||
*/
|
||||
enum nft_meta_keys {
|
||||
NFT_META_LEN,
|
||||
@@ -804,6 +815,7 @@ enum nft_meta_keys {
|
||||
NFT_META_OIFGROUP,
|
||||
NFT_META_CGROUP,
|
||||
NFT_META_PRANDOM,
|
||||
NFT_META_SECPATH,
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -949,6 +961,17 @@ enum nft_ct_attributes {
|
||||
};
|
||||
#define NFTA_CT_MAX (__NFTA_CT_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_flow_attributes - ct offload expression attributes
|
||||
* @NFTA_FLOW_TABLE_NAME: flow table name (NLA_STRING)
|
||||
*/
|
||||
enum nft_offload_attributes {
|
||||
NFTA_FLOW_UNSPEC,
|
||||
NFTA_FLOW_TABLE_NAME,
|
||||
__NFTA_FLOW_MAX,
|
||||
};
|
||||
#define NFTA_FLOW_MAX (__NFTA_FLOW_MAX - 1)
|
||||
|
||||
enum nft_limit_type {
|
||||
NFT_LIMIT_PKTS,
|
||||
NFT_LIMIT_PKT_BYTES
|
||||
@@ -1295,6 +1318,7 @@ enum nft_ct_helper_attributes {
|
||||
* @NFTA_OBJ_TYPE: stateful object type (NLA_U32)
|
||||
* @NFTA_OBJ_DATA: stateful object data (NLA_NESTED)
|
||||
* @NFTA_OBJ_USE: number of references to this expression (NLA_U32)
|
||||
* @NFTA_OBJ_HANDLE: object handle (NLA_U64)
|
||||
*/
|
||||
enum nft_object_attributes {
|
||||
NFTA_OBJ_UNSPEC,
|
||||
@@ -1303,10 +1327,62 @@ enum nft_object_attributes {
|
||||
NFTA_OBJ_TYPE,
|
||||
NFTA_OBJ_DATA,
|
||||
NFTA_OBJ_USE,
|
||||
NFTA_OBJ_HANDLE,
|
||||
NFTA_OBJ_PAD,
|
||||
__NFTA_OBJ_MAX
|
||||
};
|
||||
#define NFTA_OBJ_MAX (__NFTA_OBJ_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_flowtable_attributes - nf_tables flow table netlink attributes
|
||||
*
|
||||
* @NFTA_FLOWTABLE_TABLE: name of the table containing the expression (NLA_STRING)
|
||||
* @NFTA_FLOWTABLE_NAME: name of this flow table (NLA_STRING)
|
||||
* @NFTA_FLOWTABLE_HOOK: netfilter hook configuration(NLA_U32)
|
||||
* @NFTA_FLOWTABLE_USE: number of references to this flow table (NLA_U32)
|
||||
* @NFTA_FLOWTABLE_HANDLE: object handle (NLA_U64)
|
||||
*/
|
||||
enum nft_flowtable_attributes {
|
||||
NFTA_FLOWTABLE_UNSPEC,
|
||||
NFTA_FLOWTABLE_TABLE,
|
||||
NFTA_FLOWTABLE_NAME,
|
||||
NFTA_FLOWTABLE_HOOK,
|
||||
NFTA_FLOWTABLE_USE,
|
||||
NFTA_FLOWTABLE_HANDLE,
|
||||
NFTA_FLOWTABLE_PAD,
|
||||
__NFTA_FLOWTABLE_MAX
|
||||
};
|
||||
#define NFTA_FLOWTABLE_MAX (__NFTA_FLOWTABLE_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_flowtable_hook_attributes - nf_tables flow table hook netlink attributes
|
||||
*
|
||||
* @NFTA_FLOWTABLE_HOOK_NUM: netfilter hook number (NLA_U32)
|
||||
* @NFTA_FLOWTABLE_HOOK_PRIORITY: netfilter hook priority (NLA_U32)
|
||||
* @NFTA_FLOWTABLE_HOOK_DEVS: input devices this flow table is bound to (NLA_NESTED)
|
||||
*/
|
||||
enum nft_flowtable_hook_attributes {
|
||||
NFTA_FLOWTABLE_HOOK_UNSPEC,
|
||||
NFTA_FLOWTABLE_HOOK_NUM,
|
||||
NFTA_FLOWTABLE_HOOK_PRIORITY,
|
||||
NFTA_FLOWTABLE_HOOK_DEVS,
|
||||
__NFTA_FLOWTABLE_HOOK_MAX
|
||||
};
|
||||
#define NFTA_FLOWTABLE_HOOK_MAX (__NFTA_FLOWTABLE_HOOK_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_device_attributes - nf_tables device netlink attributes
|
||||
*
|
||||
* @NFTA_DEVICE_NAME: name of this device (NLA_STRING)
|
||||
*/
|
||||
enum nft_devices_attributes {
|
||||
NFTA_DEVICE_UNSPEC,
|
||||
NFTA_DEVICE_NAME,
|
||||
__NFTA_DEVICE_MAX
|
||||
};
|
||||
#define NFTA_DEVICE_MAX (__NFTA_DEVICE_MAX - 1)
|
||||
|
||||
|
||||
/**
|
||||
* enum nft_trace_attributes - nf_tables trace netlink attributes
|
||||
*
|
||||
|
@@ -27,7 +27,7 @@ struct xt_connlimit_info {
|
||||
__u32 flags;
|
||||
|
||||
/* Used internally by the kernel */
|
||||
struct xt_connlimit_data *data __attribute__((aligned(8)));
|
||||
struct nf_conncount_data *data __attribute__((aligned(8)));
|
||||
};
|
||||
|
||||
#endif /* _XT_CONNLIMIT_H */
|
||||
|
@@ -15,6 +15,9 @@
|
||||
#define NF_ARP_IN 0
|
||||
#define NF_ARP_OUT 1
|
||||
#define NF_ARP_FORWARD 2
|
||||
|
||||
#ifndef __KERNEL__
|
||||
#define NF_ARP_NUMHOOKS 3
|
||||
#endif
|
||||
|
||||
#endif /* __LINUX_ARP_NETFILTER_H */
|
||||
|
@@ -24,6 +24,9 @@
|
||||
#define NFC_DN_IF_IN 0x0004
|
||||
/* Output device. */
|
||||
#define NFC_DN_IF_OUT 0x0008
|
||||
|
||||
/* kernel define is in netfilter_defs.h */
|
||||
#define NF_DN_NUMHOOKS 7
|
||||
#endif /* ! __KERNEL__ */
|
||||
|
||||
/* DECnet Hooks */
|
||||
@@ -41,7 +44,6 @@
|
||||
#define NF_DN_HELLO 5
|
||||
/* Input Routing Packets */
|
||||
#define NF_DN_ROUTE 6
|
||||
#define NF_DN_NUMHOOKS 7
|
||||
|
||||
enum nf_dn_hook_priorities {
|
||||
NF_DN_PRI_FIRST = INT_MIN,
|
||||
|
@@ -57,6 +57,7 @@
|
||||
|
||||
enum nf_ip_hook_priorities {
|
||||
NF_IP_PRI_FIRST = INT_MIN,
|
||||
NF_IP_PRI_RAW_BEFORE_DEFRAG = -450,
|
||||
NF_IP_PRI_CONNTRACK_DEFRAG = -400,
|
||||
NF_IP_PRI_RAW = -300,
|
||||
NF_IP_PRI_SELINUX_FIRST = -225,
|
||||
|
@@ -62,6 +62,7 @@
|
||||
|
||||
enum nf_ip6_hook_priorities {
|
||||
NF_IP6_PRI_FIRST = INT_MIN,
|
||||
NF_IP6_PRI_RAW_BEFORE_DEFRAG = -450,
|
||||
NF_IP6_PRI_CONNTRACK_DEFRAG = -400,
|
||||
NF_IP6_PRI_RAW = -300,
|
||||
NF_IP6_PRI_SELINUX_FIRST = -225,
|
||||
|
57
include/uapi/linux/netfilter_ipv6/ip6t_srh.h
Normal file
57
include/uapi/linux/netfilter_ipv6/ip6t_srh.h
Normal file
@@ -0,0 +1,57 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
#ifndef _IP6T_SRH_H
|
||||
#define _IP6T_SRH_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/netfilter.h>
|
||||
|
||||
/* Values for "mt_flags" field in struct ip6t_srh */
|
||||
#define IP6T_SRH_NEXTHDR 0x0001
|
||||
#define IP6T_SRH_LEN_EQ 0x0002
|
||||
#define IP6T_SRH_LEN_GT 0x0004
|
||||
#define IP6T_SRH_LEN_LT 0x0008
|
||||
#define IP6T_SRH_SEGS_EQ 0x0010
|
||||
#define IP6T_SRH_SEGS_GT 0x0020
|
||||
#define IP6T_SRH_SEGS_LT 0x0040
|
||||
#define IP6T_SRH_LAST_EQ 0x0080
|
||||
#define IP6T_SRH_LAST_GT 0x0100
|
||||
#define IP6T_SRH_LAST_LT 0x0200
|
||||
#define IP6T_SRH_TAG 0x0400
|
||||
#define IP6T_SRH_MASK 0x07FF
|
||||
|
||||
/* Values for "mt_invflags" field in struct ip6t_srh */
|
||||
#define IP6T_SRH_INV_NEXTHDR 0x0001
|
||||
#define IP6T_SRH_INV_LEN_EQ 0x0002
|
||||
#define IP6T_SRH_INV_LEN_GT 0x0004
|
||||
#define IP6T_SRH_INV_LEN_LT 0x0008
|
||||
#define IP6T_SRH_INV_SEGS_EQ 0x0010
|
||||
#define IP6T_SRH_INV_SEGS_GT 0x0020
|
||||
#define IP6T_SRH_INV_SEGS_LT 0x0040
|
||||
#define IP6T_SRH_INV_LAST_EQ 0x0080
|
||||
#define IP6T_SRH_INV_LAST_GT 0x0100
|
||||
#define IP6T_SRH_INV_LAST_LT 0x0200
|
||||
#define IP6T_SRH_INV_TAG 0x0400
|
||||
#define IP6T_SRH_INV_MASK 0x07FF
|
||||
|
||||
/**
|
||||
* struct ip6t_srh - SRH match options
|
||||
* @ next_hdr: Next header field of SRH
|
||||
* @ hdr_len: Extension header length field of SRH
|
||||
* @ segs_left: Segments left field of SRH
|
||||
* @ last_entry: Last entry field of SRH
|
||||
* @ tag: Tag field of SRH
|
||||
* @ mt_flags: match options
|
||||
* @ mt_invflags: Invert the sense of match options
|
||||
*/
|
||||
|
||||
struct ip6t_srh {
|
||||
__u8 next_hdr;
|
||||
__u8 hdr_len;
|
||||
__u8 segs_left;
|
||||
__u8 last_entry;
|
||||
__u16 tag;
|
||||
__u16 mt_flags;
|
||||
__u16 mt_invflags;
|
||||
};
|
||||
|
||||
#endif /*_IP6T_SRH_H*/
|
@@ -12,6 +12,7 @@
|
||||
|
||||
#define NFS_PROGRAM 100003
|
||||
#define NFS_PORT 2049
|
||||
#define NFS_RDMA_PORT 20049
|
||||
#define NFS_MAXDATA 8192
|
||||
#define NFS_MAXPATHLEN 1024
|
||||
#define NFS_MAXNAMLEN 255
|
||||
|
@@ -3862,6 +3862,9 @@ enum nl80211_bss_scan_width {
|
||||
* @NL80211_BSS_PARENT_BSSID. (u64).
|
||||
* @NL80211_BSS_PARENT_BSSID: the BSS according to which @NL80211_BSS_PARENT_TSF
|
||||
* is set.
|
||||
* @NL80211_BSS_CHAIN_SIGNAL: per-chain signal strength of last BSS update.
|
||||
* Contains a nested array of signal strength attributes (u8, dBm),
|
||||
* using the nesting index as the antenna number.
|
||||
* @__NL80211_BSS_AFTER_LAST: internal
|
||||
* @NL80211_BSS_MAX: highest BSS attribute
|
||||
*/
|
||||
@@ -3885,6 +3888,7 @@ enum nl80211_bss {
|
||||
NL80211_BSS_PAD,
|
||||
NL80211_BSS_PARENT_TSF,
|
||||
NL80211_BSS_PARENT_BSSID,
|
||||
NL80211_BSS_CHAIN_SIGNAL,
|
||||
|
||||
/* keep last */
|
||||
__NL80211_BSS_AFTER_LAST,
|
||||
|
@@ -363,6 +363,7 @@ enum ovs_tunnel_key_attr {
|
||||
OVS_TUNNEL_KEY_ATTR_IPV6_SRC, /* struct in6_addr src IPv6 address. */
|
||||
OVS_TUNNEL_KEY_ATTR_IPV6_DST, /* struct in6_addr dst IPv6 address. */
|
||||
OVS_TUNNEL_KEY_ATTR_PAD,
|
||||
OVS_TUNNEL_KEY_ATTR_ERSPAN_OPTS, /* struct erspan_metadata */
|
||||
__OVS_TUNNEL_KEY_ATTR_MAX
|
||||
};
|
||||
|
||||
|
@@ -622,15 +622,19 @@
|
||||
* safely.
|
||||
*/
|
||||
#define PCI_EXP_DEVCAP2 36 /* Device Capabilities 2 */
|
||||
#define PCI_EXP_DEVCAP2_COMP_TMOUT_DIS 0x00000010 /* Completion Timeout Disable supported */
|
||||
#define PCI_EXP_DEVCAP2_ARI 0x00000020 /* Alternative Routing-ID */
|
||||
#define PCI_EXP_DEVCAP2_ATOMIC_ROUTE 0x00000040 /* Atomic Op routing */
|
||||
#define PCI_EXP_DEVCAP2_ATOMIC_COMP64 0x00000100 /* Atomic 64-bit compare */
|
||||
#define PCI_EXP_DEVCAP2_ATOMIC_COMP32 0x00000080 /* 32b AtomicOp completion */
|
||||
#define PCI_EXP_DEVCAP2_ATOMIC_COMP64 0x00000100 /* 64b AtomicOp completion */
|
||||
#define PCI_EXP_DEVCAP2_ATOMIC_COMP128 0x00000200 /* 128b AtomicOp completion */
|
||||
#define PCI_EXP_DEVCAP2_LTR 0x00000800 /* Latency tolerance reporting */
|
||||
#define PCI_EXP_DEVCAP2_OBFF_MASK 0x000c0000 /* OBFF support mechanism */
|
||||
#define PCI_EXP_DEVCAP2_OBFF_MSG 0x00040000 /* New message signaling */
|
||||
#define PCI_EXP_DEVCAP2_OBFF_WAKE 0x00080000 /* Re-use WAKE# for OBFF */
|
||||
#define PCI_EXP_DEVCTL2 40 /* Device Control 2 */
|
||||
#define PCI_EXP_DEVCTL2_COMP_TIMEOUT 0x000f /* Completion Timeout Value */
|
||||
#define PCI_EXP_DEVCTL2_COMP_TMOUT_DIS 0x0010 /* Completion Timeout Disable */
|
||||
#define PCI_EXP_DEVCTL2_ARI 0x0020 /* Alternative Routing-ID */
|
||||
#define PCI_EXP_DEVCTL2_ATOMIC_REQ 0x0040 /* Set Atomic requests */
|
||||
#define PCI_EXP_DEVCTL2_ATOMIC_EGRESS_BLOCK 0x0080 /* Block atomic egress */
|
||||
@@ -966,26 +970,28 @@
|
||||
|
||||
/* Downstream Port Containment */
|
||||
#define PCI_EXP_DPC_CAP 4 /* DPC Capability */
|
||||
#define PCI_EXP_DPC_IRQ 0x1f /* DPC Interrupt Message Number */
|
||||
#define PCI_EXP_DPC_CAP_RP_EXT 0x20 /* Root Port Extensions for DPC */
|
||||
#define PCI_EXP_DPC_CAP_POISONED_TLP 0x40 /* Poisoned TLP Egress Blocking Supported */
|
||||
#define PCI_EXP_DPC_CAP_SW_TRIGGER 0x80 /* Software Triggering Supported */
|
||||
#define PCI_EXP_DPC_RP_PIO_LOG_SIZE 0xF00 /* RP PIO log size */
|
||||
#define PCI_EXP_DPC_IRQ 0x001F /* Interrupt Message Number */
|
||||
#define PCI_EXP_DPC_CAP_RP_EXT 0x0020 /* Root Port Extensions */
|
||||
#define PCI_EXP_DPC_CAP_POISONED_TLP 0x0040 /* Poisoned TLP Egress Blocking Supported */
|
||||
#define PCI_EXP_DPC_CAP_SW_TRIGGER 0x0080 /* Software Triggering Supported */
|
||||
#define PCI_EXP_DPC_RP_PIO_LOG_SIZE 0x0F00 /* RP PIO Log Size */
|
||||
#define PCI_EXP_DPC_CAP_DL_ACTIVE 0x1000 /* ERR_COR signal on DL_Active supported */
|
||||
|
||||
#define PCI_EXP_DPC_CTL 6 /* DPC control */
|
||||
#define PCI_EXP_DPC_CTL_EN_NONFATAL 0x02 /* Enable trigger on ERR_NONFATAL message */
|
||||
#define PCI_EXP_DPC_CTL_INT_EN 0x08 /* DPC Interrupt Enable */
|
||||
#define PCI_EXP_DPC_CTL_EN_NONFATAL 0x0002 /* Enable trigger on ERR_NONFATAL message */
|
||||
#define PCI_EXP_DPC_CTL_INT_EN 0x0008 /* DPC Interrupt Enable */
|
||||
|
||||
#define PCI_EXP_DPC_STATUS 8 /* DPC Status */
|
||||
#define PCI_EXP_DPC_STATUS_TRIGGER 0x01 /* Trigger Status */
|
||||
#define PCI_EXP_DPC_STATUS_INTERRUPT 0x08 /* Interrupt Status */
|
||||
#define PCI_EXP_DPC_RP_BUSY 0x10 /* Root Port Busy */
|
||||
#define PCI_EXP_DPC_STATUS_TRIGGER 0x0001 /* Trigger Status */
|
||||
#define PCI_EXP_DPC_STATUS_TRIGGER_RSN 0x0006 /* Trigger Reason */
|
||||
#define PCI_EXP_DPC_STATUS_INTERRUPT 0x0008 /* Interrupt Status */
|
||||
#define PCI_EXP_DPC_RP_BUSY 0x0010 /* Root Port Busy */
|
||||
#define PCI_EXP_DPC_STATUS_TRIGGER_RSN_EXT 0x0060 /* Trig Reason Extension */
|
||||
|
||||
#define PCI_EXP_DPC_SOURCE_ID 10 /* DPC Source Identifier */
|
||||
|
||||
#define PCI_EXP_DPC_RP_PIO_STATUS 0x0C /* RP PIO Status */
|
||||
#define PCI_EXP_DPC_RP_PIO_MASK 0x10 /* RP PIO MASK */
|
||||
#define PCI_EXP_DPC_RP_PIO_MASK 0x10 /* RP PIO Mask */
|
||||
#define PCI_EXP_DPC_RP_PIO_SEVERITY 0x14 /* RP PIO Severity */
|
||||
#define PCI_EXP_DPC_RP_PIO_SYSERROR 0x18 /* RP PIO SysError */
|
||||
#define PCI_EXP_DPC_RP_PIO_EXCEPTION 0x1C /* RP PIO Exception */
|
||||
|
@@ -418,6 +418,27 @@ struct perf_event_attr {
|
||||
__u16 __reserved_2; /* align to __u64 */
|
||||
};
|
||||
|
||||
/*
|
||||
* Structure used by below PERF_EVENT_IOC_QUERY_BPF command
|
||||
* to query bpf programs attached to the same perf tracepoint
|
||||
* as the given perf event.
|
||||
*/
|
||||
struct perf_event_query_bpf {
|
||||
/*
|
||||
* The below ids array length
|
||||
*/
|
||||
__u32 ids_len;
|
||||
/*
|
||||
* Set by the kernel to indicate the number of
|
||||
* available programs
|
||||
*/
|
||||
__u32 prog_cnt;
|
||||
/*
|
||||
* User provided buffer to store program ids
|
||||
*/
|
||||
__u32 ids[0];
|
||||
};
|
||||
|
||||
#define perf_flags(attr) (*(&(attr)->read_format + 1))
|
||||
|
||||
/*
|
||||
@@ -433,6 +454,7 @@ struct perf_event_attr {
|
||||
#define PERF_EVENT_IOC_ID _IOR('$', 7, __u64 *)
|
||||
#define PERF_EVENT_IOC_SET_BPF _IOW('$', 8, __u32)
|
||||
#define PERF_EVENT_IOC_PAUSE_OUTPUT _IOW('$', 9, __u32)
|
||||
#define PERF_EVENT_IOC_QUERY_BPF _IOWR('$', 10, struct perf_event_query_bpf *)
|
||||
|
||||
enum perf_event_ioc_flags {
|
||||
PERF_IOC_FLAG_GROUP = 1U << 0,
|
||||
|
@@ -66,6 +66,12 @@ struct ptrace_peeksiginfo_args {
|
||||
#define PTRACE_SETSIGMASK 0x420b
|
||||
|
||||
#define PTRACE_SECCOMP_GET_FILTER 0x420c
|
||||
#define PTRACE_SECCOMP_GET_METADATA 0x420d
|
||||
|
||||
struct seccomp_metadata {
|
||||
unsigned long filter_off; /* Input: which filter */
|
||||
unsigned int flags; /* Output: filter's flags */
|
||||
};
|
||||
|
||||
/* Read signals from a shared (process wide) queue */
|
||||
#define PTRACE_PEEKSIGINFO_SHARED (1 << 0)
|
||||
|
@@ -541,9 +541,19 @@ struct tcmsg {
|
||||
int tcm_ifindex;
|
||||
__u32 tcm_handle;
|
||||
__u32 tcm_parent;
|
||||
/* tcm_block_index is used instead of tcm_parent
|
||||
* in case tcm_ifindex == TCM_IFINDEX_MAGIC_BLOCK
|
||||
*/
|
||||
#define tcm_block_index tcm_parent
|
||||
__u32 tcm_info;
|
||||
};
|
||||
|
||||
/* For manipulation of filters in shared block, tcm_ifindex is set to
|
||||
* TCM_IFINDEX_MAGIC_BLOCK, and tcm_parent is aliased to tcm_block_index
|
||||
* which is the block index.
|
||||
*/
|
||||
#define TCM_IFINDEX_MAGIC_BLOCK (0xFFFFFFFFU)
|
||||
|
||||
enum {
|
||||
TCA_UNSPEC,
|
||||
TCA_KIND,
|
||||
@@ -558,6 +568,8 @@ enum {
|
||||
TCA_DUMP_INVISIBLE,
|
||||
TCA_CHAIN,
|
||||
TCA_HW_OFFLOAD,
|
||||
TCA_INGRESS_BLOCK,
|
||||
TCA_EGRESS_BLOCK,
|
||||
__TCA_MAX
|
||||
};
|
||||
|
||||
|
@@ -125,6 +125,7 @@ typedef __s32 sctp_assoc_t;
|
||||
#define SCTP_SOCKOPT_PEELOFF_FLAGS 122
|
||||
#define SCTP_STREAM_SCHEDULER 123
|
||||
#define SCTP_STREAM_SCHEDULER_VALUE 124
|
||||
#define SCTP_INTERLEAVING_SUPPORTED 125
|
||||
|
||||
/* PR-SCTP policies */
|
||||
#define SCTP_PR_SCTP_NONE 0x0000
|
||||
@@ -459,6 +460,8 @@ struct sctp_pdapi_event {
|
||||
__u32 pdapi_length;
|
||||
__u32 pdapi_indication;
|
||||
sctp_assoc_t pdapi_assoc_id;
|
||||
__u32 pdapi_stream;
|
||||
__u32 pdapi_seq;
|
||||
};
|
||||
|
||||
enum { SCTP_PARTIAL_DELIVERY_ABORTED=0, };
|
||||
|
@@ -88,7 +88,8 @@ struct switchtec_ioctl_event_summary {
|
||||
#define SWITCHTEC_IOCTL_EVENT_FORCE_SPEED 26
|
||||
#define SWITCHTEC_IOCTL_EVENT_CREDIT_TIMEOUT 27
|
||||
#define SWITCHTEC_IOCTL_EVENT_LINK_STATE 28
|
||||
#define SWITCHTEC_IOCTL_MAX_EVENTS 29
|
||||
#define SWITCHTEC_IOCTL_EVENT_GFMS 29
|
||||
#define SWITCHTEC_IOCTL_MAX_EVENTS 30
|
||||
|
||||
#define SWITCHTEC_IOCTL_EVENT_LOCAL_PART_IDX -1
|
||||
#define SWITCHTEC_IOCTL_EVENT_IDX_ALL -2
|
||||
|
@@ -50,6 +50,7 @@
|
||||
|
||||
#define TEE_GEN_CAP_GP (1 << 0)/* GlobalPlatform compliant TEE */
|
||||
#define TEE_GEN_CAP_PRIVILEGED (1 << 1)/* Privileged device (for supplicant) */
|
||||
#define TEE_GEN_CAP_REG_MEM (1 << 2)/* Supports registering shared memory */
|
||||
|
||||
/*
|
||||
* TEE Implementation ID
|
||||
@@ -154,6 +155,13 @@ struct tee_ioctl_buf_data {
|
||||
*/
|
||||
#define TEE_IOCTL_PARAM_ATTR_TYPE_MASK 0xff
|
||||
|
||||
/* Meta parameter carrying extra information about the message. */
|
||||
#define TEE_IOCTL_PARAM_ATTR_META 0x100
|
||||
|
||||
/* Mask of all known attr bits */
|
||||
#define TEE_IOCTL_PARAM_ATTR_MASK \
|
||||
(TEE_IOCTL_PARAM_ATTR_TYPE_MASK | TEE_IOCTL_PARAM_ATTR_META)
|
||||
|
||||
/*
|
||||
* Matches TEEC_LOGIN_* in GP TEE Client API
|
||||
* Are only defined for GP compliant TEEs
|
||||
@@ -332,6 +340,35 @@ struct tee_iocl_supp_send_arg {
|
||||
#define TEE_IOC_SUPPL_SEND _IOR(TEE_IOC_MAGIC, TEE_IOC_BASE + 7, \
|
||||
struct tee_ioctl_buf_data)
|
||||
|
||||
/**
|
||||
* struct tee_ioctl_shm_register_data - Shared memory register argument
|
||||
* @addr: [in] Start address of shared memory to register
|
||||
* @length: [in/out] Length of shared memory to register
|
||||
* @flags: [in/out] Flags to/from registration.
|
||||
* @id: [out] Identifier of the shared memory
|
||||
*
|
||||
* The flags field should currently be zero as input. Updated by the call
|
||||
* with actual flags as defined by TEE_IOCTL_SHM_* above.
|
||||
* This structure is used as argument for TEE_IOC_SHM_REGISTER below.
|
||||
*/
|
||||
struct tee_ioctl_shm_register_data {
|
||||
__u64 addr;
|
||||
__u64 length;
|
||||
__u32 flags;
|
||||
__s32 id;
|
||||
};
|
||||
|
||||
/**
|
||||
* TEE_IOC_SHM_REGISTER - Register shared memory argument
|
||||
*
|
||||
* Registers shared memory between the user space process and secure OS.
|
||||
*
|
||||
* Returns a file descriptor on success or < 0 on failure
|
||||
*
|
||||
* The shared memory is unregisterred when the descriptor is closed.
|
||||
*/
|
||||
#define TEE_IOC_SHM_REGISTER _IOWR(TEE_IOC_MAGIC, TEE_IOC_BASE + 9, \
|
||||
struct tee_ioctl_shm_register_data)
|
||||
/*
|
||||
* Five syscalls are used when communicating with the TEE driver.
|
||||
* open(): opens the device associated with the driver
|
||||
|
@@ -117,10 +117,9 @@ static inline unsigned int tipc_node(__u32 addr)
|
||||
/*
|
||||
* Publication scopes when binding port names and port name sequences
|
||||
*/
|
||||
|
||||
#define TIPC_ZONE_SCOPE 1
|
||||
#define TIPC_CLUSTER_SCOPE 2
|
||||
#define TIPC_NODE_SCOPE 3
|
||||
#define TIPC_ZONE_SCOPE 1
|
||||
#define TIPC_CLUSTER_SCOPE 2
|
||||
#define TIPC_NODE_SCOPE 3
|
||||
|
||||
/*
|
||||
* Limiting values for messages
|
||||
|
@@ -49,5 +49,11 @@ typedef __u32 __bitwise __wsum;
|
||||
#define __aligned_be64 __be64 __attribute__((aligned(8)))
|
||||
#define __aligned_le64 __le64 __attribute__((aligned(8)))
|
||||
|
||||
#ifdef __CHECK_POLL
|
||||
typedef unsigned __bitwise __poll_t;
|
||||
#else
|
||||
typedef unsigned __poll_t;
|
||||
#endif
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
#endif /* _UAPI_LINUX_TYPES_H */
|
||||
|
@@ -1077,9 +1077,9 @@ struct usb_ptm_cap_descriptor {
|
||||
#define USB_DT_USB_PTM_ID_SIZE 3
|
||||
/*
|
||||
* The size of the descriptor for the Sublink Speed Attribute Count
|
||||
* (SSAC) specified in bmAttributes[4:0].
|
||||
* (SSAC) specified in bmAttributes[4:0]. SSAC is zero-based
|
||||
*/
|
||||
#define USB_DT_USB_SSP_CAP_SIZE(ssac) (16 + ssac * 4)
|
||||
#define USB_DT_USB_SSP_CAP_SIZE(ssac) (12 + (ssac + 1) * 4)
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
|
@@ -79,7 +79,7 @@ struct usbdevfs_connectinfo {
|
||||
#define USBDEVFS_URB_SHORT_NOT_OK 0x01
|
||||
#define USBDEVFS_URB_ISO_ASAP 0x02
|
||||
#define USBDEVFS_URB_BULK_CONTINUATION 0x04
|
||||
#define USBDEVFS_URB_NO_FSBR 0x20
|
||||
#define USBDEVFS_URB_NO_FSBR 0x20 /* Not used */
|
||||
#define USBDEVFS_URB_ZERO_PACKET 0x40
|
||||
#define USBDEVFS_URB_NO_INTERRUPT 0x80
|
||||
|
||||
|
@@ -68,4 +68,30 @@ struct uvc_xu_control_query {
|
||||
#define UVCIOC_CTRL_MAP _IOWR('u', 0x20, struct uvc_xu_control_mapping)
|
||||
#define UVCIOC_CTRL_QUERY _IOWR('u', 0x21, struct uvc_xu_control_query)
|
||||
|
||||
/*
|
||||
* Metadata node
|
||||
*/
|
||||
|
||||
/**
|
||||
* struct uvc_meta_buf - metadata buffer building block
|
||||
* @ns - system timestamp of the payload in nanoseconds
|
||||
* @sof - USB Frame Number
|
||||
* @length - length of the payload header
|
||||
* @flags - payload header flags
|
||||
* @buf - optional device-specific header data
|
||||
*
|
||||
* UVC metadata nodes fill buffers with possibly multiple instances of this
|
||||
* struct. The first two fields are added by the driver, they can be used for
|
||||
* clock synchronisation. The rest is an exact copy of a UVC payload header.
|
||||
* Only complete objects with complete buffers are included. Therefore it's
|
||||
* always sizeof(meta->ts) + sizeof(meta->sof) + meta->length bytes large.
|
||||
*/
|
||||
struct uvc_meta_buf {
|
||||
__u64 ns;
|
||||
__u16 sof;
|
||||
__u8 length;
|
||||
__u8 flags;
|
||||
__u8 buf[];
|
||||
} __packed;
|
||||
|
||||
#endif
|
||||
|
@@ -67,8 +67,8 @@
|
||||
/* User-class control IDs */
|
||||
|
||||
#define V4L2_CID_BASE (V4L2_CTRL_CLASS_USER | 0x900)
|
||||
#define V4L2_CID_USER_BASE V4L2_CID_BASE
|
||||
#define V4L2_CID_USER_CLASS (V4L2_CTRL_CLASS_USER | 1)
|
||||
#define V4L2_CID_USER_BASE V4L2_CID_BASE
|
||||
#define V4L2_CID_USER_CLASS (V4L2_CTRL_CLASS_USER | 1)
|
||||
#define V4L2_CID_BRIGHTNESS (V4L2_CID_BASE+0)
|
||||
#define V4L2_CID_CONTRAST (V4L2_CID_BASE+1)
|
||||
#define V4L2_CID_SATURATION (V4L2_CID_BASE+2)
|
||||
@@ -102,7 +102,7 @@ enum v4l2_power_line_frequency {
|
||||
#define V4L2_CID_HUE_AUTO (V4L2_CID_BASE+25)
|
||||
#define V4L2_CID_WHITE_BALANCE_TEMPERATURE (V4L2_CID_BASE+26)
|
||||
#define V4L2_CID_SHARPNESS (V4L2_CID_BASE+27)
|
||||
#define V4L2_CID_BACKLIGHT_COMPENSATION (V4L2_CID_BASE+28)
|
||||
#define V4L2_CID_BACKLIGHT_COMPENSATION (V4L2_CID_BASE+28)
|
||||
#define V4L2_CID_CHROMA_AGC (V4L2_CID_BASE+29)
|
||||
#define V4L2_CID_COLOR_KILLER (V4L2_CID_BASE+30)
|
||||
#define V4L2_CID_COLORFX (V4L2_CID_BASE+31)
|
||||
@@ -194,11 +194,11 @@ enum v4l2_colorfx {
|
||||
/* The MPEG controls are applicable to all codec controls
|
||||
* and the 'MPEG' part of the define is historical */
|
||||
|
||||
#define V4L2_CID_MPEG_BASE (V4L2_CTRL_CLASS_MPEG | 0x900)
|
||||
#define V4L2_CID_MPEG_CLASS (V4L2_CTRL_CLASS_MPEG | 1)
|
||||
#define V4L2_CID_MPEG_BASE (V4L2_CTRL_CLASS_MPEG | 0x900)
|
||||
#define V4L2_CID_MPEG_CLASS (V4L2_CTRL_CLASS_MPEG | 1)
|
||||
|
||||
/* MPEG streams, specific to multiplexed streams */
|
||||
#define V4L2_CID_MPEG_STREAM_TYPE (V4L2_CID_MPEG_BASE+0)
|
||||
#define V4L2_CID_MPEG_STREAM_TYPE (V4L2_CID_MPEG_BASE+0)
|
||||
enum v4l2_mpeg_stream_type {
|
||||
V4L2_MPEG_STREAM_TYPE_MPEG2_PS = 0, /* MPEG-2 program stream */
|
||||
V4L2_MPEG_STREAM_TYPE_MPEG2_TS = 1, /* MPEG-2 transport stream */
|
||||
@@ -207,26 +207,26 @@ enum v4l2_mpeg_stream_type {
|
||||
V4L2_MPEG_STREAM_TYPE_MPEG1_VCD = 4, /* MPEG-1 VCD-compatible stream */
|
||||
V4L2_MPEG_STREAM_TYPE_MPEG2_SVCD = 5, /* MPEG-2 SVCD-compatible stream */
|
||||
};
|
||||
#define V4L2_CID_MPEG_STREAM_PID_PMT (V4L2_CID_MPEG_BASE+1)
|
||||
#define V4L2_CID_MPEG_STREAM_PID_AUDIO (V4L2_CID_MPEG_BASE+2)
|
||||
#define V4L2_CID_MPEG_STREAM_PID_VIDEO (V4L2_CID_MPEG_BASE+3)
|
||||
#define V4L2_CID_MPEG_STREAM_PID_PCR (V4L2_CID_MPEG_BASE+4)
|
||||
#define V4L2_CID_MPEG_STREAM_PES_ID_AUDIO (V4L2_CID_MPEG_BASE+5)
|
||||
#define V4L2_CID_MPEG_STREAM_PES_ID_VIDEO (V4L2_CID_MPEG_BASE+6)
|
||||
#define V4L2_CID_MPEG_STREAM_VBI_FMT (V4L2_CID_MPEG_BASE+7)
|
||||
#define V4L2_CID_MPEG_STREAM_PID_PMT (V4L2_CID_MPEG_BASE+1)
|
||||
#define V4L2_CID_MPEG_STREAM_PID_AUDIO (V4L2_CID_MPEG_BASE+2)
|
||||
#define V4L2_CID_MPEG_STREAM_PID_VIDEO (V4L2_CID_MPEG_BASE+3)
|
||||
#define V4L2_CID_MPEG_STREAM_PID_PCR (V4L2_CID_MPEG_BASE+4)
|
||||
#define V4L2_CID_MPEG_STREAM_PES_ID_AUDIO (V4L2_CID_MPEG_BASE+5)
|
||||
#define V4L2_CID_MPEG_STREAM_PES_ID_VIDEO (V4L2_CID_MPEG_BASE+6)
|
||||
#define V4L2_CID_MPEG_STREAM_VBI_FMT (V4L2_CID_MPEG_BASE+7)
|
||||
enum v4l2_mpeg_stream_vbi_fmt {
|
||||
V4L2_MPEG_STREAM_VBI_FMT_NONE = 0, /* No VBI in the MPEG stream */
|
||||
V4L2_MPEG_STREAM_VBI_FMT_IVTV = 1, /* VBI in private packets, IVTV format */
|
||||
};
|
||||
|
||||
/* MPEG audio controls specific to multiplexed streams */
|
||||
#define V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ (V4L2_CID_MPEG_BASE+100)
|
||||
#define V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ (V4L2_CID_MPEG_BASE+100)
|
||||
enum v4l2_mpeg_audio_sampling_freq {
|
||||
V4L2_MPEG_AUDIO_SAMPLING_FREQ_44100 = 0,
|
||||
V4L2_MPEG_AUDIO_SAMPLING_FREQ_48000 = 1,
|
||||
V4L2_MPEG_AUDIO_SAMPLING_FREQ_32000 = 2,
|
||||
};
|
||||
#define V4L2_CID_MPEG_AUDIO_ENCODING (V4L2_CID_MPEG_BASE+101)
|
||||
#define V4L2_CID_MPEG_AUDIO_ENCODING (V4L2_CID_MPEG_BASE+101)
|
||||
enum v4l2_mpeg_audio_encoding {
|
||||
V4L2_MPEG_AUDIO_ENCODING_LAYER_1 = 0,
|
||||
V4L2_MPEG_AUDIO_ENCODING_LAYER_2 = 1,
|
||||
@@ -234,7 +234,7 @@ enum v4l2_mpeg_audio_encoding {
|
||||
V4L2_MPEG_AUDIO_ENCODING_AAC = 3,
|
||||
V4L2_MPEG_AUDIO_ENCODING_AC3 = 4,
|
||||
};
|
||||
#define V4L2_CID_MPEG_AUDIO_L1_BITRATE (V4L2_CID_MPEG_BASE+102)
|
||||
#define V4L2_CID_MPEG_AUDIO_L1_BITRATE (V4L2_CID_MPEG_BASE+102)
|
||||
enum v4l2_mpeg_audio_l1_bitrate {
|
||||
V4L2_MPEG_AUDIO_L1_BITRATE_32K = 0,
|
||||
V4L2_MPEG_AUDIO_L1_BITRATE_64K = 1,
|
||||
@@ -251,7 +251,7 @@ enum v4l2_mpeg_audio_l1_bitrate {
|
||||
V4L2_MPEG_AUDIO_L1_BITRATE_416K = 12,
|
||||
V4L2_MPEG_AUDIO_L1_BITRATE_448K = 13,
|
||||
};
|
||||
#define V4L2_CID_MPEG_AUDIO_L2_BITRATE (V4L2_CID_MPEG_BASE+103)
|
||||
#define V4L2_CID_MPEG_AUDIO_L2_BITRATE (V4L2_CID_MPEG_BASE+103)
|
||||
enum v4l2_mpeg_audio_l2_bitrate {
|
||||
V4L2_MPEG_AUDIO_L2_BITRATE_32K = 0,
|
||||
V4L2_MPEG_AUDIO_L2_BITRATE_48K = 1,
|
||||
@@ -268,7 +268,7 @@ enum v4l2_mpeg_audio_l2_bitrate {
|
||||
V4L2_MPEG_AUDIO_L2_BITRATE_320K = 12,
|
||||
V4L2_MPEG_AUDIO_L2_BITRATE_384K = 13,
|
||||
};
|
||||
#define V4L2_CID_MPEG_AUDIO_L3_BITRATE (V4L2_CID_MPEG_BASE+104)
|
||||
#define V4L2_CID_MPEG_AUDIO_L3_BITRATE (V4L2_CID_MPEG_BASE+104)
|
||||
enum v4l2_mpeg_audio_l3_bitrate {
|
||||
V4L2_MPEG_AUDIO_L3_BITRATE_32K = 0,
|
||||
V4L2_MPEG_AUDIO_L3_BITRATE_40K = 1,
|
||||
@@ -285,32 +285,32 @@ enum v4l2_mpeg_audio_l3_bitrate {
|
||||
V4L2_MPEG_AUDIO_L3_BITRATE_256K = 12,
|
||||
V4L2_MPEG_AUDIO_L3_BITRATE_320K = 13,
|
||||
};
|
||||
#define V4L2_CID_MPEG_AUDIO_MODE (V4L2_CID_MPEG_BASE+105)
|
||||
#define V4L2_CID_MPEG_AUDIO_MODE (V4L2_CID_MPEG_BASE+105)
|
||||
enum v4l2_mpeg_audio_mode {
|
||||
V4L2_MPEG_AUDIO_MODE_STEREO = 0,
|
||||
V4L2_MPEG_AUDIO_MODE_JOINT_STEREO = 1,
|
||||
V4L2_MPEG_AUDIO_MODE_DUAL = 2,
|
||||
V4L2_MPEG_AUDIO_MODE_MONO = 3,
|
||||
};
|
||||
#define V4L2_CID_MPEG_AUDIO_MODE_EXTENSION (V4L2_CID_MPEG_BASE+106)
|
||||
#define V4L2_CID_MPEG_AUDIO_MODE_EXTENSION (V4L2_CID_MPEG_BASE+106)
|
||||
enum v4l2_mpeg_audio_mode_extension {
|
||||
V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_4 = 0,
|
||||
V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_8 = 1,
|
||||
V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_12 = 2,
|
||||
V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_16 = 3,
|
||||
};
|
||||
#define V4L2_CID_MPEG_AUDIO_EMPHASIS (V4L2_CID_MPEG_BASE+107)
|
||||
#define V4L2_CID_MPEG_AUDIO_EMPHASIS (V4L2_CID_MPEG_BASE+107)
|
||||
enum v4l2_mpeg_audio_emphasis {
|
||||
V4L2_MPEG_AUDIO_EMPHASIS_NONE = 0,
|
||||
V4L2_MPEG_AUDIO_EMPHASIS_50_DIV_15_uS = 1,
|
||||
V4L2_MPEG_AUDIO_EMPHASIS_CCITT_J17 = 2,
|
||||
};
|
||||
#define V4L2_CID_MPEG_AUDIO_CRC (V4L2_CID_MPEG_BASE+108)
|
||||
#define V4L2_CID_MPEG_AUDIO_CRC (V4L2_CID_MPEG_BASE+108)
|
||||
enum v4l2_mpeg_audio_crc {
|
||||
V4L2_MPEG_AUDIO_CRC_NONE = 0,
|
||||
V4L2_MPEG_AUDIO_CRC_CRC16 = 1,
|
||||
};
|
||||
#define V4L2_CID_MPEG_AUDIO_MUTE (V4L2_CID_MPEG_BASE+109)
|
||||
#define V4L2_CID_MPEG_AUDIO_MUTE (V4L2_CID_MPEG_BASE+109)
|
||||
#define V4L2_CID_MPEG_AUDIO_AAC_BITRATE (V4L2_CID_MPEG_BASE+110)
|
||||
#define V4L2_CID_MPEG_AUDIO_AC3_BITRATE (V4L2_CID_MPEG_BASE+111)
|
||||
enum v4l2_mpeg_audio_ac3_bitrate {
|
||||
@@ -346,33 +346,33 @@ enum v4l2_mpeg_audio_dec_playback {
|
||||
#define V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK (V4L2_CID_MPEG_BASE+113)
|
||||
|
||||
/* MPEG video controls specific to multiplexed streams */
|
||||
#define V4L2_CID_MPEG_VIDEO_ENCODING (V4L2_CID_MPEG_BASE+200)
|
||||
#define V4L2_CID_MPEG_VIDEO_ENCODING (V4L2_CID_MPEG_BASE+200)
|
||||
enum v4l2_mpeg_video_encoding {
|
||||
V4L2_MPEG_VIDEO_ENCODING_MPEG_1 = 0,
|
||||
V4L2_MPEG_VIDEO_ENCODING_MPEG_2 = 1,
|
||||
V4L2_MPEG_VIDEO_ENCODING_MPEG_4_AVC = 2,
|
||||
};
|
||||
#define V4L2_CID_MPEG_VIDEO_ASPECT (V4L2_CID_MPEG_BASE+201)
|
||||
#define V4L2_CID_MPEG_VIDEO_ASPECT (V4L2_CID_MPEG_BASE+201)
|
||||
enum v4l2_mpeg_video_aspect {
|
||||
V4L2_MPEG_VIDEO_ASPECT_1x1 = 0,
|
||||
V4L2_MPEG_VIDEO_ASPECT_4x3 = 1,
|
||||
V4L2_MPEG_VIDEO_ASPECT_16x9 = 2,
|
||||
V4L2_MPEG_VIDEO_ASPECT_221x100 = 3,
|
||||
};
|
||||
#define V4L2_CID_MPEG_VIDEO_B_FRAMES (V4L2_CID_MPEG_BASE+202)
|
||||
#define V4L2_CID_MPEG_VIDEO_GOP_SIZE (V4L2_CID_MPEG_BASE+203)
|
||||
#define V4L2_CID_MPEG_VIDEO_GOP_CLOSURE (V4L2_CID_MPEG_BASE+204)
|
||||
#define V4L2_CID_MPEG_VIDEO_PULLDOWN (V4L2_CID_MPEG_BASE+205)
|
||||
#define V4L2_CID_MPEG_VIDEO_BITRATE_MODE (V4L2_CID_MPEG_BASE+206)
|
||||
#define V4L2_CID_MPEG_VIDEO_B_FRAMES (V4L2_CID_MPEG_BASE+202)
|
||||
#define V4L2_CID_MPEG_VIDEO_GOP_SIZE (V4L2_CID_MPEG_BASE+203)
|
||||
#define V4L2_CID_MPEG_VIDEO_GOP_CLOSURE (V4L2_CID_MPEG_BASE+204)
|
||||
#define V4L2_CID_MPEG_VIDEO_PULLDOWN (V4L2_CID_MPEG_BASE+205)
|
||||
#define V4L2_CID_MPEG_VIDEO_BITRATE_MODE (V4L2_CID_MPEG_BASE+206)
|
||||
enum v4l2_mpeg_video_bitrate_mode {
|
||||
V4L2_MPEG_VIDEO_BITRATE_MODE_VBR = 0,
|
||||
V4L2_MPEG_VIDEO_BITRATE_MODE_CBR = 1,
|
||||
};
|
||||
#define V4L2_CID_MPEG_VIDEO_BITRATE (V4L2_CID_MPEG_BASE+207)
|
||||
#define V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (V4L2_CID_MPEG_BASE+208)
|
||||
#define V4L2_CID_MPEG_VIDEO_BITRATE (V4L2_CID_MPEG_BASE+207)
|
||||
#define V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (V4L2_CID_MPEG_BASE+208)
|
||||
#define V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (V4L2_CID_MPEG_BASE+209)
|
||||
#define V4L2_CID_MPEG_VIDEO_MUTE (V4L2_CID_MPEG_BASE+210)
|
||||
#define V4L2_CID_MPEG_VIDEO_MUTE_YUV (V4L2_CID_MPEG_BASE+211)
|
||||
#define V4L2_CID_MPEG_VIDEO_MUTE (V4L2_CID_MPEG_BASE+210)
|
||||
#define V4L2_CID_MPEG_VIDEO_MUTE_YUV (V4L2_CID_MPEG_BASE+211)
|
||||
#define V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE (V4L2_CID_MPEG_BASE+212)
|
||||
#define V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER (V4L2_CID_MPEG_BASE+213)
|
||||
#define V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB (V4L2_CID_MPEG_BASE+214)
|
||||
@@ -590,14 +590,14 @@ enum v4l2_vp8_golden_frame_sel {
|
||||
#define V4L2_CID_MPEG_VIDEO_VPX_PROFILE (V4L2_CID_MPEG_BASE+511)
|
||||
|
||||
/* MPEG-class control IDs specific to the CX2341x driver as defined by V4L2 */
|
||||
#define V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000)
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+0)
|
||||
#define V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000)
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+0)
|
||||
enum v4l2_mpeg_cx2341x_video_spatial_filter_mode {
|
||||
V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_MANUAL = 0,
|
||||
V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_AUTO = 1,
|
||||
};
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER (V4L2_CID_MPEG_CX2341X_BASE+1)
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+2)
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER (V4L2_CID_MPEG_CX2341X_BASE+1)
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+2)
|
||||
enum v4l2_mpeg_cx2341x_video_luma_spatial_filter_type {
|
||||
V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_OFF = 0,
|
||||
V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_HOR = 1,
|
||||
@@ -605,18 +605,18 @@ enum v4l2_mpeg_cx2341x_video_luma_spatial_filter_type {
|
||||
V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_HV_SEPARABLE = 3,
|
||||
V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_SYM_NON_SEPARABLE = 4,
|
||||
};
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+3)
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+3)
|
||||
enum v4l2_mpeg_cx2341x_video_chroma_spatial_filter_type {
|
||||
V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_OFF = 0,
|
||||
V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_1D_HOR = 1,
|
||||
};
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+4)
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+4)
|
||||
enum v4l2_mpeg_cx2341x_video_temporal_filter_mode {
|
||||
V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_MANUAL = 0,
|
||||
V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_AUTO = 1,
|
||||
};
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER (V4L2_CID_MPEG_CX2341X_BASE+5)
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+6)
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER (V4L2_CID_MPEG_CX2341X_BASE+5)
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+6)
|
||||
enum v4l2_mpeg_cx2341x_video_median_filter_type {
|
||||
V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_OFF = 0,
|
||||
V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR = 1,
|
||||
@@ -624,11 +624,11 @@ enum v4l2_mpeg_cx2341x_video_median_filter_type {
|
||||
V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR_VERT = 3,
|
||||
V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_DIAG = 4,
|
||||
};
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_MPEG_CX2341X_BASE+7)
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP (V4L2_CID_MPEG_CX2341X_BASE+8)
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_MPEG_CX2341X_BASE+7)
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP (V4L2_CID_MPEG_CX2341X_BASE+8)
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_MPEG_CX2341X_BASE+9)
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP (V4L2_CID_MPEG_CX2341X_BASE+10)
|
||||
#define V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS (V4L2_CID_MPEG_CX2341X_BASE+11)
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP (V4L2_CID_MPEG_CX2341X_BASE+10)
|
||||
#define V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS (V4L2_CID_MPEG_CX2341X_BASE+11)
|
||||
|
||||
/* MPEG-class control IDs specific to the Samsung MFC 5.1 driver as defined by V4L2 */
|
||||
#define V4L2_CID_MPEG_MFC51_BASE (V4L2_CTRL_CLASS_MPEG | 0x1100)
|
||||
@@ -660,8 +660,8 @@ enum v4l2_mpeg_mfc51_video_force_frame_type {
|
||||
|
||||
/* Camera class control IDs */
|
||||
|
||||
#define V4L2_CID_CAMERA_CLASS_BASE (V4L2_CTRL_CLASS_CAMERA | 0x900)
|
||||
#define V4L2_CID_CAMERA_CLASS (V4L2_CTRL_CLASS_CAMERA | 1)
|
||||
#define V4L2_CID_CAMERA_CLASS_BASE (V4L2_CTRL_CLASS_CAMERA | 0x900)
|
||||
#define V4L2_CID_CAMERA_CLASS (V4L2_CTRL_CLASS_CAMERA | 1)
|
||||
|
||||
#define V4L2_CID_EXPOSURE_AUTO (V4L2_CID_CAMERA_CLASS_BASE+1)
|
||||
enum v4l2_exposure_auto_type {
|
||||
|
151
include/uapi/linux/vbox_err.h
Normal file
151
include/uapi/linux/vbox_err.h
Normal file
@@ -0,0 +1,151 @@
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
/* Copyright (C) 2017 Oracle Corporation */
|
||||
|
||||
#ifndef __UAPI_VBOX_ERR_H__
|
||||
#define __UAPI_VBOX_ERR_H__
|
||||
|
||||
#define VINF_SUCCESS 0
|
||||
#define VERR_GENERAL_FAILURE (-1)
|
||||
#define VERR_INVALID_PARAMETER (-2)
|
||||
#define VERR_INVALID_MAGIC (-3)
|
||||
#define VERR_INVALID_HANDLE (-4)
|
||||
#define VERR_LOCK_FAILED (-5)
|
||||
#define VERR_INVALID_POINTER (-6)
|
||||
#define VERR_IDT_FAILED (-7)
|
||||
#define VERR_NO_MEMORY (-8)
|
||||
#define VERR_ALREADY_LOADED (-9)
|
||||
#define VERR_PERMISSION_DENIED (-10)
|
||||
#define VERR_VERSION_MISMATCH (-11)
|
||||
#define VERR_NOT_IMPLEMENTED (-12)
|
||||
#define VERR_INVALID_FLAGS (-13)
|
||||
|
||||
#define VERR_NOT_EQUAL (-18)
|
||||
#define VERR_NOT_SYMLINK (-19)
|
||||
#define VERR_NO_TMP_MEMORY (-20)
|
||||
#define VERR_INVALID_FMODE (-21)
|
||||
#define VERR_WRONG_ORDER (-22)
|
||||
#define VERR_NO_TLS_FOR_SELF (-23)
|
||||
#define VERR_FAILED_TO_SET_SELF_TLS (-24)
|
||||
#define VERR_NO_CONT_MEMORY (-26)
|
||||
#define VERR_NO_PAGE_MEMORY (-27)
|
||||
#define VERR_THREAD_IS_DEAD (-29)
|
||||
#define VERR_THREAD_NOT_WAITABLE (-30)
|
||||
#define VERR_PAGE_TABLE_NOT_PRESENT (-31)
|
||||
#define VERR_INVALID_CONTEXT (-32)
|
||||
#define VERR_TIMER_BUSY (-33)
|
||||
#define VERR_ADDRESS_CONFLICT (-34)
|
||||
#define VERR_UNRESOLVED_ERROR (-35)
|
||||
#define VERR_INVALID_FUNCTION (-36)
|
||||
#define VERR_NOT_SUPPORTED (-37)
|
||||
#define VERR_ACCESS_DENIED (-38)
|
||||
#define VERR_INTERRUPTED (-39)
|
||||
#define VERR_TIMEOUT (-40)
|
||||
#define VERR_BUFFER_OVERFLOW (-41)
|
||||
#define VERR_TOO_MUCH_DATA (-42)
|
||||
#define VERR_MAX_THRDS_REACHED (-43)
|
||||
#define VERR_MAX_PROCS_REACHED (-44)
|
||||
#define VERR_SIGNAL_REFUSED (-45)
|
||||
#define VERR_SIGNAL_PENDING (-46)
|
||||
#define VERR_SIGNAL_INVALID (-47)
|
||||
#define VERR_STATE_CHANGED (-48)
|
||||
#define VERR_INVALID_UUID_FORMAT (-49)
|
||||
#define VERR_PROCESS_NOT_FOUND (-50)
|
||||
#define VERR_PROCESS_RUNNING (-51)
|
||||
#define VERR_TRY_AGAIN (-52)
|
||||
#define VERR_PARSE_ERROR (-53)
|
||||
#define VERR_OUT_OF_RANGE (-54)
|
||||
#define VERR_NUMBER_TOO_BIG (-55)
|
||||
#define VERR_NO_DIGITS (-56)
|
||||
#define VERR_NEGATIVE_UNSIGNED (-57)
|
||||
#define VERR_NO_TRANSLATION (-58)
|
||||
|
||||
#define VERR_NOT_FOUND (-78)
|
||||
#define VERR_INVALID_STATE (-79)
|
||||
#define VERR_OUT_OF_RESOURCES (-80)
|
||||
|
||||
#define VERR_FILE_NOT_FOUND (-102)
|
||||
#define VERR_PATH_NOT_FOUND (-103)
|
||||
#define VERR_INVALID_NAME (-104)
|
||||
#define VERR_ALREADY_EXISTS (-105)
|
||||
#define VERR_TOO_MANY_OPEN_FILES (-106)
|
||||
#define VERR_SEEK (-107)
|
||||
#define VERR_NEGATIVE_SEEK (-108)
|
||||
#define VERR_SEEK_ON_DEVICE (-109)
|
||||
#define VERR_EOF (-110)
|
||||
#define VERR_READ_ERROR (-111)
|
||||
#define VERR_WRITE_ERROR (-112)
|
||||
#define VERR_WRITE_PROTECT (-113)
|
||||
#define VERR_SHARING_VIOLATION (-114)
|
||||
#define VERR_FILE_LOCK_FAILED (-115)
|
||||
#define VERR_FILE_LOCK_VIOLATION (-116)
|
||||
#define VERR_CANT_CREATE (-117)
|
||||
#define VERR_CANT_DELETE_DIRECTORY (-118)
|
||||
#define VERR_NOT_SAME_DEVICE (-119)
|
||||
#define VERR_FILENAME_TOO_LONG (-120)
|
||||
#define VERR_MEDIA_NOT_PRESENT (-121)
|
||||
#define VERR_MEDIA_NOT_RECOGNIZED (-122)
|
||||
#define VERR_FILE_NOT_LOCKED (-123)
|
||||
#define VERR_FILE_LOCK_LOST (-124)
|
||||
#define VERR_DIR_NOT_EMPTY (-125)
|
||||
#define VERR_NOT_A_DIRECTORY (-126)
|
||||
#define VERR_IS_A_DIRECTORY (-127)
|
||||
#define VERR_FILE_TOO_BIG (-128)
|
||||
|
||||
#define VERR_NET_IO_ERROR (-400)
|
||||
#define VERR_NET_OUT_OF_RESOURCES (-401)
|
||||
#define VERR_NET_HOST_NOT_FOUND (-402)
|
||||
#define VERR_NET_PATH_NOT_FOUND (-403)
|
||||
#define VERR_NET_PRINT_ERROR (-404)
|
||||
#define VERR_NET_NO_NETWORK (-405)
|
||||
#define VERR_NET_NOT_UNIQUE_NAME (-406)
|
||||
|
||||
#define VERR_NET_IN_PROGRESS (-436)
|
||||
#define VERR_NET_ALREADY_IN_PROGRESS (-437)
|
||||
#define VERR_NET_NOT_SOCKET (-438)
|
||||
#define VERR_NET_DEST_ADDRESS_REQUIRED (-439)
|
||||
#define VERR_NET_MSG_SIZE (-440)
|
||||
#define VERR_NET_PROTOCOL_TYPE (-441)
|
||||
#define VERR_NET_PROTOCOL_NOT_AVAILABLE (-442)
|
||||
#define VERR_NET_PROTOCOL_NOT_SUPPORTED (-443)
|
||||
#define VERR_NET_SOCKET_TYPE_NOT_SUPPORTED (-444)
|
||||
#define VERR_NET_OPERATION_NOT_SUPPORTED (-445)
|
||||
#define VERR_NET_PROTOCOL_FAMILY_NOT_SUPPORTED (-446)
|
||||
#define VERR_NET_ADDRESS_FAMILY_NOT_SUPPORTED (-447)
|
||||
#define VERR_NET_ADDRESS_IN_USE (-448)
|
||||
#define VERR_NET_ADDRESS_NOT_AVAILABLE (-449)
|
||||
#define VERR_NET_DOWN (-450)
|
||||
#define VERR_NET_UNREACHABLE (-451)
|
||||
#define VERR_NET_CONNECTION_RESET (-452)
|
||||
#define VERR_NET_CONNECTION_ABORTED (-453)
|
||||
#define VERR_NET_CONNECTION_RESET_BY_PEER (-454)
|
||||
#define VERR_NET_NO_BUFFER_SPACE (-455)
|
||||
#define VERR_NET_ALREADY_CONNECTED (-456)
|
||||
#define VERR_NET_NOT_CONNECTED (-457)
|
||||
#define VERR_NET_SHUTDOWN (-458)
|
||||
#define VERR_NET_TOO_MANY_REFERENCES (-459)
|
||||
#define VERR_NET_CONNECTION_TIMED_OUT (-460)
|
||||
#define VERR_NET_CONNECTION_REFUSED (-461)
|
||||
#define VERR_NET_HOST_DOWN (-464)
|
||||
#define VERR_NET_HOST_UNREACHABLE (-465)
|
||||
#define VERR_NET_PROTOCOL_ERROR (-466)
|
||||
#define VERR_NET_INCOMPLETE_TX_PACKET (-467)
|
||||
|
||||
/* misc. unsorted codes */
|
||||
#define VERR_RESOURCE_BUSY (-138)
|
||||
#define VERR_DISK_FULL (-152)
|
||||
#define VERR_TOO_MANY_SYMLINKS (-156)
|
||||
#define VERR_NO_MORE_FILES (-201)
|
||||
#define VERR_INTERNAL_ERROR (-225)
|
||||
#define VERR_INTERNAL_ERROR_2 (-226)
|
||||
#define VERR_INTERNAL_ERROR_3 (-227)
|
||||
#define VERR_INTERNAL_ERROR_4 (-228)
|
||||
#define VERR_DEV_IO_ERROR (-250)
|
||||
#define VERR_IO_BAD_LENGTH (-255)
|
||||
#define VERR_BROKEN_PIPE (-301)
|
||||
#define VERR_NO_DATA (-304)
|
||||
#define VERR_SEM_DESTROYED (-363)
|
||||
#define VERR_DEADLOCK (-365)
|
||||
#define VERR_BAD_EXE_FORMAT (-608)
|
||||
#define VINF_HGCM_ASYNC_EXECUTE (2903)
|
||||
|
||||
#endif
|
226
include/uapi/linux/vbox_vmmdev_types.h
Normal file
226
include/uapi/linux/vbox_vmmdev_types.h
Normal file
@@ -0,0 +1,226 @@
|
||||
/* SPDX-License-Identifier: (GPL-2.0 OR CDDL-1.0) */
|
||||
/*
|
||||
* Virtual Device for Guest <-> VMM/Host communication, type definitions
|
||||
* which are also used for the vboxguest ioctl interface / by vboxsf
|
||||
*
|
||||
* Copyright (C) 2006-2016 Oracle Corporation
|
||||
*/
|
||||
|
||||
#ifndef __UAPI_VBOX_VMMDEV_TYPES_H__
|
||||
#define __UAPI_VBOX_VMMDEV_TYPES_H__
|
||||
|
||||
#include <asm/bitsperlong.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
/*
|
||||
* We cannot use linux' compiletime_assert here because it expects to be used
|
||||
* inside a function only. Use a typedef to a char array with a negative size.
|
||||
*/
|
||||
#define VMMDEV_ASSERT_SIZE(type, size) \
|
||||
typedef char type ## _asrt_size[1 - 2*!!(sizeof(struct type) != (size))]
|
||||
|
||||
/** enum vmmdev_request_type - VMMDev request types. */
|
||||
enum vmmdev_request_type {
|
||||
VMMDEVREQ_INVALID_REQUEST = 0,
|
||||
VMMDEVREQ_GET_MOUSE_STATUS = 1,
|
||||
VMMDEVREQ_SET_MOUSE_STATUS = 2,
|
||||
VMMDEVREQ_SET_POINTER_SHAPE = 3,
|
||||
VMMDEVREQ_GET_HOST_VERSION = 4,
|
||||
VMMDEVREQ_IDLE = 5,
|
||||
VMMDEVREQ_GET_HOST_TIME = 10,
|
||||
VMMDEVREQ_GET_HYPERVISOR_INFO = 20,
|
||||
VMMDEVREQ_SET_HYPERVISOR_INFO = 21,
|
||||
VMMDEVREQ_REGISTER_PATCH_MEMORY = 22, /* since version 3.0.6 */
|
||||
VMMDEVREQ_DEREGISTER_PATCH_MEMORY = 23, /* since version 3.0.6 */
|
||||
VMMDEVREQ_SET_POWER_STATUS = 30,
|
||||
VMMDEVREQ_ACKNOWLEDGE_EVENTS = 41,
|
||||
VMMDEVREQ_CTL_GUEST_FILTER_MASK = 42,
|
||||
VMMDEVREQ_REPORT_GUEST_INFO = 50,
|
||||
VMMDEVREQ_REPORT_GUEST_INFO2 = 58, /* since version 3.2.0 */
|
||||
VMMDEVREQ_REPORT_GUEST_STATUS = 59, /* since version 3.2.8 */
|
||||
VMMDEVREQ_REPORT_GUEST_USER_STATE = 74, /* since version 4.3 */
|
||||
/* Retrieve a display resize request sent by the host, deprecated. */
|
||||
VMMDEVREQ_GET_DISPLAY_CHANGE_REQ = 51,
|
||||
VMMDEVREQ_VIDEMODE_SUPPORTED = 52,
|
||||
VMMDEVREQ_GET_HEIGHT_REDUCTION = 53,
|
||||
/**
|
||||
* @VMMDEVREQ_GET_DISPLAY_CHANGE_REQ2:
|
||||
* Retrieve a display resize request sent by the host.
|
||||
*
|
||||
* Queries a display resize request sent from the host. If the
|
||||
* event_ack member is sent to true and there is an unqueried request
|
||||
* available for one of the virtual display then that request will
|
||||
* be returned. If several displays have unqueried requests the lowest
|
||||
* numbered display will be chosen first. Only the most recent unseen
|
||||
* request for each display is remembered.
|
||||
* If event_ack is set to false, the last host request queried with
|
||||
* event_ack set is resent, or failing that the most recent received
|
||||
* from the host. If no host request was ever received then all zeros
|
||||
* are returned.
|
||||
*/
|
||||
VMMDEVREQ_GET_DISPLAY_CHANGE_REQ2 = 54,
|
||||
VMMDEVREQ_REPORT_GUEST_CAPABILITIES = 55,
|
||||
VMMDEVREQ_SET_GUEST_CAPABILITIES = 56,
|
||||
VMMDEVREQ_VIDEMODE_SUPPORTED2 = 57, /* since version 3.2.0 */
|
||||
VMMDEVREQ_GET_DISPLAY_CHANGE_REQEX = 80, /* since version 4.2.4 */
|
||||
VMMDEVREQ_HGCM_CONNECT = 60,
|
||||
VMMDEVREQ_HGCM_DISCONNECT = 61,
|
||||
VMMDEVREQ_HGCM_CALL32 = 62,
|
||||
VMMDEVREQ_HGCM_CALL64 = 63,
|
||||
VMMDEVREQ_HGCM_CANCEL = 64,
|
||||
VMMDEVREQ_HGCM_CANCEL2 = 65,
|
||||
VMMDEVREQ_VIDEO_ACCEL_ENABLE = 70,
|
||||
VMMDEVREQ_VIDEO_ACCEL_FLUSH = 71,
|
||||
VMMDEVREQ_VIDEO_SET_VISIBLE_REGION = 72,
|
||||
VMMDEVREQ_GET_SEAMLESS_CHANGE_REQ = 73,
|
||||
VMMDEVREQ_QUERY_CREDENTIALS = 100,
|
||||
VMMDEVREQ_REPORT_CREDENTIALS_JUDGEMENT = 101,
|
||||
VMMDEVREQ_REPORT_GUEST_STATS = 110,
|
||||
VMMDEVREQ_GET_MEMBALLOON_CHANGE_REQ = 111,
|
||||
VMMDEVREQ_GET_STATISTICS_CHANGE_REQ = 112,
|
||||
VMMDEVREQ_CHANGE_MEMBALLOON = 113,
|
||||
VMMDEVREQ_GET_VRDPCHANGE_REQ = 150,
|
||||
VMMDEVREQ_LOG_STRING = 200,
|
||||
VMMDEVREQ_GET_CPU_HOTPLUG_REQ = 210,
|
||||
VMMDEVREQ_SET_CPU_HOTPLUG_STATUS = 211,
|
||||
VMMDEVREQ_REGISTER_SHARED_MODULE = 212,
|
||||
VMMDEVREQ_UNREGISTER_SHARED_MODULE = 213,
|
||||
VMMDEVREQ_CHECK_SHARED_MODULES = 214,
|
||||
VMMDEVREQ_GET_PAGE_SHARING_STATUS = 215,
|
||||
VMMDEVREQ_DEBUG_IS_PAGE_SHARED = 216,
|
||||
VMMDEVREQ_GET_SESSION_ID = 217, /* since version 3.2.8 */
|
||||
VMMDEVREQ_WRITE_COREDUMP = 218,
|
||||
VMMDEVREQ_GUEST_HEARTBEAT = 219,
|
||||
VMMDEVREQ_HEARTBEAT_CONFIGURE = 220,
|
||||
/* Ensure the enum is a 32 bit data-type */
|
||||
VMMDEVREQ_SIZEHACK = 0x7fffffff
|
||||
};
|
||||
|
||||
#if __BITS_PER_LONG == 64
|
||||
#define VMMDEVREQ_HGCM_CALL VMMDEVREQ_HGCM_CALL64
|
||||
#else
|
||||
#define VMMDEVREQ_HGCM_CALL VMMDEVREQ_HGCM_CALL32
|
||||
#endif
|
||||
|
||||
/** HGCM service location types. */
|
||||
enum vmmdev_hgcm_service_location_type {
|
||||
VMMDEV_HGCM_LOC_INVALID = 0,
|
||||
VMMDEV_HGCM_LOC_LOCALHOST = 1,
|
||||
VMMDEV_HGCM_LOC_LOCALHOST_EXISTING = 2,
|
||||
/* Ensure the enum is a 32 bit data-type */
|
||||
VMMDEV_HGCM_LOC_SIZEHACK = 0x7fffffff
|
||||
};
|
||||
|
||||
/** HGCM host service location. */
|
||||
struct vmmdev_hgcm_service_location_localhost {
|
||||
/** Service name */
|
||||
char service_name[128];
|
||||
};
|
||||
VMMDEV_ASSERT_SIZE(vmmdev_hgcm_service_location_localhost, 128);
|
||||
|
||||
/** HGCM service location. */
|
||||
struct vmmdev_hgcm_service_location {
|
||||
/** Type of the location. */
|
||||
enum vmmdev_hgcm_service_location_type type;
|
||||
|
||||
union {
|
||||
struct vmmdev_hgcm_service_location_localhost localhost;
|
||||
} u;
|
||||
};
|
||||
VMMDEV_ASSERT_SIZE(vmmdev_hgcm_service_location, 128 + 4);
|
||||
|
||||
/** HGCM function parameter type. */
|
||||
enum vmmdev_hgcm_function_parameter_type {
|
||||
VMMDEV_HGCM_PARM_TYPE_INVALID = 0,
|
||||
VMMDEV_HGCM_PARM_TYPE_32BIT = 1,
|
||||
VMMDEV_HGCM_PARM_TYPE_64BIT = 2,
|
||||
/** Deprecated Doesn't work, use PAGELIST. */
|
||||
VMMDEV_HGCM_PARM_TYPE_PHYSADDR = 3,
|
||||
/** In and Out, user-memory */
|
||||
VMMDEV_HGCM_PARM_TYPE_LINADDR = 4,
|
||||
/** In, user-memory (read; host<-guest) */
|
||||
VMMDEV_HGCM_PARM_TYPE_LINADDR_IN = 5,
|
||||
/** Out, user-memory (write; host->guest) */
|
||||
VMMDEV_HGCM_PARM_TYPE_LINADDR_OUT = 6,
|
||||
/** In and Out, kernel-memory */
|
||||
VMMDEV_HGCM_PARM_TYPE_LINADDR_KERNEL = 7,
|
||||
/** In, kernel-memory (read; host<-guest) */
|
||||
VMMDEV_HGCM_PARM_TYPE_LINADDR_KERNEL_IN = 8,
|
||||
/** Out, kernel-memory (write; host->guest) */
|
||||
VMMDEV_HGCM_PARM_TYPE_LINADDR_KERNEL_OUT = 9,
|
||||
/** Physical addresses of locked pages for a buffer. */
|
||||
VMMDEV_HGCM_PARM_TYPE_PAGELIST = 10,
|
||||
/* Ensure the enum is a 32 bit data-type */
|
||||
VMMDEV_HGCM_PARM_TYPE_SIZEHACK = 0x7fffffff
|
||||
};
|
||||
|
||||
/** HGCM function parameter, 32-bit client. */
|
||||
struct vmmdev_hgcm_function_parameter32 {
|
||||
enum vmmdev_hgcm_function_parameter_type type;
|
||||
union {
|
||||
__u32 value32;
|
||||
__u64 value64;
|
||||
struct {
|
||||
__u32 size;
|
||||
union {
|
||||
__u32 phys_addr;
|
||||
__u32 linear_addr;
|
||||
} u;
|
||||
} pointer;
|
||||
struct {
|
||||
/** Size of the buffer described by the page list. */
|
||||
__u32 size;
|
||||
/** Relative to the request header. */
|
||||
__u32 offset;
|
||||
} page_list;
|
||||
} u;
|
||||
} __packed;
|
||||
VMMDEV_ASSERT_SIZE(vmmdev_hgcm_function_parameter32, 4 + 8);
|
||||
|
||||
/** HGCM function parameter, 64-bit client. */
|
||||
struct vmmdev_hgcm_function_parameter64 {
|
||||
enum vmmdev_hgcm_function_parameter_type type;
|
||||
union {
|
||||
__u32 value32;
|
||||
__u64 value64;
|
||||
struct {
|
||||
__u32 size;
|
||||
union {
|
||||
__u64 phys_addr;
|
||||
__u64 linear_addr;
|
||||
} u;
|
||||
} __packed pointer;
|
||||
struct {
|
||||
/** Size of the buffer described by the page list. */
|
||||
__u32 size;
|
||||
/** Relative to the request header. */
|
||||
__u32 offset;
|
||||
} page_list;
|
||||
} __packed u;
|
||||
} __packed;
|
||||
VMMDEV_ASSERT_SIZE(vmmdev_hgcm_function_parameter64, 4 + 12);
|
||||
|
||||
#if __BITS_PER_LONG == 64
|
||||
#define vmmdev_hgcm_function_parameter vmmdev_hgcm_function_parameter64
|
||||
#else
|
||||
#define vmmdev_hgcm_function_parameter vmmdev_hgcm_function_parameter32
|
||||
#endif
|
||||
|
||||
#define VMMDEV_HGCM_F_PARM_DIRECTION_NONE 0x00000000U
|
||||
#define VMMDEV_HGCM_F_PARM_DIRECTION_TO_HOST 0x00000001U
|
||||
#define VMMDEV_HGCM_F_PARM_DIRECTION_FROM_HOST 0x00000002U
|
||||
#define VMMDEV_HGCM_F_PARM_DIRECTION_BOTH 0x00000003U
|
||||
|
||||
/**
|
||||
* struct vmmdev_hgcm_pagelist - VMMDEV_HGCM_PARM_TYPE_PAGELIST parameters
|
||||
* point to this structure to actually describe the buffer.
|
||||
*/
|
||||
struct vmmdev_hgcm_pagelist {
|
||||
__u32 flags; /** VMMDEV_HGCM_F_PARM_*. */
|
||||
__u16 offset_first_page; /** Data offset in the first page. */
|
||||
__u16 page_count; /** Number of pages. */
|
||||
__u64 pages[1]; /** Page addresses. */
|
||||
};
|
||||
VMMDEV_ASSERT_SIZE(vmmdev_hgcm_pagelist, 4 + 2 + 2 + 8);
|
||||
|
||||
#endif
|
330
include/uapi/linux/vboxguest.h
Normal file
330
include/uapi/linux/vboxguest.h
Normal file
@@ -0,0 +1,330 @@
|
||||
/* SPDX-License-Identifier: (GPL-2.0 OR CDDL-1.0) */
|
||||
/*
|
||||
* VBoxGuest - VirtualBox Guest Additions Driver Interface.
|
||||
*
|
||||
* Copyright (C) 2006-2016 Oracle Corporation
|
||||
*/
|
||||
|
||||
#ifndef __UAPI_VBOXGUEST_H__
|
||||
#define __UAPI_VBOXGUEST_H__
|
||||
|
||||
#include <asm/bitsperlong.h>
|
||||
#include <linux/ioctl.h>
|
||||
#include <linux/vbox_err.h>
|
||||
#include <linux/vbox_vmmdev_types.h>
|
||||
|
||||
/* Version of vbg_ioctl_hdr structure. */
|
||||
#define VBG_IOCTL_HDR_VERSION 0x10001
|
||||
/* Default request type. Use this for non-VMMDev requests. */
|
||||
#define VBG_IOCTL_HDR_TYPE_DEFAULT 0
|
||||
|
||||
/**
|
||||
* Common ioctl header.
|
||||
*
|
||||
* This is a mirror of vmmdev_request_header to prevent duplicating data and
|
||||
* needing to verify things multiple times.
|
||||
*/
|
||||
struct vbg_ioctl_hdr {
|
||||
/** IN: The request input size, and output size if size_out is zero. */
|
||||
__u32 size_in;
|
||||
/** IN: Structure version (VBG_IOCTL_HDR_VERSION) */
|
||||
__u32 version;
|
||||
/** IN: The VMMDev request type or VBG_IOCTL_HDR_TYPE_DEFAULT. */
|
||||
__u32 type;
|
||||
/**
|
||||
* OUT: The VBox status code of the operation, out direction only.
|
||||
* This is a VINF_ or VERR_ value as defined in vbox_err.h.
|
||||
*/
|
||||
__s32 rc;
|
||||
/** IN: Output size. Set to zero to use size_in as output size. */
|
||||
__u32 size_out;
|
||||
/** Reserved, MBZ. */
|
||||
__u32 reserved;
|
||||
};
|
||||
VMMDEV_ASSERT_SIZE(vbg_ioctl_hdr, 24);
|
||||
|
||||
|
||||
/*
|
||||
* The VBoxGuest I/O control version.
|
||||
*
|
||||
* As usual, the high word contains the major version and changes to it
|
||||
* signifies incompatible changes.
|
||||
*
|
||||
* The lower word is the minor version number, it is increased when new
|
||||
* functions are added or existing changed in a backwards compatible manner.
|
||||
*/
|
||||
#define VBG_IOC_VERSION 0x00010000u
|
||||
|
||||
/**
|
||||
* VBG_IOCTL_DRIVER_VERSION_INFO data structure
|
||||
*
|
||||
* Note VBG_IOCTL_DRIVER_VERSION_INFO may switch the session to a backwards
|
||||
* compatible interface version if uClientVersion indicates older client code.
|
||||
*/
|
||||
struct vbg_ioctl_driver_version_info {
|
||||
/** The header. */
|
||||
struct vbg_ioctl_hdr hdr;
|
||||
union {
|
||||
struct {
|
||||
/** Requested interface version (VBG_IOC_VERSION). */
|
||||
__u32 req_version;
|
||||
/**
|
||||
* Minimum interface version number (typically the
|
||||
* major version part of VBG_IOC_VERSION).
|
||||
*/
|
||||
__u32 min_version;
|
||||
/** Reserved, MBZ. */
|
||||
__u32 reserved1;
|
||||
/** Reserved, MBZ. */
|
||||
__u32 reserved2;
|
||||
} in;
|
||||
struct {
|
||||
/** Version for this session (typ. VBG_IOC_VERSION). */
|
||||
__u32 session_version;
|
||||
/** Version of the IDC interface (VBG_IOC_VERSION). */
|
||||
__u32 driver_version;
|
||||
/** The SVN revision of the driver, or 0. */
|
||||
__u32 driver_revision;
|
||||
/** Reserved \#1 (zero until defined). */
|
||||
__u32 reserved1;
|
||||
/** Reserved \#2 (zero until defined). */
|
||||
__u32 reserved2;
|
||||
} out;
|
||||
} u;
|
||||
};
|
||||
VMMDEV_ASSERT_SIZE(vbg_ioctl_driver_version_info, 24 + 20);
|
||||
|
||||
#define VBG_IOCTL_DRIVER_VERSION_INFO \
|
||||
_IOWR('V', 0, struct vbg_ioctl_driver_version_info)
|
||||
|
||||
|
||||
/* IOCTL to perform a VMM Device request less than 1KB in size. */
|
||||
#define VBG_IOCTL_VMMDEV_REQUEST(s) _IOC(_IOC_READ | _IOC_WRITE, 'V', 2, s)
|
||||
|
||||
|
||||
/* IOCTL to perform a VMM Device request larger then 1KB. */
|
||||
#define VBG_IOCTL_VMMDEV_REQUEST_BIG _IOC(_IOC_READ | _IOC_WRITE, 'V', 3, 0)
|
||||
|
||||
|
||||
/** VBG_IOCTL_HGCM_CONNECT data structure. */
|
||||
struct vbg_ioctl_hgcm_connect {
|
||||
struct vbg_ioctl_hdr hdr;
|
||||
union {
|
||||
struct {
|
||||
struct vmmdev_hgcm_service_location loc;
|
||||
} in;
|
||||
struct {
|
||||
__u32 client_id;
|
||||
} out;
|
||||
} u;
|
||||
};
|
||||
VMMDEV_ASSERT_SIZE(vbg_ioctl_hgcm_connect, 24 + 132);
|
||||
|
||||
#define VBG_IOCTL_HGCM_CONNECT \
|
||||
_IOWR('V', 4, struct vbg_ioctl_hgcm_connect)
|
||||
|
||||
|
||||
/** VBG_IOCTL_HGCM_DISCONNECT data structure. */
|
||||
struct vbg_ioctl_hgcm_disconnect {
|
||||
struct vbg_ioctl_hdr hdr;
|
||||
union {
|
||||
struct {
|
||||
__u32 client_id;
|
||||
} in;
|
||||
} u;
|
||||
};
|
||||
VMMDEV_ASSERT_SIZE(vbg_ioctl_hgcm_disconnect, 24 + 4);
|
||||
|
||||
#define VBG_IOCTL_HGCM_DISCONNECT \
|
||||
_IOWR('V', 5, struct vbg_ioctl_hgcm_disconnect)
|
||||
|
||||
|
||||
/** VBG_IOCTL_HGCM_CALL data structure. */
|
||||
struct vbg_ioctl_hgcm_call {
|
||||
/** The header. */
|
||||
struct vbg_ioctl_hdr hdr;
|
||||
/** Input: The id of the caller. */
|
||||
__u32 client_id;
|
||||
/** Input: Function number. */
|
||||
__u32 function;
|
||||
/**
|
||||
* Input: How long to wait (milliseconds) for completion before
|
||||
* cancelling the call. Set to -1 to wait indefinitely.
|
||||
*/
|
||||
__u32 timeout_ms;
|
||||
/** Interruptable flag, ignored for userspace calls. */
|
||||
__u8 interruptible;
|
||||
/** Explicit padding, MBZ. */
|
||||
__u8 reserved;
|
||||
/**
|
||||
* Input: How many parameters following this structure.
|
||||
*
|
||||
* The parameters are either HGCMFunctionParameter64 or 32,
|
||||
* depending on whether we're receiving a 64-bit or 32-bit request.
|
||||
*
|
||||
* The current maximum is 61 parameters (given a 1KB max request size,
|
||||
* and a 64-bit parameter size of 16 bytes).
|
||||
*/
|
||||
__u16 parm_count;
|
||||
/*
|
||||
* Parameters follow in form:
|
||||
* struct hgcm_function_parameter<32|64> parms[parm_count]
|
||||
*/
|
||||
};
|
||||
VMMDEV_ASSERT_SIZE(vbg_ioctl_hgcm_call, 24 + 16);
|
||||
|
||||
#define VBG_IOCTL_HGCM_CALL_32(s) _IOC(_IOC_READ | _IOC_WRITE, 'V', 6, s)
|
||||
#define VBG_IOCTL_HGCM_CALL_64(s) _IOC(_IOC_READ | _IOC_WRITE, 'V', 7, s)
|
||||
#if __BITS_PER_LONG == 64
|
||||
#define VBG_IOCTL_HGCM_CALL(s) VBG_IOCTL_HGCM_CALL_64(s)
|
||||
#else
|
||||
#define VBG_IOCTL_HGCM_CALL(s) VBG_IOCTL_HGCM_CALL_32(s)
|
||||
#endif
|
||||
|
||||
|
||||
/** VBG_IOCTL_LOG data structure. */
|
||||
struct vbg_ioctl_log {
|
||||
/** The header. */
|
||||
struct vbg_ioctl_hdr hdr;
|
||||
union {
|
||||
struct {
|
||||
/**
|
||||
* The log message, this may be zero terminated. If it
|
||||
* is not zero terminated then the length is determined
|
||||
* from the input size.
|
||||
*/
|
||||
char msg[1];
|
||||
} in;
|
||||
} u;
|
||||
};
|
||||
|
||||
#define VBG_IOCTL_LOG(s) _IOC(_IOC_READ | _IOC_WRITE, 'V', 9, s)
|
||||
|
||||
|
||||
/** VBG_IOCTL_WAIT_FOR_EVENTS data structure. */
|
||||
struct vbg_ioctl_wait_for_events {
|
||||
/** The header. */
|
||||
struct vbg_ioctl_hdr hdr;
|
||||
union {
|
||||
struct {
|
||||
/** Timeout in milliseconds. */
|
||||
__u32 timeout_ms;
|
||||
/** Events to wait for. */
|
||||
__u32 events;
|
||||
} in;
|
||||
struct {
|
||||
/** Events that occurred. */
|
||||
__u32 events;
|
||||
} out;
|
||||
} u;
|
||||
};
|
||||
VMMDEV_ASSERT_SIZE(vbg_ioctl_wait_for_events, 24 + 8);
|
||||
|
||||
#define VBG_IOCTL_WAIT_FOR_EVENTS \
|
||||
_IOWR('V', 10, struct vbg_ioctl_wait_for_events)
|
||||
|
||||
|
||||
/*
|
||||
* IOCTL to VBoxGuest to interrupt (cancel) any pending
|
||||
* VBG_IOCTL_WAIT_FOR_EVENTS and return.
|
||||
*
|
||||
* Handled inside the vboxguest driver and not seen by the host at all.
|
||||
* After calling this, VBG_IOCTL_WAIT_FOR_EVENTS should no longer be called in
|
||||
* the same session. Any VBOXGUEST_IOCTL_WAITEVENT calls in the same session
|
||||
* done after calling this will directly exit with -EINTR.
|
||||
*/
|
||||
#define VBG_IOCTL_INTERRUPT_ALL_WAIT_FOR_EVENTS \
|
||||
_IOWR('V', 11, struct vbg_ioctl_hdr)
|
||||
|
||||
|
||||
/** VBG_IOCTL_CHANGE_FILTER_MASK data structure. */
|
||||
struct vbg_ioctl_change_filter {
|
||||
/** The header. */
|
||||
struct vbg_ioctl_hdr hdr;
|
||||
union {
|
||||
struct {
|
||||
/** Flags to set. */
|
||||
__u32 or_mask;
|
||||
/** Flags to remove. */
|
||||
__u32 not_mask;
|
||||
} in;
|
||||
} u;
|
||||
};
|
||||
VMMDEV_ASSERT_SIZE(vbg_ioctl_change_filter, 24 + 8);
|
||||
|
||||
/* IOCTL to VBoxGuest to control the event filter mask. */
|
||||
#define VBG_IOCTL_CHANGE_FILTER_MASK \
|
||||
_IOWR('V', 12, struct vbg_ioctl_change_filter)
|
||||
|
||||
|
||||
/** VBG_IOCTL_CHANGE_GUEST_CAPABILITIES data structure. */
|
||||
struct vbg_ioctl_set_guest_caps {
|
||||
/** The header. */
|
||||
struct vbg_ioctl_hdr hdr;
|
||||
union {
|
||||
struct {
|
||||
/** Capabilities to set (VMMDEV_GUEST_SUPPORTS_XXX). */
|
||||
__u32 or_mask;
|
||||
/** Capabilities to drop (VMMDEV_GUEST_SUPPORTS_XXX). */
|
||||
__u32 not_mask;
|
||||
} in;
|
||||
struct {
|
||||
/** Capabilities held by the session after the call. */
|
||||
__u32 session_caps;
|
||||
/** Capabilities for all the sessions after the call. */
|
||||
__u32 global_caps;
|
||||
} out;
|
||||
} u;
|
||||
};
|
||||
VMMDEV_ASSERT_SIZE(vbg_ioctl_set_guest_caps, 24 + 8);
|
||||
|
||||
#define VBG_IOCTL_CHANGE_GUEST_CAPABILITIES \
|
||||
_IOWR('V', 14, struct vbg_ioctl_set_guest_caps)
|
||||
|
||||
|
||||
/** VBG_IOCTL_CHECK_BALLOON data structure. */
|
||||
struct vbg_ioctl_check_balloon {
|
||||
/** The header. */
|
||||
struct vbg_ioctl_hdr hdr;
|
||||
union {
|
||||
struct {
|
||||
/** The size of the balloon in chunks of 1MB. */
|
||||
__u32 balloon_chunks;
|
||||
/**
|
||||
* false = handled in R0, no further action required.
|
||||
* true = allocate balloon memory in R3.
|
||||
*/
|
||||
__u8 handle_in_r3;
|
||||
/** Explicit padding, MBZ. */
|
||||
__u8 padding[3];
|
||||
} out;
|
||||
} u;
|
||||
};
|
||||
VMMDEV_ASSERT_SIZE(vbg_ioctl_check_balloon, 24 + 8);
|
||||
|
||||
/*
|
||||
* IOCTL to check memory ballooning.
|
||||
*
|
||||
* The guest kernel module will ask the host for the current size of the
|
||||
* balloon and adjust the size. Or it will set handle_in_r3 = true and R3 is
|
||||
* responsible for allocating memory and calling VBG_IOCTL_CHANGE_BALLOON.
|
||||
*/
|
||||
#define VBG_IOCTL_CHECK_BALLOON \
|
||||
_IOWR('V', 17, struct vbg_ioctl_check_balloon)
|
||||
|
||||
|
||||
/** VBG_IOCTL_WRITE_CORE_DUMP data structure. */
|
||||
struct vbg_ioctl_write_coredump {
|
||||
struct vbg_ioctl_hdr hdr;
|
||||
union {
|
||||
struct {
|
||||
__u32 flags; /** Flags (reserved, MBZ). */
|
||||
} in;
|
||||
} u;
|
||||
};
|
||||
VMMDEV_ASSERT_SIZE(vbg_ioctl_write_coredump, 24 + 4);
|
||||
|
||||
#define VBG_IOCTL_WRITE_CORE_DUMP \
|
||||
_IOWR('V', 19, struct vbg_ioctl_write_coredump)
|
||||
|
||||
#endif
|
@@ -301,6 +301,16 @@ struct vfio_region_info_cap_type {
|
||||
#define VFIO_REGION_SUBTYPE_INTEL_IGD_HOST_CFG (2)
|
||||
#define VFIO_REGION_SUBTYPE_INTEL_IGD_LPC_CFG (3)
|
||||
|
||||
/*
|
||||
* The MSIX mappable capability informs that MSIX data of a BAR can be mmapped
|
||||
* which allows direct access to non-MSIX registers which happened to be within
|
||||
* the same system page.
|
||||
*
|
||||
* Even though the userspace gets direct access to the MSIX data, the existing
|
||||
* VFIO_DEVICE_SET_IRQS interface must still be used for MSIX configuration.
|
||||
*/
|
||||
#define VFIO_REGION_INFO_CAP_MSIX_MAPPABLE 3
|
||||
|
||||
/**
|
||||
* VFIO_DEVICE_GET_IRQ_INFO - _IOWR(VFIO_TYPE, VFIO_BASE + 9,
|
||||
* struct vfio_irq_info)
|
||||
@@ -503,6 +513,68 @@ struct vfio_pci_hot_reset {
|
||||
|
||||
#define VFIO_DEVICE_PCI_HOT_RESET _IO(VFIO_TYPE, VFIO_BASE + 13)
|
||||
|
||||
/**
|
||||
* VFIO_DEVICE_QUERY_GFX_PLANE - _IOW(VFIO_TYPE, VFIO_BASE + 14,
|
||||
* struct vfio_device_query_gfx_plane)
|
||||
*
|
||||
* Set the drm_plane_type and flags, then retrieve the gfx plane info.
|
||||
*
|
||||
* flags supported:
|
||||
* - VFIO_GFX_PLANE_TYPE_PROBE and VFIO_GFX_PLANE_TYPE_DMABUF are set
|
||||
* to ask if the mdev supports dma-buf. 0 on support, -EINVAL on no
|
||||
* support for dma-buf.
|
||||
* - VFIO_GFX_PLANE_TYPE_PROBE and VFIO_GFX_PLANE_TYPE_REGION are set
|
||||
* to ask if the mdev supports region. 0 on support, -EINVAL on no
|
||||
* support for region.
|
||||
* - VFIO_GFX_PLANE_TYPE_DMABUF or VFIO_GFX_PLANE_TYPE_REGION is set
|
||||
* with each call to query the plane info.
|
||||
* - Others are invalid and return -EINVAL.
|
||||
*
|
||||
* Note:
|
||||
* 1. Plane could be disabled by guest. In that case, success will be
|
||||
* returned with zero-initialized drm_format, size, width and height
|
||||
* fields.
|
||||
* 2. x_hot/y_hot is set to 0xFFFFFFFF if no hotspot information available
|
||||
*
|
||||
* Return: 0 on success, -errno on other failure.
|
||||
*/
|
||||
struct vfio_device_gfx_plane_info {
|
||||
__u32 argsz;
|
||||
__u32 flags;
|
||||
#define VFIO_GFX_PLANE_TYPE_PROBE (1 << 0)
|
||||
#define VFIO_GFX_PLANE_TYPE_DMABUF (1 << 1)
|
||||
#define VFIO_GFX_PLANE_TYPE_REGION (1 << 2)
|
||||
/* in */
|
||||
__u32 drm_plane_type; /* type of plane: DRM_PLANE_TYPE_* */
|
||||
/* out */
|
||||
__u32 drm_format; /* drm format of plane */
|
||||
__u64 drm_format_mod; /* tiled mode */
|
||||
__u32 width; /* width of plane */
|
||||
__u32 height; /* height of plane */
|
||||
__u32 stride; /* stride of plane */
|
||||
__u32 size; /* size of plane in bytes, align on page*/
|
||||
__u32 x_pos; /* horizontal position of cursor plane */
|
||||
__u32 y_pos; /* vertical position of cursor plane*/
|
||||
__u32 x_hot; /* horizontal position of cursor hotspot */
|
||||
__u32 y_hot; /* vertical position of cursor hotspot */
|
||||
union {
|
||||
__u32 region_index; /* region index */
|
||||
__u32 dmabuf_id; /* dma-buf id */
|
||||
};
|
||||
};
|
||||
|
||||
#define VFIO_DEVICE_QUERY_GFX_PLANE _IO(VFIO_TYPE, VFIO_BASE + 14)
|
||||
|
||||
/**
|
||||
* VFIO_DEVICE_GET_GFX_DMABUF - _IOW(VFIO_TYPE, VFIO_BASE + 15, __u32)
|
||||
*
|
||||
* Return a new dma-buf file descriptor for an exposed guest framebuffer
|
||||
* described by the provided dmabuf_id. The dmabuf_id is returned from VFIO_
|
||||
* DEVICE_QUERY_GFX_PLANE as a token of the exposed guest framebuffer.
|
||||
*/
|
||||
|
||||
#define VFIO_DEVICE_GET_GFX_DMABUF _IO(VFIO_TYPE, VFIO_BASE + 15)
|
||||
|
||||
/* -------- API for Type1 VFIO IOMMU -------- */
|
||||
|
||||
/**
|
||||
|
@@ -107,14 +107,14 @@ enum v4l2_field {
|
||||
transmitted first */
|
||||
};
|
||||
#define V4L2_FIELD_HAS_TOP(field) \
|
||||
((field) == V4L2_FIELD_TOP ||\
|
||||
((field) == V4L2_FIELD_TOP ||\
|
||||
(field) == V4L2_FIELD_INTERLACED ||\
|
||||
(field) == V4L2_FIELD_INTERLACED_TB ||\
|
||||
(field) == V4L2_FIELD_INTERLACED_BT ||\
|
||||
(field) == V4L2_FIELD_SEQ_TB ||\
|
||||
(field) == V4L2_FIELD_SEQ_BT)
|
||||
#define V4L2_FIELD_HAS_BOTTOM(field) \
|
||||
((field) == V4L2_FIELD_BOTTOM ||\
|
||||
((field) == V4L2_FIELD_BOTTOM ||\
|
||||
(field) == V4L2_FIELD_INTERLACED ||\
|
||||
(field) == V4L2_FIELD_INTERLACED_TB ||\
|
||||
(field) == V4L2_FIELD_INTERLACED_BT ||\
|
||||
@@ -467,12 +467,12 @@ struct v4l2_capability {
|
||||
* V I D E O I M A G E F O R M A T
|
||||
*/
|
||||
struct v4l2_pix_format {
|
||||
__u32 width;
|
||||
__u32 width;
|
||||
__u32 height;
|
||||
__u32 pixelformat;
|
||||
__u32 field; /* enum v4l2_field */
|
||||
__u32 bytesperline; /* for padding, zero if unused */
|
||||
__u32 sizeimage;
|
||||
__u32 bytesperline; /* for padding, zero if unused */
|
||||
__u32 sizeimage;
|
||||
__u32 colorspace; /* enum v4l2_colorspace */
|
||||
__u32 priv; /* private data, depends on pixelformat */
|
||||
__u32 flags; /* format flags (V4L2_PIX_FMT_FLAG_*) */
|
||||
@@ -669,6 +669,12 @@ struct v4l2_pix_format {
|
||||
#define V4L2_PIX_FMT_MT21C v4l2_fourcc('M', 'T', '2', '1') /* Mediatek compressed block mode */
|
||||
#define V4L2_PIX_FMT_INZI v4l2_fourcc('I', 'N', 'Z', 'I') /* Intel Planar Greyscale 10-bit and Depth 16-bit */
|
||||
|
||||
/* 10bit raw bayer packed, 32 bytes for every 25 pixels, last LSB 6 bits unused */
|
||||
#define V4L2_PIX_FMT_IPU3_SBGGR10 v4l2_fourcc('i', 'p', '3', 'b') /* IPU3 packed 10-bit BGGR bayer */
|
||||
#define V4L2_PIX_FMT_IPU3_SGBRG10 v4l2_fourcc('i', 'p', '3', 'g') /* IPU3 packed 10-bit GBRG bayer */
|
||||
#define V4L2_PIX_FMT_IPU3_SGRBG10 v4l2_fourcc('i', 'p', '3', 'G') /* IPU3 packed 10-bit GRBG bayer */
|
||||
#define V4L2_PIX_FMT_IPU3_SRGGB10 v4l2_fourcc('i', 'p', '3', 'r') /* IPU3 packed 10-bit RGGB bayer */
|
||||
|
||||
/* SDR formats - used only for Software Defined Radio devices */
|
||||
#define V4L2_SDR_FMT_CU8 v4l2_fourcc('C', 'U', '0', '8') /* IQ u8 */
|
||||
#define V4L2_SDR_FMT_CU16LE v4l2_fourcc('C', 'U', '1', '6') /* IQ u16le */
|
||||
@@ -688,6 +694,7 @@ struct v4l2_pix_format {
|
||||
/* Meta-data formats */
|
||||
#define V4L2_META_FMT_VSP1_HGO v4l2_fourcc('V', 'S', 'P', 'H') /* R-Car VSP1 1-D Histogram */
|
||||
#define V4L2_META_FMT_VSP1_HGT v4l2_fourcc('V', 'S', 'P', 'T') /* R-Car VSP1 2-D Histogram */
|
||||
#define V4L2_META_FMT_UVC v4l2_fourcc('U', 'V', 'C', 'H') /* UVC Payload Header metadata */
|
||||
|
||||
/* priv field value to indicates that subsequent fields are valid. */
|
||||
#define V4L2_PIX_FMT_PRIV_MAGIC 0xfeedcafe
|
||||
@@ -1166,7 +1173,7 @@ typedef __u64 v4l2_std_id;
|
||||
V4L2_STD_NTSC_M_JP |\
|
||||
V4L2_STD_NTSC_M_KR)
|
||||
/* Secam macros */
|
||||
#define V4L2_STD_SECAM_DK (V4L2_STD_SECAM_D |\
|
||||
#define V4L2_STD_SECAM_DK (V4L2_STD_SECAM_D |\
|
||||
V4L2_STD_SECAM_K |\
|
||||
V4L2_STD_SECAM_K1)
|
||||
/* All Secam Standards */
|
||||
@@ -1247,7 +1254,7 @@ struct v4l2_standard {
|
||||
};
|
||||
|
||||
/*
|
||||
* D V B T T I M I N G S
|
||||
* D V B T T I M I N G S
|
||||
*/
|
||||
|
||||
/** struct v4l2_bt_timings - BT.656/BT.1120 timing data
|
||||
@@ -1588,7 +1595,7 @@ struct v4l2_ext_controls {
|
||||
struct v4l2_ext_control *controls;
|
||||
};
|
||||
|
||||
#define V4L2_CTRL_ID_MASK (0x0fffffff)
|
||||
#define V4L2_CTRL_ID_MASK (0x0fffffff)
|
||||
#ifndef __KERNEL__
|
||||
#define V4L2_CTRL_ID2CLASS(id) ((id) & 0x0fff0000UL)
|
||||
#endif
|
||||
@@ -1660,11 +1667,11 @@ struct v4l2_querymenu {
|
||||
/* Control flags */
|
||||
#define V4L2_CTRL_FLAG_DISABLED 0x0001
|
||||
#define V4L2_CTRL_FLAG_GRABBED 0x0002
|
||||
#define V4L2_CTRL_FLAG_READ_ONLY 0x0004
|
||||
#define V4L2_CTRL_FLAG_UPDATE 0x0008
|
||||
#define V4L2_CTRL_FLAG_INACTIVE 0x0010
|
||||
#define V4L2_CTRL_FLAG_SLIDER 0x0020
|
||||
#define V4L2_CTRL_FLAG_WRITE_ONLY 0x0040
|
||||
#define V4L2_CTRL_FLAG_READ_ONLY 0x0004
|
||||
#define V4L2_CTRL_FLAG_UPDATE 0x0008
|
||||
#define V4L2_CTRL_FLAG_INACTIVE 0x0010
|
||||
#define V4L2_CTRL_FLAG_SLIDER 0x0020
|
||||
#define V4L2_CTRL_FLAG_WRITE_ONLY 0x0040
|
||||
#define V4L2_CTRL_FLAG_VOLATILE 0x0080
|
||||
#define V4L2_CTRL_FLAG_HAS_PAYLOAD 0x0100
|
||||
#define V4L2_CTRL_FLAG_EXECUTE_ON_WRITE 0x0200
|
||||
@@ -1778,21 +1785,21 @@ struct v4l2_hw_freq_seek {
|
||||
*/
|
||||
|
||||
struct v4l2_rds_data {
|
||||
__u8 lsb;
|
||||
__u8 msb;
|
||||
__u8 block;
|
||||
__u8 lsb;
|
||||
__u8 msb;
|
||||
__u8 block;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
#define V4L2_RDS_BLOCK_MSK 0x7
|
||||
#define V4L2_RDS_BLOCK_A 0
|
||||
#define V4L2_RDS_BLOCK_B 1
|
||||
#define V4L2_RDS_BLOCK_C 2
|
||||
#define V4L2_RDS_BLOCK_D 3
|
||||
#define V4L2_RDS_BLOCK_C_ALT 4
|
||||
#define V4L2_RDS_BLOCK_INVALID 7
|
||||
#define V4L2_RDS_BLOCK_MSK 0x7
|
||||
#define V4L2_RDS_BLOCK_A 0
|
||||
#define V4L2_RDS_BLOCK_B 1
|
||||
#define V4L2_RDS_BLOCK_C 2
|
||||
#define V4L2_RDS_BLOCK_D 3
|
||||
#define V4L2_RDS_BLOCK_C_ALT 4
|
||||
#define V4L2_RDS_BLOCK_INVALID 7
|
||||
|
||||
#define V4L2_RDS_BLOCK_CORRECTED 0x40
|
||||
#define V4L2_RDS_BLOCK_ERROR 0x80
|
||||
#define V4L2_RDS_BLOCK_ERROR 0x80
|
||||
|
||||
/*
|
||||
* A U D I O
|
||||
@@ -2348,8 +2355,8 @@ struct v4l2_create_buffers {
|
||||
#define VIDIOC_S_CROP _IOW('V', 60, struct v4l2_crop)
|
||||
#define VIDIOC_G_JPEGCOMP _IOR('V', 61, struct v4l2_jpegcompression)
|
||||
#define VIDIOC_S_JPEGCOMP _IOW('V', 62, struct v4l2_jpegcompression)
|
||||
#define VIDIOC_QUERYSTD _IOR('V', 63, v4l2_std_id)
|
||||
#define VIDIOC_TRY_FMT _IOWR('V', 64, struct v4l2_format)
|
||||
#define VIDIOC_QUERYSTD _IOR('V', 63, v4l2_std_id)
|
||||
#define VIDIOC_TRY_FMT _IOWR('V', 64, struct v4l2_format)
|
||||
#define VIDIOC_ENUMAUDIO _IOWR('V', 65, struct v4l2_audio)
|
||||
#define VIDIOC_ENUMAUDOUT _IOWR('V', 66, struct v4l2_audioout)
|
||||
#define VIDIOC_G_PRIORITY _IOR('V', 67, __u32) /* enum v4l2_priority */
|
||||
@@ -2370,8 +2377,8 @@ struct v4l2_create_buffers {
|
||||
* Only implemented if CONFIG_VIDEO_ADV_DEBUG is defined.
|
||||
* You must be root to use these ioctls. Never use these in applications!
|
||||
*/
|
||||
#define VIDIOC_DBG_S_REGISTER _IOW('V', 79, struct v4l2_dbg_register)
|
||||
#define VIDIOC_DBG_G_REGISTER _IOWR('V', 80, struct v4l2_dbg_register)
|
||||
#define VIDIOC_DBG_S_REGISTER _IOW('V', 79, struct v4l2_dbg_register)
|
||||
#define VIDIOC_DBG_G_REGISTER _IOWR('V', 80, struct v4l2_dbg_register)
|
||||
|
||||
#define VIDIOC_S_HW_FREQ_SEEK _IOW('V', 82, struct v4l2_hw_freq_seek)
|
||||
#define VIDIOC_S_DV_TIMINGS _IOWR('V', 87, struct v4l2_dv_timings)
|
||||
|
@@ -57,6 +57,8 @@
|
||||
* Steering */
|
||||
#define VIRTIO_NET_F_CTRL_MAC_ADDR 23 /* Set MAC address */
|
||||
|
||||
#define VIRTIO_NET_F_SPEED_DUPLEX 63 /* Device set linkspeed and duplex */
|
||||
|
||||
#ifndef VIRTIO_NET_NO_LEGACY
|
||||
#define VIRTIO_NET_F_GSO 6 /* Host handles pkts w/ any GSO type */
|
||||
#endif /* VIRTIO_NET_NO_LEGACY */
|
||||
@@ -76,6 +78,17 @@ struct virtio_net_config {
|
||||
__u16 max_virtqueue_pairs;
|
||||
/* Default maximum transmit unit advice */
|
||||
__u16 mtu;
|
||||
/*
|
||||
* speed, in units of 1Mb. All values 0 to INT_MAX are legal.
|
||||
* Any other value stands for unknown.
|
||||
*/
|
||||
__u32 speed;
|
||||
/*
|
||||
* 0x00 - half duplex
|
||||
* 0x01 - full duplex
|
||||
* Any other value stands for unknown.
|
||||
*/
|
||||
__u8 duplex;
|
||||
} __attribute__((packed));
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user