Linux 3.13-rc3
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.15 (GNU/Linux) iQEcBAABAgAGBQJSogqUAAoJEHm+PkMAQRiGM2MIAJrr5KEXEWuuAR4+JkkWBK7A +dVT4n1MM4wP/aCIyriSlq7kgT03Wxk4Q4wKsj2wZvDQkNgEQjrctgIihc75jqi5 126nmT3YXJLwgDpFA3RHZUWve3j3vfUG53rRuk7K9Xx1sGWU3Ls7BuInvQZ//+QS 6UB4UuEAalmose5U8ToXQfMqZhjwreZKeb64TEZwFvu2klv4cnka1L/zHbmQGgRg 2Pfv+aUrjsYE8s9lkEKX8MIQsDn28Q5Lsv7XIEQwo2at4rYbJaxX6usuC1OI0MQ5 BLUn1GgtvOidq6FzSg6kXiA/MJYH3J0S+p4uULWAprxA+KeJRbWNRroM94W1qAk= =1Wcq -----END PGP SIGNATURE----- Merge tag 'v3.13-rc3' into drm-intel-next-queued Linux 3.13-rc3 I need a backmerge for two reasons: - For merging the ppgtt patches from Ben I need to pull in the bdw support. - We now have duplicated calls to intel_uncore_forcewake_reset in the setup code to due 2 different patches merged into -next and 3.13. The conflict is silen so I need the merge to be able to apply Deepak's fixup patch. Conflicts: drivers/gpu/drm/i915/intel_display.c Trivial conflict, it doesn't even show up in the merge diff. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
commit
f7698ba75f
8964 changed files with 351118 additions and 181848 deletions
|
|
@ -86,7 +86,7 @@
|
|||
#define EHOSTUNREACH 113 /* No route to host */
|
||||
#define EALREADY 114 /* Operation already in progress */
|
||||
#define EINPROGRESS 115 /* Operation now in progress */
|
||||
#define ESTALE 116 /* Stale NFS file handle */
|
||||
#define ESTALE 116 /* Stale file handle */
|
||||
#define EUCLEAN 117 /* Structure needs cleaning */
|
||||
#define ENOTNAM 118 /* Not a XENIX named type file */
|
||||
#define ENAVAIL 119 /* No XENIX semaphores available */
|
||||
|
|
|
|||
|
|
@ -78,4 +78,6 @@
|
|||
|
||||
#define SO_BUSY_POLL 46
|
||||
|
||||
#define SO_MAX_PACING_RATE 47
|
||||
|
||||
#endif /* __ASM_GENERIC_SOCKET_H */
|
||||
|
|
|
|||
|
|
@ -981,6 +981,8 @@ struct drm_radeon_cs {
|
|||
#define RADEON_INFO_SI_TILE_MODE_ARRAY 0x16
|
||||
/* query if CP DMA is supported on the compute ring */
|
||||
#define RADEON_INFO_SI_CP_DMA_COMPUTE 0x17
|
||||
/* CIK macrotile mode array */
|
||||
#define RADEON_INFO_CIK_MACROTILE_MODE_ARRAY 0x18
|
||||
|
||||
|
||||
struct drm_radeon_info {
|
||||
|
|
|
|||
|
|
@ -241,6 +241,8 @@ header-y += media.h
|
|||
header-y += mei.h
|
||||
header-y += mempolicy.h
|
||||
header-y += meye.h
|
||||
header-y += mic_common.h
|
||||
header-y += mic_ioctl.h
|
||||
header-y += mii.h
|
||||
header-y += minix_fs.h
|
||||
header-y += mman.h
|
||||
|
|
|
|||
|
|
@ -68,6 +68,9 @@
|
|||
#define AUDIT_MAKE_EQUIV 1015 /* Append to watched tree */
|
||||
#define AUDIT_TTY_GET 1016 /* Get TTY auditing status */
|
||||
#define AUDIT_TTY_SET 1017 /* Set TTY auditing status */
|
||||
#define AUDIT_SET_FEATURE 1018 /* Turn an audit feature on or off */
|
||||
#define AUDIT_GET_FEATURE 1019 /* Get which features are enabled */
|
||||
#define AUDIT_FEATURE_CHANGE 1020 /* audit log listing feature changes */
|
||||
|
||||
#define AUDIT_FIRST_USER_MSG 1100 /* Userspace messages mostly uninteresting to kernel */
|
||||
#define AUDIT_USER_AVC 1107 /* We filter this differently */
|
||||
|
|
@ -329,7 +332,6 @@ enum {
|
|||
#define AUDIT_ARCH_ARMEB (EM_ARM)
|
||||
#define AUDIT_ARCH_CRIS (EM_CRIS|__AUDIT_ARCH_LE)
|
||||
#define AUDIT_ARCH_FRV (EM_FRV)
|
||||
#define AUDIT_ARCH_H8300 (EM_H8_300)
|
||||
#define AUDIT_ARCH_I386 (EM_386|__AUDIT_ARCH_LE)
|
||||
#define AUDIT_ARCH_IA64 (EM_IA_64|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)
|
||||
#define AUDIT_ARCH_M32R (EM_M32R)
|
||||
|
|
@ -358,6 +360,12 @@ enum {
|
|||
#define AUDIT_PERM_READ 4
|
||||
#define AUDIT_PERM_ATTR 8
|
||||
|
||||
/* MAX_AUDIT_MESSAGE_LENGTH is set in audit:lib/libaudit.h as:
|
||||
* 8970 // PATH_MAX*2+CONTEXT_SIZE*2+11+256+1
|
||||
* max header+body+tailer: 44 + 29 + 32 + 262 + 7 + pad
|
||||
*/
|
||||
#define AUDIT_MESSAGE_TEXT_MAX 8560
|
||||
|
||||
struct audit_status {
|
||||
__u32 mask; /* Bit mask for valid entries */
|
||||
__u32 enabled; /* 1 = enabled, 0 = disabled */
|
||||
|
|
@ -369,11 +377,28 @@ struct audit_status {
|
|||
__u32 backlog; /* messages waiting in queue */
|
||||
};
|
||||
|
||||
struct audit_features {
|
||||
#define AUDIT_FEATURE_VERSION 1
|
||||
__u32 vers;
|
||||
__u32 mask; /* which bits we are dealing with */
|
||||
__u32 features; /* which feature to enable/disable */
|
||||
__u32 lock; /* which features to lock */
|
||||
};
|
||||
|
||||
#define AUDIT_FEATURE_ONLY_UNSET_LOGINUID 0
|
||||
#define AUDIT_FEATURE_LOGINUID_IMMUTABLE 1
|
||||
#define AUDIT_LAST_FEATURE AUDIT_FEATURE_LOGINUID_IMMUTABLE
|
||||
|
||||
#define audit_feature_valid(x) ((x) >= 0 && (x) <= AUDIT_LAST_FEATURE)
|
||||
#define AUDIT_FEATURE_TO_MASK(x) (1 << ((x) & 31)) /* mask for __u32 */
|
||||
|
||||
struct audit_tty_status {
|
||||
__u32 enabled; /* 1 = enabled, 0 = disabled */
|
||||
__u32 log_passwd; /* 1 = enabled, 0 = disabled */
|
||||
};
|
||||
|
||||
#define AUDIT_UID_UNSET (unsigned int)-1
|
||||
|
||||
/* audit_rule_data supports filter rules with both integer and string
|
||||
* fields. It corresponds with AUDIT_ADD_RULE, AUDIT_DEL_RULE and
|
||||
* AUDIT_LIST_RULES requests.
|
||||
|
|
|
|||
373
include/uapi/linux/bcache.h
Normal file
373
include/uapi/linux/bcache.h
Normal file
|
|
@ -0,0 +1,373 @@
|
|||
#ifndef _LINUX_BCACHE_H
|
||||
#define _LINUX_BCACHE_H
|
||||
|
||||
/*
|
||||
* Bcache on disk data structures
|
||||
*/
|
||||
|
||||
#include <asm/types.h>
|
||||
|
||||
#define BITMASK(name, type, field, offset, size) \
|
||||
static inline __u64 name(const type *k) \
|
||||
{ return (k->field >> offset) & ~(~0ULL << size); } \
|
||||
\
|
||||
static inline void SET_##name(type *k, __u64 v) \
|
||||
{ \
|
||||
k->field &= ~(~(~0ULL << size) << offset); \
|
||||
k->field |= (v & ~(~0ULL << size)) << offset; \
|
||||
}
|
||||
|
||||
/* Btree keys - all units are in sectors */
|
||||
|
||||
struct bkey {
|
||||
__u64 high;
|
||||
__u64 low;
|
||||
__u64 ptr[];
|
||||
};
|
||||
|
||||
#define KEY_FIELD(name, field, offset, size) \
|
||||
BITMASK(name, struct bkey, field, offset, size)
|
||||
|
||||
#define PTR_FIELD(name, offset, size) \
|
||||
static inline __u64 name(const struct bkey *k, unsigned i) \
|
||||
{ return (k->ptr[i] >> offset) & ~(~0ULL << size); } \
|
||||
\
|
||||
static inline void SET_##name(struct bkey *k, unsigned i, __u64 v) \
|
||||
{ \
|
||||
k->ptr[i] &= ~(~(~0ULL << size) << offset); \
|
||||
k->ptr[i] |= (v & ~(~0ULL << size)) << offset; \
|
||||
}
|
||||
|
||||
#define KEY_SIZE_BITS 16
|
||||
|
||||
KEY_FIELD(KEY_PTRS, high, 60, 3)
|
||||
KEY_FIELD(HEADER_SIZE, high, 58, 2)
|
||||
KEY_FIELD(KEY_CSUM, high, 56, 2)
|
||||
KEY_FIELD(KEY_PINNED, high, 55, 1)
|
||||
KEY_FIELD(KEY_DIRTY, high, 36, 1)
|
||||
|
||||
KEY_FIELD(KEY_SIZE, high, 20, KEY_SIZE_BITS)
|
||||
KEY_FIELD(KEY_INODE, high, 0, 20)
|
||||
|
||||
/* Next time I change the on disk format, KEY_OFFSET() won't be 64 bits */
|
||||
|
||||
static inline __u64 KEY_OFFSET(const struct bkey *k)
|
||||
{
|
||||
return k->low;
|
||||
}
|
||||
|
||||
static inline void SET_KEY_OFFSET(struct bkey *k, __u64 v)
|
||||
{
|
||||
k->low = v;
|
||||
}
|
||||
|
||||
/*
|
||||
* The high bit being set is a relic from when we used it to do binary
|
||||
* searches - it told you where a key started. It's not used anymore,
|
||||
* and can probably be safely dropped.
|
||||
*/
|
||||
#define KEY(inode, offset, size) \
|
||||
((struct bkey) { \
|
||||
.high = (1ULL << 63) | ((__u64) (size) << 20) | (inode), \
|
||||
.low = (offset) \
|
||||
})
|
||||
|
||||
#define ZERO_KEY KEY(0, 0, 0)
|
||||
|
||||
#define MAX_KEY_INODE (~(~0 << 20))
|
||||
#define MAX_KEY_OFFSET (~0ULL >> 1)
|
||||
#define MAX_KEY KEY(MAX_KEY_INODE, MAX_KEY_OFFSET, 0)
|
||||
|
||||
#define KEY_START(k) (KEY_OFFSET(k) - KEY_SIZE(k))
|
||||
#define START_KEY(k) KEY(KEY_INODE(k), KEY_START(k), 0)
|
||||
|
||||
#define PTR_DEV_BITS 12
|
||||
|
||||
PTR_FIELD(PTR_DEV, 51, PTR_DEV_BITS)
|
||||
PTR_FIELD(PTR_OFFSET, 8, 43)
|
||||
PTR_FIELD(PTR_GEN, 0, 8)
|
||||
|
||||
#define PTR_CHECK_DEV ((1 << PTR_DEV_BITS) - 1)
|
||||
|
||||
#define PTR(gen, offset, dev) \
|
||||
((((__u64) dev) << 51) | ((__u64) offset) << 8 | gen)
|
||||
|
||||
/* Bkey utility code */
|
||||
|
||||
static inline unsigned long bkey_u64s(const struct bkey *k)
|
||||
{
|
||||
return (sizeof(struct bkey) / sizeof(__u64)) + KEY_PTRS(k);
|
||||
}
|
||||
|
||||
static inline unsigned long bkey_bytes(const struct bkey *k)
|
||||
{
|
||||
return bkey_u64s(k) * sizeof(__u64);
|
||||
}
|
||||
|
||||
#define bkey_copy(_dest, _src) memcpy(_dest, _src, bkey_bytes(_src))
|
||||
|
||||
static inline void bkey_copy_key(struct bkey *dest, const struct bkey *src)
|
||||
{
|
||||
SET_KEY_INODE(dest, KEY_INODE(src));
|
||||
SET_KEY_OFFSET(dest, KEY_OFFSET(src));
|
||||
}
|
||||
|
||||
static inline struct bkey *bkey_next(const struct bkey *k)
|
||||
{
|
||||
__u64 *d = (void *) k;
|
||||
return (struct bkey *) (d + bkey_u64s(k));
|
||||
}
|
||||
|
||||
static inline struct bkey *bkey_last(const struct bkey *k, unsigned nr_keys)
|
||||
{
|
||||
__u64 *d = (void *) k;
|
||||
return (struct bkey *) (d + nr_keys);
|
||||
}
|
||||
/* Enough for a key with 6 pointers */
|
||||
#define BKEY_PAD 8
|
||||
|
||||
#define BKEY_PADDED(key) \
|
||||
union { struct bkey key; __u64 key ## _pad[BKEY_PAD]; }
|
||||
|
||||
/* Superblock */
|
||||
|
||||
/* Version 0: Cache device
|
||||
* Version 1: Backing device
|
||||
* Version 2: Seed pointer into btree node checksum
|
||||
* Version 3: Cache device with new UUID format
|
||||
* Version 4: Backing device with data offset
|
||||
*/
|
||||
#define BCACHE_SB_VERSION_CDEV 0
|
||||
#define BCACHE_SB_VERSION_BDEV 1
|
||||
#define BCACHE_SB_VERSION_CDEV_WITH_UUID 3
|
||||
#define BCACHE_SB_VERSION_BDEV_WITH_OFFSET 4
|
||||
#define BCACHE_SB_MAX_VERSION 4
|
||||
|
||||
#define SB_SECTOR 8
|
||||
#define SB_SIZE 4096
|
||||
#define SB_LABEL_SIZE 32
|
||||
#define SB_JOURNAL_BUCKETS 256U
|
||||
/* SB_JOURNAL_BUCKETS must be divisible by BITS_PER_LONG */
|
||||
#define MAX_CACHES_PER_SET 8
|
||||
|
||||
#define BDEV_DATA_START_DEFAULT 16 /* sectors */
|
||||
|
||||
struct cache_sb {
|
||||
__u64 csum;
|
||||
__u64 offset; /* sector where this sb was written */
|
||||
__u64 version;
|
||||
|
||||
__u8 magic[16];
|
||||
|
||||
__u8 uuid[16];
|
||||
union {
|
||||
__u8 set_uuid[16];
|
||||
__u64 set_magic;
|
||||
};
|
||||
__u8 label[SB_LABEL_SIZE];
|
||||
|
||||
__u64 flags;
|
||||
__u64 seq;
|
||||
__u64 pad[8];
|
||||
|
||||
union {
|
||||
struct {
|
||||
/* Cache devices */
|
||||
__u64 nbuckets; /* device size */
|
||||
|
||||
__u16 block_size; /* sectors */
|
||||
__u16 bucket_size; /* sectors */
|
||||
|
||||
__u16 nr_in_set;
|
||||
__u16 nr_this_dev;
|
||||
};
|
||||
struct {
|
||||
/* Backing devices */
|
||||
__u64 data_offset;
|
||||
|
||||
/*
|
||||
* block_size from the cache device section is still used by
|
||||
* backing devices, so don't add anything here until we fix
|
||||
* things to not need it for backing devices anymore
|
||||
*/
|
||||
};
|
||||
};
|
||||
|
||||
__u32 last_mount; /* time_t */
|
||||
|
||||
__u16 first_bucket;
|
||||
union {
|
||||
__u16 njournal_buckets;
|
||||
__u16 keys;
|
||||
};
|
||||
__u64 d[SB_JOURNAL_BUCKETS]; /* journal buckets */
|
||||
};
|
||||
|
||||
static inline _Bool SB_IS_BDEV(const struct cache_sb *sb)
|
||||
{
|
||||
return sb->version == BCACHE_SB_VERSION_BDEV
|
||||
|| sb->version == BCACHE_SB_VERSION_BDEV_WITH_OFFSET;
|
||||
}
|
||||
|
||||
BITMASK(CACHE_SYNC, struct cache_sb, flags, 0, 1);
|
||||
BITMASK(CACHE_DISCARD, struct cache_sb, flags, 1, 1);
|
||||
BITMASK(CACHE_REPLACEMENT, struct cache_sb, flags, 2, 3);
|
||||
#define CACHE_REPLACEMENT_LRU 0U
|
||||
#define CACHE_REPLACEMENT_FIFO 1U
|
||||
#define CACHE_REPLACEMENT_RANDOM 2U
|
||||
|
||||
BITMASK(BDEV_CACHE_MODE, struct cache_sb, flags, 0, 4);
|
||||
#define CACHE_MODE_WRITETHROUGH 0U
|
||||
#define CACHE_MODE_WRITEBACK 1U
|
||||
#define CACHE_MODE_WRITEAROUND 2U
|
||||
#define CACHE_MODE_NONE 3U
|
||||
BITMASK(BDEV_STATE, struct cache_sb, flags, 61, 2);
|
||||
#define BDEV_STATE_NONE 0U
|
||||
#define BDEV_STATE_CLEAN 1U
|
||||
#define BDEV_STATE_DIRTY 2U
|
||||
#define BDEV_STATE_STALE 3U
|
||||
|
||||
/*
|
||||
* Magic numbers
|
||||
*
|
||||
* The various other data structures have their own magic numbers, which are
|
||||
* xored with the first part of the cache set's UUID
|
||||
*/
|
||||
|
||||
#define JSET_MAGIC 0x245235c1a3625032ULL
|
||||
#define PSET_MAGIC 0x6750e15f87337f91ULL
|
||||
#define BSET_MAGIC 0x90135c78b99e07f5ULL
|
||||
|
||||
static inline __u64 jset_magic(struct cache_sb *sb)
|
||||
{
|
||||
return sb->set_magic ^ JSET_MAGIC;
|
||||
}
|
||||
|
||||
static inline __u64 pset_magic(struct cache_sb *sb)
|
||||
{
|
||||
return sb->set_magic ^ PSET_MAGIC;
|
||||
}
|
||||
|
||||
static inline __u64 bset_magic(struct cache_sb *sb)
|
||||
{
|
||||
return sb->set_magic ^ BSET_MAGIC;
|
||||
}
|
||||
|
||||
/*
|
||||
* Journal
|
||||
*
|
||||
* On disk format for a journal entry:
|
||||
* seq is monotonically increasing; every journal entry has its own unique
|
||||
* sequence number.
|
||||
*
|
||||
* last_seq is the oldest journal entry that still has keys the btree hasn't
|
||||
* flushed to disk yet.
|
||||
*
|
||||
* version is for on disk format changes.
|
||||
*/
|
||||
|
||||
#define BCACHE_JSET_VERSION_UUIDv1 1
|
||||
#define BCACHE_JSET_VERSION_UUID 1 /* Always latest UUID format */
|
||||
#define BCACHE_JSET_VERSION 1
|
||||
|
||||
struct jset {
|
||||
__u64 csum;
|
||||
__u64 magic;
|
||||
__u64 seq;
|
||||
__u32 version;
|
||||
__u32 keys;
|
||||
|
||||
__u64 last_seq;
|
||||
|
||||
BKEY_PADDED(uuid_bucket);
|
||||
BKEY_PADDED(btree_root);
|
||||
__u16 btree_level;
|
||||
__u16 pad[3];
|
||||
|
||||
__u64 prio_bucket[MAX_CACHES_PER_SET];
|
||||
|
||||
union {
|
||||
struct bkey start[0];
|
||||
__u64 d[0];
|
||||
};
|
||||
};
|
||||
|
||||
/* Bucket prios/gens */
|
||||
|
||||
struct prio_set {
|
||||
__u64 csum;
|
||||
__u64 magic;
|
||||
__u64 seq;
|
||||
__u32 version;
|
||||
__u32 pad;
|
||||
|
||||
__u64 next_bucket;
|
||||
|
||||
struct bucket_disk {
|
||||
__u16 prio;
|
||||
__u8 gen;
|
||||
} __attribute((packed)) data[];
|
||||
};
|
||||
|
||||
/* UUIDS - per backing device/flash only volume metadata */
|
||||
|
||||
struct uuid_entry {
|
||||
union {
|
||||
struct {
|
||||
__u8 uuid[16];
|
||||
__u8 label[32];
|
||||
__u32 first_reg;
|
||||
__u32 last_reg;
|
||||
__u32 invalidated;
|
||||
|
||||
__u32 flags;
|
||||
/* Size of flash only volumes */
|
||||
__u64 sectors;
|
||||
};
|
||||
|
||||
__u8 pad[128];
|
||||
};
|
||||
};
|
||||
|
||||
BITMASK(UUID_FLASH_ONLY, struct uuid_entry, flags, 0, 1);
|
||||
|
||||
/* Btree nodes */
|
||||
|
||||
/* Version 1: Seed pointer into btree node checksum
|
||||
*/
|
||||
#define BCACHE_BSET_CSUM 1
|
||||
#define BCACHE_BSET_VERSION 1
|
||||
|
||||
/*
|
||||
* Btree nodes
|
||||
*
|
||||
* On disk a btree node is a list/log of these; within each set the keys are
|
||||
* sorted
|
||||
*/
|
||||
struct bset {
|
||||
__u64 csum;
|
||||
__u64 magic;
|
||||
__u64 seq;
|
||||
__u32 version;
|
||||
__u32 keys;
|
||||
|
||||
union {
|
||||
struct bkey start[0];
|
||||
__u64 d[0];
|
||||
};
|
||||
};
|
||||
|
||||
/* OBSOLETE */
|
||||
|
||||
/* UUIDS - per backing device/flash only volume metadata */
|
||||
|
||||
struct uuid_entry_v0 {
|
||||
__u8 uuid[16];
|
||||
__u8 label[32];
|
||||
__u32 first_reg;
|
||||
__u32 last_reg;
|
||||
__u32 invalidated;
|
||||
__u32 pad;
|
||||
};
|
||||
|
||||
#endif /* _LINUX_BCACHE_H */
|
||||
|
|
@ -7,6 +7,38 @@
|
|||
* Copyright (c) 2002-2007 Volkswagen Group Electronic Research
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of Volkswagen nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* Alternatively, provided that this notice is retained in full, this
|
||||
* software may be distributed under the terms of the GNU General
|
||||
* Public License ("GPL") version 2, in which case the provisions of the
|
||||
* GPL apply INSTEAD OF those given above.
|
||||
*
|
||||
* The provided data structures and external interfaces from this code
|
||||
* are not restricted to be used by modules with a GPL compatible license.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
|
||||
* DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef CAN_BCM_H
|
||||
|
|
|
|||
|
|
@ -7,6 +7,38 @@
|
|||
* Copyright (c) 2002-2007 Volkswagen Group Electronic Research
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of Volkswagen nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* Alternatively, provided that this notice is retained in full, this
|
||||
* software may be distributed under the terms of the GNU General
|
||||
* Public License ("GPL") version 2, in which case the provisions of the
|
||||
* GPL apply INSTEAD OF those given above.
|
||||
*
|
||||
* The provided data structures and external interfaces from this code
|
||||
* are not restricted to be used by modules with a GPL compatible license.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
|
||||
* DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef CAN_ERROR_H
|
||||
|
|
|
|||
|
|
@ -7,6 +7,38 @@
|
|||
* Copyright (c) 2011 Volkswagen Group Electronic Research
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of Volkswagen nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* Alternatively, provided that this notice is retained in full, this
|
||||
* software may be distributed under the terms of the GNU General
|
||||
* Public License ("GPL") version 2, in which case the provisions of the
|
||||
* GPL apply INSTEAD OF those given above.
|
||||
*
|
||||
* The provided data structures and external interfaces from this code
|
||||
* are not restricted to be used by modules with a GPL compatible license.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
|
||||
* DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef CAN_GW_H
|
||||
|
|
|
|||
|
|
@ -5,6 +5,14 @@
|
|||
*
|
||||
* Copyright (c) 2009 Wolfgang Grandegger <wg@grandegger.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the 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.
|
||||
*/
|
||||
|
||||
#ifndef CAN_NETLINK_H
|
||||
|
|
|
|||
|
|
@ -8,6 +8,38 @@
|
|||
* Copyright (c) 2002-2007 Volkswagen Group Electronic Research
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of Volkswagen nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* Alternatively, provided that this notice is retained in full, this
|
||||
* software may be distributed under the terms of the GNU General
|
||||
* Public License ("GPL") version 2, in which case the provisions of the
|
||||
* GPL apply INSTEAD OF those given above.
|
||||
*
|
||||
* The provided data structures and external interfaces from this code
|
||||
* are not restricted to be used by modules with a GPL compatible license.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
|
||||
* DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef CAN_RAW_H
|
||||
|
|
|
|||
|
|
@ -267,9 +267,9 @@ enum {
|
|||
#define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl)
|
||||
|
||||
#define DM_VERSION_MAJOR 4
|
||||
#define DM_VERSION_MINOR 26
|
||||
#define DM_VERSION_MINOR 27
|
||||
#define DM_VERSION_PATCHLEVEL 0
|
||||
#define DM_VERSION_EXTRA "-ioctl (2013-08-15)"
|
||||
#define DM_VERSION_EXTRA "-ioctl (2013-10-30)"
|
||||
|
||||
/* Status bits */
|
||||
#define DM_READONLY_FLAG (1 << 0) /* In/Out */
|
||||
|
|
@ -341,4 +341,15 @@ enum {
|
|||
*/
|
||||
#define DM_DATA_OUT_FLAG (1 << 16) /* Out */
|
||||
|
||||
/*
|
||||
* If set with DM_DEV_REMOVE or DM_REMOVE_ALL this indicates that if
|
||||
* the device cannot be removed immediately because it is still in use
|
||||
* it should instead be scheduled for removal when it gets closed.
|
||||
*
|
||||
* On return from DM_DEV_REMOVE, DM_DEV_STATUS or other ioctls, this
|
||||
* flag indicates that the device is scheduled to be removed when it
|
||||
* gets closed.
|
||||
*/
|
||||
#define DM_DEFERRED_REMOVE (1 << 17) /* In/Out */
|
||||
|
||||
#endif /* _LINUX_DM_IOCTL_H */
|
||||
|
|
|
|||
|
|
@ -31,7 +31,6 @@
|
|||
#define EM_CRIS 76 /* Axis Communications 32-bit embedded processor */
|
||||
#define EM_V850 87 /* NEC v850 */
|
||||
#define EM_M32R 88 /* Renesas M32R */
|
||||
#define EM_H8_300 46 /* Renesas H8/300,300H,H8S */
|
||||
#define EM_MN10300 89 /* Panasonic/MEI MN10300, AM33 */
|
||||
#define EM_BLACKFIN 106 /* ADI Blackfin Processor */
|
||||
#define EM_TI_C6000 140 /* TI C6X DSPs */
|
||||
|
|
|
|||
|
|
@ -61,5 +61,16 @@ struct epoll_event {
|
|||
__u64 data;
|
||||
} EPOLL_PACKED;
|
||||
|
||||
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev)
|
||||
{
|
||||
if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND))
|
||||
epev->events &= ~EPOLLWAKEUP;
|
||||
}
|
||||
#else
|
||||
static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev)
|
||||
{
|
||||
epev->events &= ~EPOLLWAKEUP;
|
||||
}
|
||||
#endif
|
||||
#endif /* _UAPI_LINUX_EVENTPOLL_H */
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@ struct genlmsghdr {
|
|||
*/
|
||||
#define GENL_ID_GENERATE 0
|
||||
#define GENL_ID_CTRL NLMSG_MIN_TYPE
|
||||
#define GENL_ID_VFS_DQUOT (NLMSG_MIN_TYPE + 1)
|
||||
#define GENL_ID_PMCRAID (NLMSG_MIN_TYPE + 2)
|
||||
|
||||
/**************************************************************************
|
||||
* Controller
|
||||
|
|
|
|||
37
include/uapi/linux/hash_info.h
Normal file
37
include/uapi/linux/hash_info.h
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
/*
|
||||
* Hash Info: Hash algorithms information
|
||||
*
|
||||
* Copyright (c) 2013 Dmitry Kasatkin <d.kasatkin@samsung.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the Free
|
||||
* Software Foundation; either version 2 of the License, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _UAPI_LINUX_HASH_INFO_H
|
||||
#define _UAPI_LINUX_HASH_INFO_H
|
||||
|
||||
enum hash_algo {
|
||||
HASH_ALGO_MD4,
|
||||
HASH_ALGO_MD5,
|
||||
HASH_ALGO_SHA1,
|
||||
HASH_ALGO_RIPE_MD_160,
|
||||
HASH_ALGO_SHA256,
|
||||
HASH_ALGO_SHA384,
|
||||
HASH_ALGO_SHA512,
|
||||
HASH_ALGO_SHA224,
|
||||
HASH_ALGO_RIPE_MD_128,
|
||||
HASH_ALGO_RIPE_MD_256,
|
||||
HASH_ALGO_RIPE_MD_320,
|
||||
HASH_ALGO_WP_256,
|
||||
HASH_ALGO_WP_384,
|
||||
HASH_ALGO_WP_512,
|
||||
HASH_ALGO_TGR_128,
|
||||
HASH_ALGO_TGR_160,
|
||||
HASH_ALGO_TGR_192,
|
||||
HASH_ALGO__LAST
|
||||
};
|
||||
|
||||
#endif /* _UAPI_LINUX_HASH_INFO_H */
|
||||
50
include/uapi/linux/hsr_netlink.h
Normal file
50
include/uapi/linux/hsr_netlink.h
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
/*
|
||||
* Copyright 2011-2013 Autronica Fire and Security AS
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the Free
|
||||
* Software Foundation; either version 2 of the License, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* Author(s):
|
||||
* 2011-2013 Arvid Brodin, arvid.brodin@xdin.com
|
||||
*/
|
||||
|
||||
#ifndef __UAPI_HSR_NETLINK_H
|
||||
#define __UAPI_HSR_NETLINK_H
|
||||
|
||||
/* Generic Netlink HSR family definition
|
||||
*/
|
||||
|
||||
/* attributes */
|
||||
enum {
|
||||
HSR_A_UNSPEC,
|
||||
HSR_A_NODE_ADDR,
|
||||
HSR_A_IFINDEX,
|
||||
HSR_A_IF1_AGE,
|
||||
HSR_A_IF2_AGE,
|
||||
HSR_A_NODE_ADDR_B,
|
||||
HSR_A_IF1_SEQ,
|
||||
HSR_A_IF2_SEQ,
|
||||
HSR_A_IF1_IFINDEX,
|
||||
HSR_A_IF2_IFINDEX,
|
||||
HSR_A_ADDR_B_IFINDEX,
|
||||
__HSR_A_MAX,
|
||||
};
|
||||
#define HSR_A_MAX (__HSR_A_MAX - 1)
|
||||
|
||||
|
||||
/* commands */
|
||||
enum {
|
||||
HSR_C_UNSPEC,
|
||||
HSR_C_RING_ERROR,
|
||||
HSR_C_NODE_DOWN,
|
||||
HSR_C_GET_NODE_STATUS,
|
||||
HSR_C_SET_NODE_STATUS,
|
||||
HSR_C_GET_NODE_LIST,
|
||||
HSR_C_SET_NODE_LIST,
|
||||
__HSR_C_MAX,
|
||||
};
|
||||
#define HSR_C_MAX (__HSR_C_MAX - 1)
|
||||
|
||||
#endif /* __UAPI_HSR_NETLINK_H */
|
||||
|
|
@ -83,6 +83,7 @@
|
|||
#define IFF_SUPP_NOFCS 0x80000 /* device supports sending custom FCS */
|
||||
#define IFF_LIVE_ADDR_CHANGE 0x100000 /* device supports hardware address
|
||||
* change when it's running */
|
||||
#define IFF_MACVLAN 0x200000 /* Macvlan device */
|
||||
|
||||
|
||||
#define IF_GET_IFACE 0x0001 /* for querying only */
|
||||
|
|
|
|||
|
|
@ -91,6 +91,8 @@
|
|||
#define BOND_XMIT_POLICY_LAYER2 0 /* layer 2 (MAC only), default */
|
||||
#define BOND_XMIT_POLICY_LAYER34 1 /* layer 3+4 (IP ^ (TCP || UDP)) */
|
||||
#define BOND_XMIT_POLICY_LAYER23 2 /* layer 2+3 (IP ^ MAC) */
|
||||
#define BOND_XMIT_POLICY_ENCAP23 3 /* encapsulated layer 2+3 */
|
||||
#define BOND_XMIT_POLICY_ENCAP34 4 /* encapsulated layer 3+4 */
|
||||
|
||||
typedef struct ifbond {
|
||||
__s32 bond_mode;
|
||||
|
|
|
|||
|
|
@ -85,6 +85,7 @@
|
|||
#define ETH_P_8021AH 0x88E7 /* 802.1ah Backbone Service Tag */
|
||||
#define ETH_P_MVRP 0x88F5 /* 802.1Q MVRP */
|
||||
#define ETH_P_1588 0x88F7 /* IEEE 1588 Timesync */
|
||||
#define ETH_P_PRP 0x88FB /* IEC 62439-3 PRP/HSRv0 */
|
||||
#define ETH_P_FCOE 0x8906 /* Fibre Channel over Ethernet */
|
||||
#define ETH_P_TDLS 0x890D /* TDLS */
|
||||
#define ETH_P_FIP 0x8914 /* FCoE Initialization Protocol */
|
||||
|
|
|
|||
|
|
@ -325,6 +325,17 @@ struct ifla_vxlan_port_range {
|
|||
__be16 high;
|
||||
};
|
||||
|
||||
/* Bonding section */
|
||||
|
||||
enum {
|
||||
IFLA_BOND_UNSPEC,
|
||||
IFLA_BOND_MODE,
|
||||
IFLA_BOND_ACTIVE_SLAVE,
|
||||
__IFLA_BOND_MAX,
|
||||
};
|
||||
|
||||
#define IFLA_BOND_MAX (__IFLA_BOND_MAX - 1)
|
||||
|
||||
/* SR-IOV virtual function management section */
|
||||
|
||||
enum {
|
||||
|
|
@ -470,4 +481,19 @@ enum {
|
|||
|
||||
#define IFLA_IPOIB_MAX (__IFLA_IPOIB_MAX - 1)
|
||||
|
||||
|
||||
/* HSR section */
|
||||
|
||||
enum {
|
||||
IFLA_HSR_UNSPEC,
|
||||
IFLA_HSR_SLAVE1,
|
||||
IFLA_HSR_SLAVE2,
|
||||
IFLA_HSR_MULTICAST_SPEC, /* Last byte of supervision addr */
|
||||
IFLA_HSR_SUPERVISION_ADDR, /* Supervision frame multicast addr */
|
||||
IFLA_HSR_SEQ_NR,
|
||||
__IFLA_HSR_MAX,
|
||||
};
|
||||
|
||||
#define IFLA_HSR_MAX (__IFLA_HSR_MAX - 1)
|
||||
|
||||
#endif /* _UAPI_LINUX_IF_LINK_H */
|
||||
|
|
|
|||
|
|
@ -115,6 +115,11 @@ struct in_addr {
|
|||
#define IP_PMTUDISC_WANT 1 /* Use per route hints */
|
||||
#define IP_PMTUDISC_DO 2 /* Always DF */
|
||||
#define IP_PMTUDISC_PROBE 3 /* Ignore dst pmtu */
|
||||
/* Always use interface mtu (ignores dst pmtu) but don't set DF flag.
|
||||
* Also incoming ICMP frag_needed notifications will be ignored on
|
||||
* this socket to prevent accepting spoofed ones.
|
||||
*/
|
||||
#define IP_PMTUDISC_INTERFACE 4
|
||||
|
||||
#define IP_MULTICAST_IF 32
|
||||
#define IP_MULTICAST_TTL 33
|
||||
|
|
|
|||
|
|
@ -334,7 +334,7 @@ enum {
|
|||
__IPVS_CMD_ATTR_MAX,
|
||||
};
|
||||
|
||||
#define IPVS_CMD_ATTR_MAX (__IPVS_SVC_ATTR_MAX - 1)
|
||||
#define IPVS_CMD_ATTR_MAX (__IPVS_CMD_ATTR_MAX - 1)
|
||||
|
||||
/*
|
||||
* Attributes used to describe a service
|
||||
|
|
|
|||
|
|
@ -56,5 +56,6 @@
|
|||
#define KEYCTL_REJECT 19 /* reject a partially constructed key */
|
||||
#define KEYCTL_INSTANTIATE_IOV 20 /* instantiate a partially constructed key */
|
||||
#define KEYCTL_INVALIDATE 21 /* invalidate a key */
|
||||
#define KEYCTL_GET_PERSISTENT 22 /* get a user's persistent keyring */
|
||||
|
||||
#endif /* _LINUX_KEYCTL_H */
|
||||
|
|
|
|||
|
|
@ -518,6 +518,10 @@ struct kvm_ppc_smmu_info {
|
|||
/* machine type bits, to be used as argument to KVM_CREATE_VM */
|
||||
#define KVM_VM_S390_UCONTROL 1
|
||||
|
||||
/* on ppc, 0 indicate default, 1 should force HV and 2 PR */
|
||||
#define KVM_VM_PPC_HV 1
|
||||
#define KVM_VM_PPC_PR 2
|
||||
|
||||
#define KVM_S390_SIE_PAGE_OFFSET 1
|
||||
|
||||
/*
|
||||
|
|
@ -541,6 +545,7 @@ struct kvm_ppc_smmu_info {
|
|||
#define KVM_TRACE_ENABLE __KVM_DEPRECATED_MAIN_W_0x06
|
||||
#define KVM_TRACE_PAUSE __KVM_DEPRECATED_MAIN_0x07
|
||||
#define KVM_TRACE_DISABLE __KVM_DEPRECATED_MAIN_0x08
|
||||
#define KVM_GET_EMULATED_CPUID _IOWR(KVMIO, 0x09, struct kvm_cpuid2)
|
||||
|
||||
/*
|
||||
* Extension capability list.
|
||||
|
|
@ -668,6 +673,7 @@ struct kvm_ppc_smmu_info {
|
|||
#define KVM_CAP_IRQ_XICS 92
|
||||
#define KVM_CAP_ARM_EL1_32BIT 93
|
||||
#define KVM_CAP_SPAPR_MULTITCE 94
|
||||
#define KVM_CAP_EXT_EMUL_CPUID 95
|
||||
|
||||
#ifdef KVM_CAP_IRQ_ROUTING
|
||||
|
||||
|
|
@ -843,6 +849,10 @@ struct kvm_device_attr {
|
|||
#define KVM_DEV_TYPE_FSL_MPIC_20 1
|
||||
#define KVM_DEV_TYPE_FSL_MPIC_42 2
|
||||
#define KVM_DEV_TYPE_XICS 3
|
||||
#define KVM_DEV_TYPE_VFIO 4
|
||||
#define KVM_DEV_VFIO_GROUP 1
|
||||
#define KVM_DEV_VFIO_GROUP_ADD 1
|
||||
#define KVM_DEV_VFIO_GROUP_DEL 2
|
||||
|
||||
/*
|
||||
* ioctls for VM fds
|
||||
|
|
@ -1012,6 +1022,7 @@ struct kvm_s390_ucas_mapping {
|
|||
/* VM is being stopped by host */
|
||||
#define KVM_KVMCLOCK_CTRL _IO(KVMIO, 0xad)
|
||||
#define KVM_ARM_VCPU_INIT _IOW(KVMIO, 0xae, struct kvm_vcpu_init)
|
||||
#define KVM_ARM_PREFERRED_TARGET _IOR(KVMIO, 0xaf, struct kvm_vcpu_init)
|
||||
#define KVM_GET_REG_LIST _IOWR(KVMIO, 0xb0, struct kvm_reg_list)
|
||||
|
||||
#define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0)
|
||||
|
|
|
|||
|
|
@ -71,6 +71,6 @@
|
|||
#define USBDEVICE_SUPER_MAGIC 0x9fa2
|
||||
#define MTD_INODE_FS_MAGIC 0x11307854
|
||||
#define ANON_INODE_FS_MAGIC 0x09041934
|
||||
|
||||
#define BTRFS_TEST_MAGIC 0x73727279
|
||||
|
||||
#endif /* __LINUX_MAGIC_H__ */
|
||||
|
|
|
|||
|
|
@ -54,6 +54,7 @@
|
|||
#define ACSI_MAJOR 28
|
||||
#define AZTECH_CDROM_MAJOR 29
|
||||
#define FB_MAJOR 29 /* /dev/fb* framebuffers */
|
||||
#define MTD_BLOCK_MAJOR 31
|
||||
#define CM206_CDROM_MAJOR 32
|
||||
#define IDE2_MAJOR 33
|
||||
#define IDE3_MAJOR 34
|
||||
|
|
@ -105,6 +106,7 @@
|
|||
#define IDE6_MAJOR 88
|
||||
#define IDE7_MAJOR 89
|
||||
#define IDE8_MAJOR 90
|
||||
#define MTD_CHAR_MAJOR 90
|
||||
#define IDE9_MAJOR 91
|
||||
|
||||
#define DASD_MAJOR 94
|
||||
|
|
|
|||
240
include/uapi/linux/mic_common.h
Normal file
240
include/uapi/linux/mic_common.h
Normal file
|
|
@ -0,0 +1,240 @@
|
|||
/*
|
||||
* Intel MIC Platform Software Stack (MPSS)
|
||||
*
|
||||
* Copyright(c) 2013 Intel Corporation.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License, version 2, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* The full GNU General Public License is included in this distribution in
|
||||
* the file called "COPYING".
|
||||
*
|
||||
* Intel MIC driver.
|
||||
*
|
||||
*/
|
||||
#ifndef __MIC_COMMON_H_
|
||||
#define __MIC_COMMON_H_
|
||||
|
||||
#include <linux/virtio_ring.h>
|
||||
|
||||
#ifndef __KERNEL__
|
||||
#define ALIGN(a, x) (((a) + (x) - 1) & ~((x) - 1))
|
||||
#define __aligned(x) __attribute__ ((aligned(x)))
|
||||
#endif
|
||||
|
||||
#define mic_aligned_size(x) ALIGN(sizeof(x), 8)
|
||||
|
||||
/**
|
||||
* struct mic_device_desc: Virtio device information shared between the
|
||||
* virtio driver and userspace backend
|
||||
*
|
||||
* @type: Device type: console/network/disk etc. Type 0/-1 terminates.
|
||||
* @num_vq: Number of virtqueues.
|
||||
* @feature_len: Number of bytes of feature bits. Multiply by 2: one for
|
||||
host features and one for guest acknowledgements.
|
||||
* @config_len: Number of bytes of the config array after virtqueues.
|
||||
* @status: A status byte, written by the Guest.
|
||||
* @config: Start of the following variable length config.
|
||||
*/
|
||||
struct mic_device_desc {
|
||||
__s8 type;
|
||||
__u8 num_vq;
|
||||
__u8 feature_len;
|
||||
__u8 config_len;
|
||||
__u8 status;
|
||||
__u64 config[0];
|
||||
} __aligned(8);
|
||||
|
||||
/**
|
||||
* struct mic_device_ctrl: Per virtio device information in the device page
|
||||
* used internally by the host and card side drivers.
|
||||
*
|
||||
* @vdev: Used for storing MIC vdev information by the guest.
|
||||
* @config_change: Set to 1 by host when a config change is requested.
|
||||
* @vdev_reset: Set to 1 by guest to indicate virtio device has been reset.
|
||||
* @guest_ack: Set to 1 by guest to ack a command.
|
||||
* @host_ack: Set to 1 by host to ack a command.
|
||||
* @used_address_updated: Set to 1 by guest when the used address should be
|
||||
* updated.
|
||||
* @c2h_vdev_db: The doorbell number to be used by guest. Set by host.
|
||||
* @h2c_vdev_db: The doorbell number to be used by host. Set by guest.
|
||||
*/
|
||||
struct mic_device_ctrl {
|
||||
__u64 vdev;
|
||||
__u8 config_change;
|
||||
__u8 vdev_reset;
|
||||
__u8 guest_ack;
|
||||
__u8 host_ack;
|
||||
__u8 used_address_updated;
|
||||
__s8 c2h_vdev_db;
|
||||
__s8 h2c_vdev_db;
|
||||
} __aligned(8);
|
||||
|
||||
/**
|
||||
* struct mic_bootparam: Virtio device independent information in device page
|
||||
*
|
||||
* @magic: A magic value used by the card to ensure it can see the host
|
||||
* @c2h_shutdown_db: Card to Host shutdown doorbell set by host
|
||||
* @h2c_shutdown_db: Host to Card shutdown doorbell set by card
|
||||
* @h2c_config_db: Host to Card Virtio config doorbell set by card
|
||||
* @shutdown_status: Card shutdown status set by card
|
||||
* @shutdown_card: Set to 1 by the host when a card shutdown is initiated
|
||||
*/
|
||||
struct mic_bootparam {
|
||||
__u32 magic;
|
||||
__s8 c2h_shutdown_db;
|
||||
__s8 h2c_shutdown_db;
|
||||
__s8 h2c_config_db;
|
||||
__u8 shutdown_status;
|
||||
__u8 shutdown_card;
|
||||
} __aligned(8);
|
||||
|
||||
/**
|
||||
* struct mic_device_page: High level representation of the device page
|
||||
*
|
||||
* @bootparam: The bootparam structure is used for sharing information and
|
||||
* status updates between MIC host and card drivers.
|
||||
* @desc: Array of MIC virtio device descriptors.
|
||||
*/
|
||||
struct mic_device_page {
|
||||
struct mic_bootparam bootparam;
|
||||
struct mic_device_desc desc[0];
|
||||
};
|
||||
/**
|
||||
* struct mic_vqconfig: This is how we expect the device configuration field
|
||||
* for a virtqueue to be laid out in config space.
|
||||
*
|
||||
* @address: Guest/MIC physical address of the virtio ring
|
||||
* (avail and desc rings)
|
||||
* @used_address: Guest/MIC physical address of the used ring
|
||||
* @num: The number of entries in the virtio_ring
|
||||
*/
|
||||
struct mic_vqconfig {
|
||||
__u64 address;
|
||||
__u64 used_address;
|
||||
__u16 num;
|
||||
} __aligned(8);
|
||||
|
||||
/*
|
||||
* The alignment to use between consumer and producer parts of vring.
|
||||
* This is pagesize for historical reasons.
|
||||
*/
|
||||
#define MIC_VIRTIO_RING_ALIGN 4096
|
||||
|
||||
#define MIC_MAX_VRINGS 4
|
||||
#define MIC_VRING_ENTRIES 128
|
||||
|
||||
/*
|
||||
* Max vring entries (power of 2) to ensure desc and avail rings
|
||||
* fit in a single page
|
||||
*/
|
||||
#define MIC_MAX_VRING_ENTRIES 128
|
||||
|
||||
/**
|
||||
* Max size of the desc block in bytes: includes:
|
||||
* - struct mic_device_desc
|
||||
* - struct mic_vqconfig (num_vq of these)
|
||||
* - host and guest features
|
||||
* - virtio device config space
|
||||
*/
|
||||
#define MIC_MAX_DESC_BLK_SIZE 256
|
||||
|
||||
/**
|
||||
* struct _mic_vring_info - Host vring info exposed to userspace backend
|
||||
* for the avail index and magic for the card.
|
||||
*
|
||||
* @avail_idx: host avail idx
|
||||
* @magic: A magic debug cookie.
|
||||
*/
|
||||
struct _mic_vring_info {
|
||||
__u16 avail_idx;
|
||||
int magic;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct mic_vring - Vring information.
|
||||
*
|
||||
* @vr: The virtio ring.
|
||||
* @info: Host vring information exposed to the userspace backend for the
|
||||
* avail index and magic for the card.
|
||||
* @va: The va for the buffer allocated for vr and info.
|
||||
* @len: The length of the buffer required for allocating vr and info.
|
||||
*/
|
||||
struct mic_vring {
|
||||
struct vring vr;
|
||||
struct _mic_vring_info *info;
|
||||
void *va;
|
||||
int len;
|
||||
};
|
||||
|
||||
#define mic_aligned_desc_size(d) ALIGN(mic_desc_size(d), 8)
|
||||
|
||||
#ifndef INTEL_MIC_CARD
|
||||
static inline unsigned mic_desc_size(const struct mic_device_desc *desc)
|
||||
{
|
||||
return mic_aligned_size(*desc)
|
||||
+ desc->num_vq * mic_aligned_size(struct mic_vqconfig)
|
||||
+ desc->feature_len * 2
|
||||
+ desc->config_len;
|
||||
}
|
||||
|
||||
static inline struct mic_vqconfig *
|
||||
mic_vq_config(const struct mic_device_desc *desc)
|
||||
{
|
||||
return (struct mic_vqconfig *)(desc + 1);
|
||||
}
|
||||
|
||||
static inline __u8 *mic_vq_features(const struct mic_device_desc *desc)
|
||||
{
|
||||
return (__u8 *)(mic_vq_config(desc) + desc->num_vq);
|
||||
}
|
||||
|
||||
static inline __u8 *mic_vq_configspace(const struct mic_device_desc *desc)
|
||||
{
|
||||
return mic_vq_features(desc) + desc->feature_len * 2;
|
||||
}
|
||||
static inline unsigned mic_total_desc_size(struct mic_device_desc *desc)
|
||||
{
|
||||
return mic_aligned_desc_size(desc) +
|
||||
mic_aligned_size(struct mic_device_ctrl);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Device page size */
|
||||
#define MIC_DP_SIZE 4096
|
||||
|
||||
#define MIC_MAGIC 0xc0ffee00
|
||||
|
||||
/**
|
||||
* enum mic_states - MIC states.
|
||||
*/
|
||||
enum mic_states {
|
||||
MIC_OFFLINE = 0,
|
||||
MIC_ONLINE,
|
||||
MIC_SHUTTING_DOWN,
|
||||
MIC_RESET_FAILED,
|
||||
MIC_SUSPENDING,
|
||||
MIC_SUSPENDED,
|
||||
MIC_LAST
|
||||
};
|
||||
|
||||
/**
|
||||
* enum mic_status - MIC status reported by card after
|
||||
* a host or card initiated shutdown or a card crash.
|
||||
*/
|
||||
enum mic_status {
|
||||
MIC_NOP = 0,
|
||||
MIC_CRASHED,
|
||||
MIC_HALTED,
|
||||
MIC_POWER_OFF,
|
||||
MIC_RESTART,
|
||||
MIC_STATUS_LAST
|
||||
};
|
||||
|
||||
#endif
|
||||
76
include/uapi/linux/mic_ioctl.h
Normal file
76
include/uapi/linux/mic_ioctl.h
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
/*
|
||||
* Intel MIC Platform Software Stack (MPSS)
|
||||
*
|
||||
* Copyright(c) 2013 Intel Corporation.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License, version 2, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* The full GNU General Public License is included in this distribution in
|
||||
* the file called "COPYING".
|
||||
*
|
||||
* Intel MIC Host driver.
|
||||
*
|
||||
*/
|
||||
#ifndef _MIC_IOCTL_H_
|
||||
#define _MIC_IOCTL_H_
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
/*
|
||||
* mic_copy - MIC virtio descriptor copy.
|
||||
*
|
||||
* @iov: An array of IOVEC structures containing user space buffers.
|
||||
* @iovcnt: Number of IOVEC structures in iov.
|
||||
* @vr_idx: The vring index.
|
||||
* @update_used: A non zero value results in used index being updated.
|
||||
* @out_len: The aggregate of the total length written to or read from
|
||||
* the virtio device.
|
||||
*/
|
||||
struct mic_copy_desc {
|
||||
#ifdef __KERNEL__
|
||||
struct iovec __user *iov;
|
||||
#else
|
||||
struct iovec *iov;
|
||||
#endif
|
||||
int iovcnt;
|
||||
__u8 vr_idx;
|
||||
__u8 update_used;
|
||||
__u32 out_len;
|
||||
};
|
||||
|
||||
/*
|
||||
* Add a new virtio device
|
||||
* The (struct mic_device_desc *) pointer points to a device page entry
|
||||
* for the virtio device consisting of:
|
||||
* - struct mic_device_desc
|
||||
* - struct mic_vqconfig (num_vq of these)
|
||||
* - host and guest features
|
||||
* - virtio device config space
|
||||
* The total size referenced by the pointer should equal the size returned
|
||||
* by desc_size() in mic_common.h
|
||||
*/
|
||||
#define MIC_VIRTIO_ADD_DEVICE _IOWR('s', 1, struct mic_device_desc *)
|
||||
|
||||
/*
|
||||
* Copy the number of entries in the iovec and update the used index
|
||||
* if requested by the user.
|
||||
*/
|
||||
#define MIC_VIRTIO_COPY_DESC _IOWR('s', 2, struct mic_copy_desc *)
|
||||
|
||||
/*
|
||||
* Notify virtio device of a config change
|
||||
* The (__u8 *) pointer points to config space values for the device
|
||||
* as they should be written into the device page. The total size
|
||||
* referenced by the pointer should equal the config_len field of struct
|
||||
* mic_device_desc.
|
||||
*/
|
||||
#define MIC_VIRTIO_CONFIG_CHANGE _IOWR('s', 5, __u8 *)
|
||||
|
||||
#endif
|
||||
|
|
@ -5,6 +5,8 @@ header-y += nf_conntrack_ftp.h
|
|||
header-y += nf_conntrack_sctp.h
|
||||
header-y += nf_conntrack_tcp.h
|
||||
header-y += nf_conntrack_tuple_common.h
|
||||
header-y += nf_tables.h
|
||||
header-y += nf_tables_compat.h
|
||||
header-y += nf_nat.h
|
||||
header-y += nfnetlink.h
|
||||
header-y += nfnetlink_acct.h
|
||||
|
|
|
|||
|
|
@ -10,12 +10,14 @@
|
|||
#ifndef _UAPI_IP_SET_H
|
||||
#define _UAPI_IP_SET_H
|
||||
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
/* The protocol version */
|
||||
#define IPSET_PROTOCOL 6
|
||||
|
||||
/* The maximum permissible comment length we will accept over netlink */
|
||||
#define IPSET_MAX_COMMENT_SIZE 255
|
||||
|
||||
/* The max length of strings including NUL: set and type identifiers */
|
||||
#define IPSET_MAXNAMELEN 32
|
||||
|
||||
|
|
@ -110,6 +112,7 @@ enum {
|
|||
IPSET_ATTR_IFACE,
|
||||
IPSET_ATTR_BYTES,
|
||||
IPSET_ATTR_PACKETS,
|
||||
IPSET_ATTR_COMMENT,
|
||||
__IPSET_ATTR_ADT_MAX,
|
||||
};
|
||||
#define IPSET_ATTR_ADT_MAX (__IPSET_ATTR_ADT_MAX - 1)
|
||||
|
|
@ -140,6 +143,7 @@ enum ipset_errno {
|
|||
IPSET_ERR_IPADDR_IPV4,
|
||||
IPSET_ERR_IPADDR_IPV6,
|
||||
IPSET_ERR_COUNTER,
|
||||
IPSET_ERR_COMMENT,
|
||||
|
||||
/* Type specific error codes */
|
||||
IPSET_ERR_TYPE_SPECIFIC = 4352,
|
||||
|
|
@ -176,6 +180,8 @@ enum ipset_cadt_flags {
|
|||
IPSET_FLAG_NOMATCH = (1 << IPSET_FLAG_BIT_NOMATCH),
|
||||
IPSET_FLAG_BIT_WITH_COUNTERS = 3,
|
||||
IPSET_FLAG_WITH_COUNTERS = (1 << IPSET_FLAG_BIT_WITH_COUNTERS),
|
||||
IPSET_FLAG_BIT_WITH_COMMENT = 4,
|
||||
IPSET_FLAG_WITH_COMMENT = (1 << IPSET_FLAG_BIT_WITH_COMMENT),
|
||||
IPSET_FLAG_CADT_MAX = 15,
|
||||
};
|
||||
|
||||
|
|
@ -250,6 +256,14 @@ struct ip_set_req_get_set {
|
|||
#define IP_SET_OP_GET_BYINDEX 0x00000007 /* Get set name by index */
|
||||
/* Uses ip_set_req_get_set */
|
||||
|
||||
#define IP_SET_OP_GET_FNAME 0x00000008 /* Get set index and family */
|
||||
struct ip_set_req_get_set_family {
|
||||
unsigned int op;
|
||||
unsigned int version;
|
||||
unsigned int family;
|
||||
union ip_set_name_index set;
|
||||
};
|
||||
|
||||
#define IP_SET_OP_VERSION 0x00000100 /* Ask kernel version */
|
||||
struct ip_set_req_version {
|
||||
unsigned int op;
|
||||
|
|
|
|||
|
|
@ -25,6 +25,10 @@ enum ip_conntrack_info {
|
|||
IP_CT_NUMBER = IP_CT_IS_REPLY * 2 - 1
|
||||
};
|
||||
|
||||
#define NF_CT_STATE_INVALID_BIT (1 << 0)
|
||||
#define NF_CT_STATE_BIT(ctinfo) (1 << ((ctinfo) % IP_CT_IS_REPLY + 1))
|
||||
#define NF_CT_STATE_UNTRACKED_BIT (1 << (IP_CT_NUMBER + 1))
|
||||
|
||||
/* Bitset representing status of connection. */
|
||||
enum ip_conntrack_status {
|
||||
/* It's an expected connection: bit 0 set. This bit never changed */
|
||||
|
|
|
|||
718
include/uapi/linux/netfilter/nf_tables.h
Normal file
718
include/uapi/linux/netfilter/nf_tables.h
Normal file
|
|
@ -0,0 +1,718 @@
|
|||
#ifndef _LINUX_NF_TABLES_H
|
||||
#define _LINUX_NF_TABLES_H
|
||||
|
||||
#define NFT_CHAIN_MAXNAMELEN 32
|
||||
|
||||
enum nft_registers {
|
||||
NFT_REG_VERDICT,
|
||||
NFT_REG_1,
|
||||
NFT_REG_2,
|
||||
NFT_REG_3,
|
||||
NFT_REG_4,
|
||||
__NFT_REG_MAX
|
||||
};
|
||||
#define NFT_REG_MAX (__NFT_REG_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_verdicts - nf_tables internal verdicts
|
||||
*
|
||||
* @NFT_CONTINUE: continue evaluation of the current rule
|
||||
* @NFT_BREAK: terminate evaluation of the current rule
|
||||
* @NFT_JUMP: push the current chain on the jump stack and jump to a chain
|
||||
* @NFT_GOTO: jump to a chain without pushing the current chain on the jump stack
|
||||
* @NFT_RETURN: return to the topmost chain on the jump stack
|
||||
*
|
||||
* The nf_tables verdicts share their numeric space with the netfilter verdicts.
|
||||
*/
|
||||
enum nft_verdicts {
|
||||
NFT_CONTINUE = -1,
|
||||
NFT_BREAK = -2,
|
||||
NFT_JUMP = -3,
|
||||
NFT_GOTO = -4,
|
||||
NFT_RETURN = -5,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nf_tables_msg_types - nf_tables netlink message types
|
||||
*
|
||||
* @NFT_MSG_NEWTABLE: create a new table (enum nft_table_attributes)
|
||||
* @NFT_MSG_GETTABLE: get a table (enum nft_table_attributes)
|
||||
* @NFT_MSG_DELTABLE: delete a table (enum nft_table_attributes)
|
||||
* @NFT_MSG_NEWCHAIN: create a new chain (enum nft_chain_attributes)
|
||||
* @NFT_MSG_GETCHAIN: get a chain (enum nft_chain_attributes)
|
||||
* @NFT_MSG_DELCHAIN: delete a chain (enum nft_chain_attributes)
|
||||
* @NFT_MSG_NEWRULE: create a new rule (enum nft_rule_attributes)
|
||||
* @NFT_MSG_GETRULE: get a rule (enum nft_rule_attributes)
|
||||
* @NFT_MSG_DELRULE: delete a rule (enum nft_rule_attributes)
|
||||
* @NFT_MSG_NEWSET: create a new set (enum nft_set_attributes)
|
||||
* @NFT_MSG_GETSET: get a set (enum nft_set_attributes)
|
||||
* @NFT_MSG_DELSET: delete a set (enum nft_set_attributes)
|
||||
* @NFT_MSG_NEWSETELEM: create a new set element (enum nft_set_elem_attributes)
|
||||
* @NFT_MSG_GETSETELEM: get a set element (enum nft_set_elem_attributes)
|
||||
* @NFT_MSG_DELSETELEM: delete a set element (enum nft_set_elem_attributes)
|
||||
*/
|
||||
enum nf_tables_msg_types {
|
||||
NFT_MSG_NEWTABLE,
|
||||
NFT_MSG_GETTABLE,
|
||||
NFT_MSG_DELTABLE,
|
||||
NFT_MSG_NEWCHAIN,
|
||||
NFT_MSG_GETCHAIN,
|
||||
NFT_MSG_DELCHAIN,
|
||||
NFT_MSG_NEWRULE,
|
||||
NFT_MSG_GETRULE,
|
||||
NFT_MSG_DELRULE,
|
||||
NFT_MSG_NEWSET,
|
||||
NFT_MSG_GETSET,
|
||||
NFT_MSG_DELSET,
|
||||
NFT_MSG_NEWSETELEM,
|
||||
NFT_MSG_GETSETELEM,
|
||||
NFT_MSG_DELSETELEM,
|
||||
NFT_MSG_MAX,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nft_list_attributes - nf_tables generic list netlink attributes
|
||||
*
|
||||
* @NFTA_LIST_ELEM: list element (NLA_NESTED)
|
||||
*/
|
||||
enum nft_list_attributes {
|
||||
NFTA_LIST_UNPEC,
|
||||
NFTA_LIST_ELEM,
|
||||
__NFTA_LIST_MAX
|
||||
};
|
||||
#define NFTA_LIST_MAX (__NFTA_LIST_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_hook_attributes - nf_tables netfilter hook netlink attributes
|
||||
*
|
||||
* @NFTA_HOOK_HOOKNUM: netfilter hook number (NLA_U32)
|
||||
* @NFTA_HOOK_PRIORITY: netfilter hook priority (NLA_U32)
|
||||
*/
|
||||
enum nft_hook_attributes {
|
||||
NFTA_HOOK_UNSPEC,
|
||||
NFTA_HOOK_HOOKNUM,
|
||||
NFTA_HOOK_PRIORITY,
|
||||
__NFTA_HOOK_MAX
|
||||
};
|
||||
#define NFTA_HOOK_MAX (__NFTA_HOOK_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_table_flags - nf_tables table flags
|
||||
*
|
||||
* @NFT_TABLE_F_DORMANT: this table is not active
|
||||
*/
|
||||
enum nft_table_flags {
|
||||
NFT_TABLE_F_DORMANT = 0x1,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nft_table_attributes - nf_tables table netlink attributes
|
||||
*
|
||||
* @NFTA_TABLE_NAME: name of the table (NLA_STRING)
|
||||
* @NFTA_TABLE_FLAGS: bitmask of enum nft_table_flags (NLA_U32)
|
||||
*/
|
||||
enum nft_table_attributes {
|
||||
NFTA_TABLE_UNSPEC,
|
||||
NFTA_TABLE_NAME,
|
||||
NFTA_TABLE_FLAGS,
|
||||
__NFTA_TABLE_MAX
|
||||
};
|
||||
#define NFTA_TABLE_MAX (__NFTA_TABLE_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_chain_attributes - nf_tables chain netlink attributes
|
||||
*
|
||||
* @NFTA_CHAIN_TABLE: name of the table containing the chain (NLA_STRING)
|
||||
* @NFTA_CHAIN_HANDLE: numeric handle of the chain (NLA_U64)
|
||||
* @NFTA_CHAIN_NAME: name of the chain (NLA_STRING)
|
||||
* @NFTA_CHAIN_HOOK: hook specification for basechains (NLA_NESTED: nft_hook_attributes)
|
||||
* @NFTA_CHAIN_POLICY: numeric policy of the chain (NLA_U32)
|
||||
* @NFTA_CHAIN_USE: number of references to this chain (NLA_U32)
|
||||
* @NFTA_CHAIN_TYPE: type name of the string (NLA_NUL_STRING)
|
||||
* @NFTA_CHAIN_COUNTERS: counter specification of the chain (NLA_NESTED: nft_counter_attributes)
|
||||
*/
|
||||
enum nft_chain_attributes {
|
||||
NFTA_CHAIN_UNSPEC,
|
||||
NFTA_CHAIN_TABLE,
|
||||
NFTA_CHAIN_HANDLE,
|
||||
NFTA_CHAIN_NAME,
|
||||
NFTA_CHAIN_HOOK,
|
||||
NFTA_CHAIN_POLICY,
|
||||
NFTA_CHAIN_USE,
|
||||
NFTA_CHAIN_TYPE,
|
||||
NFTA_CHAIN_COUNTERS,
|
||||
__NFTA_CHAIN_MAX
|
||||
};
|
||||
#define NFTA_CHAIN_MAX (__NFTA_CHAIN_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_rule_attributes - nf_tables rule netlink attributes
|
||||
*
|
||||
* @NFTA_RULE_TABLE: name of the table containing the rule (NLA_STRING)
|
||||
* @NFTA_RULE_CHAIN: name of the chain containing the rule (NLA_STRING)
|
||||
* @NFTA_RULE_HANDLE: numeric handle of the rule (NLA_U64)
|
||||
* @NFTA_RULE_EXPRESSIONS: list of expressions (NLA_NESTED: nft_expr_attributes)
|
||||
* @NFTA_RULE_COMPAT: compatibility specifications of the rule (NLA_NESTED: nft_rule_compat_attributes)
|
||||
* @NFTA_RULE_POSITION: numeric handle of the previous rule (NLA_U64)
|
||||
*/
|
||||
enum nft_rule_attributes {
|
||||
NFTA_RULE_UNSPEC,
|
||||
NFTA_RULE_TABLE,
|
||||
NFTA_RULE_CHAIN,
|
||||
NFTA_RULE_HANDLE,
|
||||
NFTA_RULE_EXPRESSIONS,
|
||||
NFTA_RULE_COMPAT,
|
||||
NFTA_RULE_POSITION,
|
||||
__NFTA_RULE_MAX
|
||||
};
|
||||
#define NFTA_RULE_MAX (__NFTA_RULE_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_rule_compat_flags - nf_tables rule compat flags
|
||||
*
|
||||
* @NFT_RULE_COMPAT_F_INV: invert the check result
|
||||
*/
|
||||
enum nft_rule_compat_flags {
|
||||
NFT_RULE_COMPAT_F_INV = (1 << 1),
|
||||
NFT_RULE_COMPAT_F_MASK = NFT_RULE_COMPAT_F_INV,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nft_rule_compat_attributes - nf_tables rule compat attributes
|
||||
*
|
||||
* @NFTA_RULE_COMPAT_PROTO: numerice value of handled protocol (NLA_U32)
|
||||
* @NFTA_RULE_COMPAT_FLAGS: bitmask of enum nft_rule_compat_flags (NLA_U32)
|
||||
*/
|
||||
enum nft_rule_compat_attributes {
|
||||
NFTA_RULE_COMPAT_UNSPEC,
|
||||
NFTA_RULE_COMPAT_PROTO,
|
||||
NFTA_RULE_COMPAT_FLAGS,
|
||||
__NFTA_RULE_COMPAT_MAX
|
||||
};
|
||||
#define NFTA_RULE_COMPAT_MAX (__NFTA_RULE_COMPAT_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_set_flags - nf_tables set flags
|
||||
*
|
||||
* @NFT_SET_ANONYMOUS: name allocation, automatic cleanup on unlink
|
||||
* @NFT_SET_CONSTANT: set contents may not change while bound
|
||||
* @NFT_SET_INTERVAL: set contains intervals
|
||||
* @NFT_SET_MAP: set is used as a dictionary
|
||||
*/
|
||||
enum nft_set_flags {
|
||||
NFT_SET_ANONYMOUS = 0x1,
|
||||
NFT_SET_CONSTANT = 0x2,
|
||||
NFT_SET_INTERVAL = 0x4,
|
||||
NFT_SET_MAP = 0x8,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nft_set_attributes - nf_tables set netlink attributes
|
||||
*
|
||||
* @NFTA_SET_TABLE: table name (NLA_STRING)
|
||||
* @NFTA_SET_NAME: set name (NLA_STRING)
|
||||
* @NFTA_SET_FLAGS: bitmask of enum nft_set_flags (NLA_U32)
|
||||
* @NFTA_SET_KEY_TYPE: key data type, informational purpose only (NLA_U32)
|
||||
* @NFTA_SET_KEY_LEN: key data length (NLA_U32)
|
||||
* @NFTA_SET_DATA_TYPE: mapping data type (NLA_U32)
|
||||
* @NFTA_SET_DATA_LEN: mapping data length (NLA_U32)
|
||||
*/
|
||||
enum nft_set_attributes {
|
||||
NFTA_SET_UNSPEC,
|
||||
NFTA_SET_TABLE,
|
||||
NFTA_SET_NAME,
|
||||
NFTA_SET_FLAGS,
|
||||
NFTA_SET_KEY_TYPE,
|
||||
NFTA_SET_KEY_LEN,
|
||||
NFTA_SET_DATA_TYPE,
|
||||
NFTA_SET_DATA_LEN,
|
||||
__NFTA_SET_MAX
|
||||
};
|
||||
#define NFTA_SET_MAX (__NFTA_SET_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_set_elem_flags - nf_tables set element flags
|
||||
*
|
||||
* @NFT_SET_ELEM_INTERVAL_END: element ends the previous interval
|
||||
*/
|
||||
enum nft_set_elem_flags {
|
||||
NFT_SET_ELEM_INTERVAL_END = 0x1,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nft_set_elem_attributes - nf_tables set element netlink attributes
|
||||
*
|
||||
* @NFTA_SET_ELEM_KEY: key value (NLA_NESTED: nft_data)
|
||||
* @NFTA_SET_ELEM_DATA: data value of mapping (NLA_NESTED: nft_data_attributes)
|
||||
* @NFTA_SET_ELEM_FLAGS: bitmask of nft_set_elem_flags (NLA_U32)
|
||||
*/
|
||||
enum nft_set_elem_attributes {
|
||||
NFTA_SET_ELEM_UNSPEC,
|
||||
NFTA_SET_ELEM_KEY,
|
||||
NFTA_SET_ELEM_DATA,
|
||||
NFTA_SET_ELEM_FLAGS,
|
||||
__NFTA_SET_ELEM_MAX
|
||||
};
|
||||
#define NFTA_SET_ELEM_MAX (__NFTA_SET_ELEM_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_set_elem_list_attributes - nf_tables set element list netlink attributes
|
||||
*
|
||||
* @NFTA_SET_ELEM_LIST_TABLE: table of the set to be changed (NLA_STRING)
|
||||
* @NFTA_SET_ELEM_LIST_SET: name of the set to be changed (NLA_STRING)
|
||||
* @NFTA_SET_ELEM_LIST_ELEMENTS: list of set elements (NLA_NESTED: nft_set_elem_attributes)
|
||||
*/
|
||||
enum nft_set_elem_list_attributes {
|
||||
NFTA_SET_ELEM_LIST_UNSPEC,
|
||||
NFTA_SET_ELEM_LIST_TABLE,
|
||||
NFTA_SET_ELEM_LIST_SET,
|
||||
NFTA_SET_ELEM_LIST_ELEMENTS,
|
||||
__NFTA_SET_ELEM_LIST_MAX
|
||||
};
|
||||
#define NFTA_SET_ELEM_LIST_MAX (__NFTA_SET_ELEM_LIST_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_data_types - nf_tables data types
|
||||
*
|
||||
* @NFT_DATA_VALUE: generic data
|
||||
* @NFT_DATA_VERDICT: netfilter verdict
|
||||
*
|
||||
* The type of data is usually determined by the kernel directly and is not
|
||||
* explicitly specified by userspace. The only difference are sets, where
|
||||
* userspace specifies the key and mapping data types.
|
||||
*
|
||||
* The values 0xffffff00-0xffffffff are reserved for internally used types.
|
||||
* The remaining range can be freely used by userspace to encode types, all
|
||||
* values are equivalent to NFT_DATA_VALUE.
|
||||
*/
|
||||
enum nft_data_types {
|
||||
NFT_DATA_VALUE,
|
||||
NFT_DATA_VERDICT = 0xffffff00U,
|
||||
};
|
||||
|
||||
#define NFT_DATA_RESERVED_MASK 0xffffff00U
|
||||
|
||||
/**
|
||||
* enum nft_data_attributes - nf_tables data netlink attributes
|
||||
*
|
||||
* @NFTA_DATA_VALUE: generic data (NLA_BINARY)
|
||||
* @NFTA_DATA_VERDICT: nf_tables verdict (NLA_NESTED: nft_verdict_attributes)
|
||||
*/
|
||||
enum nft_data_attributes {
|
||||
NFTA_DATA_UNSPEC,
|
||||
NFTA_DATA_VALUE,
|
||||
NFTA_DATA_VERDICT,
|
||||
__NFTA_DATA_MAX
|
||||
};
|
||||
#define NFTA_DATA_MAX (__NFTA_DATA_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_verdict_attributes - nf_tables verdict netlink attributes
|
||||
*
|
||||
* @NFTA_VERDICT_CODE: nf_tables verdict (NLA_U32: enum nft_verdicts)
|
||||
* @NFTA_VERDICT_CHAIN: jump target chain name (NLA_STRING)
|
||||
*/
|
||||
enum nft_verdict_attributes {
|
||||
NFTA_VERDICT_UNSPEC,
|
||||
NFTA_VERDICT_CODE,
|
||||
NFTA_VERDICT_CHAIN,
|
||||
__NFTA_VERDICT_MAX
|
||||
};
|
||||
#define NFTA_VERDICT_MAX (__NFTA_VERDICT_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_expr_attributes - nf_tables expression netlink attributes
|
||||
*
|
||||
* @NFTA_EXPR_NAME: name of the expression type (NLA_STRING)
|
||||
* @NFTA_EXPR_DATA: type specific data (NLA_NESTED)
|
||||
*/
|
||||
enum nft_expr_attributes {
|
||||
NFTA_EXPR_UNSPEC,
|
||||
NFTA_EXPR_NAME,
|
||||
NFTA_EXPR_DATA,
|
||||
__NFTA_EXPR_MAX
|
||||
};
|
||||
#define NFTA_EXPR_MAX (__NFTA_EXPR_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_immediate_attributes - nf_tables immediate expression netlink attributes
|
||||
*
|
||||
* @NFTA_IMMEDIATE_DREG: destination register to load data into (NLA_U32)
|
||||
* @NFTA_IMMEDIATE_DATA: data to load (NLA_NESTED: nft_data_attributes)
|
||||
*/
|
||||
enum nft_immediate_attributes {
|
||||
NFTA_IMMEDIATE_UNSPEC,
|
||||
NFTA_IMMEDIATE_DREG,
|
||||
NFTA_IMMEDIATE_DATA,
|
||||
__NFTA_IMMEDIATE_MAX
|
||||
};
|
||||
#define NFTA_IMMEDIATE_MAX (__NFTA_IMMEDIATE_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_bitwise_attributes - nf_tables bitwise expression netlink attributes
|
||||
*
|
||||
* @NFTA_BITWISE_SREG: source register (NLA_U32: nft_registers)
|
||||
* @NFTA_BITWISE_DREG: destination register (NLA_U32: nft_registers)
|
||||
* @NFTA_BITWISE_LEN: length of operands (NLA_U32)
|
||||
* @NFTA_BITWISE_MASK: mask value (NLA_NESTED: nft_data_attributes)
|
||||
* @NFTA_BITWISE_XOR: xor value (NLA_NESTED: nft_data_attributes)
|
||||
*
|
||||
* The bitwise expression performs the following operation:
|
||||
*
|
||||
* dreg = (sreg & mask) ^ xor
|
||||
*
|
||||
* which allow to express all bitwise operations:
|
||||
*
|
||||
* mask xor
|
||||
* NOT: 1 1
|
||||
* OR: 0 x
|
||||
* XOR: 1 x
|
||||
* AND: x 0
|
||||
*/
|
||||
enum nft_bitwise_attributes {
|
||||
NFTA_BITWISE_UNSPEC,
|
||||
NFTA_BITWISE_SREG,
|
||||
NFTA_BITWISE_DREG,
|
||||
NFTA_BITWISE_LEN,
|
||||
NFTA_BITWISE_MASK,
|
||||
NFTA_BITWISE_XOR,
|
||||
__NFTA_BITWISE_MAX
|
||||
};
|
||||
#define NFTA_BITWISE_MAX (__NFTA_BITWISE_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_byteorder_ops - nf_tables byteorder operators
|
||||
*
|
||||
* @NFT_BYTEORDER_NTOH: network to host operator
|
||||
* @NFT_BYTEORDER_HTON: host to network opertaor
|
||||
*/
|
||||
enum nft_byteorder_ops {
|
||||
NFT_BYTEORDER_NTOH,
|
||||
NFT_BYTEORDER_HTON,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nft_byteorder_attributes - nf_tables byteorder expression netlink attributes
|
||||
*
|
||||
* @NFTA_BYTEORDER_SREG: source register (NLA_U32: nft_registers)
|
||||
* @NFTA_BYTEORDER_DREG: destination register (NLA_U32: nft_registers)
|
||||
* @NFTA_BYTEORDER_OP: operator (NLA_U32: enum nft_byteorder_ops)
|
||||
* @NFTA_BYTEORDER_LEN: length of the data (NLA_U32)
|
||||
* @NFTA_BYTEORDER_SIZE: data size in bytes (NLA_U32: 2 or 4)
|
||||
*/
|
||||
enum nft_byteorder_attributes {
|
||||
NFTA_BYTEORDER_UNSPEC,
|
||||
NFTA_BYTEORDER_SREG,
|
||||
NFTA_BYTEORDER_DREG,
|
||||
NFTA_BYTEORDER_OP,
|
||||
NFTA_BYTEORDER_LEN,
|
||||
NFTA_BYTEORDER_SIZE,
|
||||
__NFTA_BYTEORDER_MAX
|
||||
};
|
||||
#define NFTA_BYTEORDER_MAX (__NFTA_BYTEORDER_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_cmp_ops - nf_tables relational operator
|
||||
*
|
||||
* @NFT_CMP_EQ: equal
|
||||
* @NFT_CMP_NEQ: not equal
|
||||
* @NFT_CMP_LT: less than
|
||||
* @NFT_CMP_LTE: less than or equal to
|
||||
* @NFT_CMP_GT: greater than
|
||||
* @NFT_CMP_GTE: greater than or equal to
|
||||
*/
|
||||
enum nft_cmp_ops {
|
||||
NFT_CMP_EQ,
|
||||
NFT_CMP_NEQ,
|
||||
NFT_CMP_LT,
|
||||
NFT_CMP_LTE,
|
||||
NFT_CMP_GT,
|
||||
NFT_CMP_GTE,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nft_cmp_attributes - nf_tables cmp expression netlink attributes
|
||||
*
|
||||
* @NFTA_CMP_SREG: source register of data to compare (NLA_U32: nft_registers)
|
||||
* @NFTA_CMP_OP: cmp operation (NLA_U32: nft_cmp_ops)
|
||||
* @NFTA_CMP_DATA: data to compare against (NLA_NESTED: nft_data_attributes)
|
||||
*/
|
||||
enum nft_cmp_attributes {
|
||||
NFTA_CMP_UNSPEC,
|
||||
NFTA_CMP_SREG,
|
||||
NFTA_CMP_OP,
|
||||
NFTA_CMP_DATA,
|
||||
__NFTA_CMP_MAX
|
||||
};
|
||||
#define NFTA_CMP_MAX (__NFTA_CMP_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_lookup_attributes - nf_tables set lookup expression netlink attributes
|
||||
*
|
||||
* @NFTA_LOOKUP_SET: name of the set where to look for (NLA_STRING)
|
||||
* @NFTA_LOOKUP_SREG: source register of the data to look for (NLA_U32: nft_registers)
|
||||
* @NFTA_LOOKUP_DREG: destination register (NLA_U32: nft_registers)
|
||||
*/
|
||||
enum nft_lookup_attributes {
|
||||
NFTA_LOOKUP_UNSPEC,
|
||||
NFTA_LOOKUP_SET,
|
||||
NFTA_LOOKUP_SREG,
|
||||
NFTA_LOOKUP_DREG,
|
||||
__NFTA_LOOKUP_MAX
|
||||
};
|
||||
#define NFTA_LOOKUP_MAX (__NFTA_LOOKUP_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_payload_bases - nf_tables payload expression offset bases
|
||||
*
|
||||
* @NFT_PAYLOAD_LL_HEADER: link layer header
|
||||
* @NFT_PAYLOAD_NETWORK_HEADER: network header
|
||||
* @NFT_PAYLOAD_TRANSPORT_HEADER: transport header
|
||||
*/
|
||||
enum nft_payload_bases {
|
||||
NFT_PAYLOAD_LL_HEADER,
|
||||
NFT_PAYLOAD_NETWORK_HEADER,
|
||||
NFT_PAYLOAD_TRANSPORT_HEADER,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nft_payload_attributes - nf_tables payload expression netlink attributes
|
||||
*
|
||||
* @NFTA_PAYLOAD_DREG: destination register to load data into (NLA_U32: nft_registers)
|
||||
* @NFTA_PAYLOAD_BASE: payload base (NLA_U32: nft_payload_bases)
|
||||
* @NFTA_PAYLOAD_OFFSET: payload offset relative to base (NLA_U32)
|
||||
* @NFTA_PAYLOAD_LEN: payload length (NLA_U32)
|
||||
*/
|
||||
enum nft_payload_attributes {
|
||||
NFTA_PAYLOAD_UNSPEC,
|
||||
NFTA_PAYLOAD_DREG,
|
||||
NFTA_PAYLOAD_BASE,
|
||||
NFTA_PAYLOAD_OFFSET,
|
||||
NFTA_PAYLOAD_LEN,
|
||||
__NFTA_PAYLOAD_MAX
|
||||
};
|
||||
#define NFTA_PAYLOAD_MAX (__NFTA_PAYLOAD_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_exthdr_attributes - nf_tables IPv6 extension header expression netlink attributes
|
||||
*
|
||||
* @NFTA_EXTHDR_DREG: destination register (NLA_U32: nft_registers)
|
||||
* @NFTA_EXTHDR_TYPE: extension header type (NLA_U8)
|
||||
* @NFTA_EXTHDR_OFFSET: extension header offset (NLA_U32)
|
||||
* @NFTA_EXTHDR_LEN: extension header length (NLA_U32)
|
||||
*/
|
||||
enum nft_exthdr_attributes {
|
||||
NFTA_EXTHDR_UNSPEC,
|
||||
NFTA_EXTHDR_DREG,
|
||||
NFTA_EXTHDR_TYPE,
|
||||
NFTA_EXTHDR_OFFSET,
|
||||
NFTA_EXTHDR_LEN,
|
||||
__NFTA_EXTHDR_MAX
|
||||
};
|
||||
#define NFTA_EXTHDR_MAX (__NFTA_EXTHDR_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_meta_keys - nf_tables meta expression keys
|
||||
*
|
||||
* @NFT_META_LEN: packet length (skb->len)
|
||||
* @NFT_META_PROTOCOL: packet ethertype protocol (skb->protocol), invalid in OUTPUT
|
||||
* @NFT_META_PRIORITY: packet priority (skb->priority)
|
||||
* @NFT_META_MARK: packet mark (skb->mark)
|
||||
* @NFT_META_IIF: packet input interface index (dev->ifindex)
|
||||
* @NFT_META_OIF: packet output interface index (dev->ifindex)
|
||||
* @NFT_META_IIFNAME: packet input interface name (dev->name)
|
||||
* @NFT_META_OIFNAME: packet output interface name (dev->name)
|
||||
* @NFT_META_IIFTYPE: packet input interface type (dev->type)
|
||||
* @NFT_META_OIFTYPE: packet output interface type (dev->type)
|
||||
* @NFT_META_SKUID: originating socket UID (fsuid)
|
||||
* @NFT_META_SKGID: originating socket GID (fsgid)
|
||||
* @NFT_META_NFTRACE: packet nftrace bit
|
||||
* @NFT_META_RTCLASSID: realm value of packet's route (skb->dst->tclassid)
|
||||
* @NFT_META_SECMARK: packet secmark (skb->secmark)
|
||||
*/
|
||||
enum nft_meta_keys {
|
||||
NFT_META_LEN,
|
||||
NFT_META_PROTOCOL,
|
||||
NFT_META_PRIORITY,
|
||||
NFT_META_MARK,
|
||||
NFT_META_IIF,
|
||||
NFT_META_OIF,
|
||||
NFT_META_IIFNAME,
|
||||
NFT_META_OIFNAME,
|
||||
NFT_META_IIFTYPE,
|
||||
NFT_META_OIFTYPE,
|
||||
NFT_META_SKUID,
|
||||
NFT_META_SKGID,
|
||||
NFT_META_NFTRACE,
|
||||
NFT_META_RTCLASSID,
|
||||
NFT_META_SECMARK,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nft_meta_attributes - nf_tables meta expression netlink attributes
|
||||
*
|
||||
* @NFTA_META_DREG: destination register (NLA_U32)
|
||||
* @NFTA_META_KEY: meta data item to load (NLA_U32: nft_meta_keys)
|
||||
*/
|
||||
enum nft_meta_attributes {
|
||||
NFTA_META_UNSPEC,
|
||||
NFTA_META_DREG,
|
||||
NFTA_META_KEY,
|
||||
__NFTA_META_MAX
|
||||
};
|
||||
#define NFTA_META_MAX (__NFTA_META_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_ct_keys - nf_tables ct expression keys
|
||||
*
|
||||
* @NFT_CT_STATE: conntrack state (bitmask of enum ip_conntrack_info)
|
||||
* @NFT_CT_DIRECTION: conntrack direction (enum ip_conntrack_dir)
|
||||
* @NFT_CT_STATUS: conntrack status (bitmask of enum ip_conntrack_status)
|
||||
* @NFT_CT_MARK: conntrack mark value
|
||||
* @NFT_CT_SECMARK: conntrack secmark value
|
||||
* @NFT_CT_EXPIRATION: relative conntrack expiration time in ms
|
||||
* @NFT_CT_HELPER: connection tracking helper assigned to conntrack
|
||||
* @NFT_CT_L3PROTOCOL: conntrack layer 3 protocol
|
||||
* @NFT_CT_SRC: conntrack layer 3 protocol source (IPv4/IPv6 address)
|
||||
* @NFT_CT_DST: conntrack layer 3 protocol destination (IPv4/IPv6 address)
|
||||
* @NFT_CT_PROTOCOL: conntrack layer 4 protocol
|
||||
* @NFT_CT_PROTO_SRC: conntrack layer 4 protocol source
|
||||
* @NFT_CT_PROTO_DST: conntrack layer 4 protocol destination
|
||||
*/
|
||||
enum nft_ct_keys {
|
||||
NFT_CT_STATE,
|
||||
NFT_CT_DIRECTION,
|
||||
NFT_CT_STATUS,
|
||||
NFT_CT_MARK,
|
||||
NFT_CT_SECMARK,
|
||||
NFT_CT_EXPIRATION,
|
||||
NFT_CT_HELPER,
|
||||
NFT_CT_L3PROTOCOL,
|
||||
NFT_CT_SRC,
|
||||
NFT_CT_DST,
|
||||
NFT_CT_PROTOCOL,
|
||||
NFT_CT_PROTO_SRC,
|
||||
NFT_CT_PROTO_DST,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nft_ct_attributes - nf_tables ct expression netlink attributes
|
||||
*
|
||||
* @NFTA_CT_DREG: destination register (NLA_U32)
|
||||
* @NFTA_CT_KEY: conntrack data item to load (NLA_U32: nft_ct_keys)
|
||||
* @NFTA_CT_DIRECTION: direction in case of directional keys (NLA_U8)
|
||||
*/
|
||||
enum nft_ct_attributes {
|
||||
NFTA_CT_UNSPEC,
|
||||
NFTA_CT_DREG,
|
||||
NFTA_CT_KEY,
|
||||
NFTA_CT_DIRECTION,
|
||||
__NFTA_CT_MAX
|
||||
};
|
||||
#define NFTA_CT_MAX (__NFTA_CT_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_limit_attributes - nf_tables limit expression netlink attributes
|
||||
*
|
||||
* @NFTA_LIMIT_RATE: refill rate (NLA_U64)
|
||||
* @NFTA_LIMIT_UNIT: refill unit (NLA_U64)
|
||||
*/
|
||||
enum nft_limit_attributes {
|
||||
NFTA_LIMIT_UNSPEC,
|
||||
NFTA_LIMIT_RATE,
|
||||
NFTA_LIMIT_UNIT,
|
||||
__NFTA_LIMIT_MAX
|
||||
};
|
||||
#define NFTA_LIMIT_MAX (__NFTA_LIMIT_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_counter_attributes - nf_tables counter expression netlink attributes
|
||||
*
|
||||
* @NFTA_COUNTER_BYTES: number of bytes (NLA_U64)
|
||||
* @NFTA_COUNTER_PACKETS: number of packets (NLA_U64)
|
||||
*/
|
||||
enum nft_counter_attributes {
|
||||
NFTA_COUNTER_UNSPEC,
|
||||
NFTA_COUNTER_BYTES,
|
||||
NFTA_COUNTER_PACKETS,
|
||||
__NFTA_COUNTER_MAX
|
||||
};
|
||||
#define NFTA_COUNTER_MAX (__NFTA_COUNTER_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_log_attributes - nf_tables log expression netlink attributes
|
||||
*
|
||||
* @NFTA_LOG_GROUP: netlink group to send messages to (NLA_U32)
|
||||
* @NFTA_LOG_PREFIX: prefix to prepend to log messages (NLA_STRING)
|
||||
* @NFTA_LOG_SNAPLEN: length of payload to include in netlink message (NLA_U32)
|
||||
* @NFTA_LOG_QTHRESHOLD: queue threshold (NLA_U32)
|
||||
*/
|
||||
enum nft_log_attributes {
|
||||
NFTA_LOG_UNSPEC,
|
||||
NFTA_LOG_GROUP,
|
||||
NFTA_LOG_PREFIX,
|
||||
NFTA_LOG_SNAPLEN,
|
||||
NFTA_LOG_QTHRESHOLD,
|
||||
__NFTA_LOG_MAX
|
||||
};
|
||||
#define NFTA_LOG_MAX (__NFTA_LOG_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_reject_types - nf_tables reject expression reject types
|
||||
*
|
||||
* @NFT_REJECT_ICMP_UNREACH: reject using ICMP unreachable
|
||||
* @NFT_REJECT_TCP_RST: reject using TCP RST
|
||||
*/
|
||||
enum nft_reject_types {
|
||||
NFT_REJECT_ICMP_UNREACH,
|
||||
NFT_REJECT_TCP_RST,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nft_reject_attributes - nf_tables reject expression netlink attributes
|
||||
*
|
||||
* @NFTA_REJECT_TYPE: packet type to use (NLA_U32: nft_reject_types)
|
||||
* @NFTA_REJECT_ICMP_CODE: ICMP code to use (NLA_U8)
|
||||
*/
|
||||
enum nft_reject_attributes {
|
||||
NFTA_REJECT_UNSPEC,
|
||||
NFTA_REJECT_TYPE,
|
||||
NFTA_REJECT_ICMP_CODE,
|
||||
__NFTA_REJECT_MAX
|
||||
};
|
||||
#define NFTA_REJECT_MAX (__NFTA_REJECT_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_nat_types - nf_tables nat expression NAT types
|
||||
*
|
||||
* @NFT_NAT_SNAT: source NAT
|
||||
* @NFT_NAT_DNAT: destination NAT
|
||||
*/
|
||||
enum nft_nat_types {
|
||||
NFT_NAT_SNAT,
|
||||
NFT_NAT_DNAT,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nft_nat_attributes - nf_tables nat expression netlink attributes
|
||||
*
|
||||
* @NFTA_NAT_TYPE: NAT type (NLA_U32: nft_nat_types)
|
||||
* @NFTA_NAT_FAMILY: NAT family (NLA_U32)
|
||||
* @NFTA_NAT_REG_ADDR_MIN: source register of address range start (NLA_U32: nft_registers)
|
||||
* @NFTA_NAT_REG_ADDR_MAX: source register of address range end (NLA_U32: nft_registers)
|
||||
* @NFTA_NAT_REG_PROTO_MIN: source register of proto range start (NLA_U32: nft_registers)
|
||||
* @NFTA_NAT_REG_PROTO_MAX: source register of proto range end (NLA_U32: nft_registers)
|
||||
*/
|
||||
enum nft_nat_attributes {
|
||||
NFTA_NAT_UNSPEC,
|
||||
NFTA_NAT_TYPE,
|
||||
NFTA_NAT_FAMILY,
|
||||
NFTA_NAT_REG_ADDR_MIN,
|
||||
NFTA_NAT_REG_ADDR_MAX,
|
||||
NFTA_NAT_REG_PROTO_MIN,
|
||||
NFTA_NAT_REG_PROTO_MAX,
|
||||
__NFTA_NAT_MAX
|
||||
};
|
||||
#define NFTA_NAT_MAX (__NFTA_NAT_MAX - 1)
|
||||
|
||||
#endif /* _LINUX_NF_TABLES_H */
|
||||
38
include/uapi/linux/netfilter/nf_tables_compat.h
Normal file
38
include/uapi/linux/netfilter/nf_tables_compat.h
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
#ifndef _NFT_COMPAT_NFNETLINK_H_
|
||||
#define _NFT_COMPAT_NFNETLINK_H_
|
||||
|
||||
enum nft_target_attributes {
|
||||
NFTA_TARGET_UNSPEC,
|
||||
NFTA_TARGET_NAME,
|
||||
NFTA_TARGET_REV,
|
||||
NFTA_TARGET_INFO,
|
||||
__NFTA_TARGET_MAX
|
||||
};
|
||||
#define NFTA_TARGET_MAX (__NFTA_TARGET_MAX - 1)
|
||||
|
||||
enum nft_match_attributes {
|
||||
NFTA_MATCH_UNSPEC,
|
||||
NFTA_MATCH_NAME,
|
||||
NFTA_MATCH_REV,
|
||||
NFTA_MATCH_INFO,
|
||||
__NFTA_MATCH_MAX
|
||||
};
|
||||
#define NFTA_MATCH_MAX (__NFTA_MATCH_MAX - 1)
|
||||
|
||||
#define NFT_COMPAT_NAME_MAX 32
|
||||
|
||||
enum {
|
||||
NFNL_MSG_COMPAT_GET,
|
||||
NFNL_MSG_COMPAT_MAX
|
||||
};
|
||||
|
||||
enum {
|
||||
NFTA_COMPAT_UNSPEC = 0,
|
||||
NFTA_COMPAT_NAME,
|
||||
NFTA_COMPAT_REV,
|
||||
NFTA_COMPAT_TYPE,
|
||||
__NFTA_COMPAT_MAX,
|
||||
};
|
||||
#define NFTA_COMPAT_MAX (__NFTA_COMPAT_MAX - 1)
|
||||
|
||||
#endif
|
||||
|
|
@ -18,6 +18,8 @@ enum nfnetlink_groups {
|
|||
#define NFNLGRP_CONNTRACK_EXP_UPDATE NFNLGRP_CONNTRACK_EXP_UPDATE
|
||||
NFNLGRP_CONNTRACK_EXP_DESTROY,
|
||||
#define NFNLGRP_CONNTRACK_EXP_DESTROY NFNLGRP_CONNTRACK_EXP_DESTROY
|
||||
NFNLGRP_NFTABLES,
|
||||
#define NFNLGRP_NFTABLES NFNLGRP_NFTABLES
|
||||
__NFNLGRP_MAX,
|
||||
};
|
||||
#define NFNLGRP_MAX (__NFNLGRP_MAX - 1)
|
||||
|
|
@ -51,6 +53,12 @@ struct nfgenmsg {
|
|||
#define NFNL_SUBSYS_ACCT 7
|
||||
#define NFNL_SUBSYS_CTNETLINK_TIMEOUT 8
|
||||
#define NFNL_SUBSYS_CTHELPER 9
|
||||
#define NFNL_SUBSYS_COUNT 10
|
||||
#define NFNL_SUBSYS_NFTABLES 10
|
||||
#define NFNL_SUBSYS_NFT_COMPAT 11
|
||||
#define NFNL_SUBSYS_COUNT 12
|
||||
|
||||
/* Reserved control nfnetlink messages */
|
||||
#define NFNL_MSG_BATCH_BEGIN NLMSG_MIN_TYPE
|
||||
#define NFNL_MSG_BATCH_END NLMSG_MIN_TYPE+1
|
||||
|
||||
#endif /* _UAPI_NFNETLINK_H */
|
||||
|
|
|
|||
|
|
@ -6,6 +6,8 @@ enum ctnl_timeout_msg_types {
|
|||
IPCTNL_MSG_TIMEOUT_NEW,
|
||||
IPCTNL_MSG_TIMEOUT_GET,
|
||||
IPCTNL_MSG_TIMEOUT_DELETE,
|
||||
IPCTNL_MSG_TIMEOUT_DEFAULT_SET,
|
||||
IPCTNL_MSG_TIMEOUT_DEFAULT_GET,
|
||||
|
||||
IPCTNL_MSG_TIMEOUT_MAX
|
||||
};
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ struct netlink_diag_ring {
|
|||
};
|
||||
|
||||
enum {
|
||||
/* NETLINK_DIAG_NONE, standard nl API requires this attribute! */
|
||||
NETLINK_DIAG_MEMINFO,
|
||||
NETLINK_DIAG_GROUPS,
|
||||
NETLINK_DIAG_RX_RING,
|
||||
|
|
|
|||
|
|
@ -85,6 +85,7 @@
|
|||
* a specific SE notifies us about the end of a transaction. The parameter
|
||||
* for this event is the application ID (AID).
|
||||
* @NFC_CMD_GET_SE: Dump all discovered secure elements from an NFC controller.
|
||||
* @NFC_CMD_SE_IO: Send/Receive APDUs to/from the selected secure element.
|
||||
*/
|
||||
enum nfc_commands {
|
||||
NFC_CMD_UNSPEC,
|
||||
|
|
@ -114,6 +115,7 @@ enum nfc_commands {
|
|||
NFC_EVENT_SE_CONNECTIVITY,
|
||||
NFC_EVENT_SE_TRANSACTION,
|
||||
NFC_CMD_GET_SE,
|
||||
NFC_CMD_SE_IO,
|
||||
/* private: internal use only */
|
||||
__NFC_CMD_AFTER_LAST
|
||||
};
|
||||
|
|
@ -147,6 +149,7 @@ enum nfc_commands {
|
|||
* @NFC_ATTR_SE_INDEX: Secure element index
|
||||
* @NFC_ATTR_SE_TYPE: Secure element type (UICC or EMBEDDED)
|
||||
* @NFC_ATTR_FIRMWARE_DOWNLOAD_STATUS: Firmware download operation status
|
||||
* @NFC_ATTR_APDU: Secure element APDU
|
||||
*/
|
||||
enum nfc_attrs {
|
||||
NFC_ATTR_UNSPEC,
|
||||
|
|
@ -174,6 +177,7 @@ enum nfc_attrs {
|
|||
NFC_ATTR_SE_TYPE,
|
||||
NFC_ATTR_SE_AID,
|
||||
NFC_ATTR_FIRMWARE_DOWNLOAD_STATUS,
|
||||
NFC_ATTR_SE_APDU,
|
||||
/* private: internal use only */
|
||||
__NFC_ATTR_AFTER_LAST
|
||||
};
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ struct nfs_mount_data {
|
|||
#define NFS_MOUNT_BROKEN_SUID 0x0400 /* 4 */
|
||||
#define NFS_MOUNT_NOACL 0x0800 /* 4 */
|
||||
#define NFS_MOUNT_STRICTLOCK 0x1000 /* reserved for NFSv4 */
|
||||
#define NFS_MOUNT_SECFLAVOUR 0x2000 /* 5 */
|
||||
#define NFS_MOUNT_SECFLAVOUR 0x2000 /* 5 non-text parsed mount data only */
|
||||
#define NFS_MOUNT_NORDIRPLUS 0x4000 /* 5 */
|
||||
#define NFS_MOUNT_UNSHARED 0x8000 /* 5 */
|
||||
#define NFS_MOUNT_FLAGMASK 0xFFFF
|
||||
|
|
|
|||
|
|
@ -988,7 +988,7 @@ enum nl80211_commands {
|
|||
* to query the CRDA to retrieve one regulatory domain. This attribute can
|
||||
* also be used by userspace to query the kernel for the currently set
|
||||
* regulatory domain. We chose an alpha2 as that is also used by the
|
||||
* IEEE-802.11d country information element to identify a country.
|
||||
* IEEE-802.11 country information element to identify a country.
|
||||
* Users can also simply ask the wireless core to set regulatory domain
|
||||
* to a specific alpha2.
|
||||
* @NL80211_ATTR_REG_RULES: a nested array of regulatory domain regulatory
|
||||
|
|
@ -1496,6 +1496,18 @@ enum nl80211_commands {
|
|||
* @NL80211_ATTR_RXMGMT_FLAGS: flags for nl80211_send_mgmt(), u32.
|
||||
* As specified in the &enum nl80211_rxmgmt_flags.
|
||||
*
|
||||
* @NL80211_ATTR_STA_SUPPORTED_CHANNELS: array of supported channels.
|
||||
*
|
||||
* @NL80211_ATTR_STA_SUPPORTED_OPER_CLASSES: array of supported
|
||||
* supported operating classes.
|
||||
*
|
||||
* @NL80211_ATTR_HANDLE_DFS: A flag indicating whether user space
|
||||
* controls DFS operation in IBSS mode. If the flag is included in
|
||||
* %NL80211_CMD_JOIN_IBSS request, the driver will allow use of DFS
|
||||
* channels and reports radar events to userspace. Userspace is required
|
||||
* to react to radar events, e.g. initiate a channel switch or leave the
|
||||
* IBSS network.
|
||||
*
|
||||
* @NL80211_ATTR_MAX: highest attribute number currently defined
|
||||
* @__NL80211_ATTR_AFTER_LAST: internal use
|
||||
*/
|
||||
|
|
@ -1806,6 +1818,12 @@ enum nl80211_attrs {
|
|||
|
||||
NL80211_ATTR_RXMGMT_FLAGS,
|
||||
|
||||
NL80211_ATTR_STA_SUPPORTED_CHANNELS,
|
||||
|
||||
NL80211_ATTR_STA_SUPPORTED_OPER_CLASSES,
|
||||
|
||||
NL80211_ATTR_HANDLE_DFS,
|
||||
|
||||
/* add attributes here, update the policy in nl80211.c */
|
||||
|
||||
__NL80211_ATTR_AFTER_LAST,
|
||||
|
|
@ -3860,13 +3878,12 @@ enum nl80211_radar_event {
|
|||
*
|
||||
* Channel states used by the DFS code.
|
||||
*
|
||||
* @IEEE80211_DFS_USABLE: The channel can be used, but channel availability
|
||||
* @NL80211_DFS_USABLE: The channel can be used, but channel availability
|
||||
* check (CAC) must be performed before using it for AP or IBSS.
|
||||
* @IEEE80211_DFS_UNAVAILABLE: A radar has been detected on this channel, it
|
||||
* @NL80211_DFS_UNAVAILABLE: A radar has been detected on this channel, it
|
||||
* is therefore marked as not available.
|
||||
* @IEEE80211_DFS_AVAILABLE: The channel has been CAC checked and is available.
|
||||
* @NL80211_DFS_AVAILABLE: The channel has been CAC checked and is available.
|
||||
*/
|
||||
|
||||
enum nl80211_dfs_state {
|
||||
NL80211_DFS_USABLE,
|
||||
NL80211_DFS_UNAVAILABLE,
|
||||
|
|
|
|||
|
|
@ -63,15 +63,18 @@ enum ovs_datapath_cmd {
|
|||
* not be sent.
|
||||
* @OVS_DP_ATTR_STATS: Statistics about packets that have passed through the
|
||||
* datapath. Always present in notifications.
|
||||
* @OVS_DP_ATTR_MEGAFLOW_STATS: Statistics about mega flow masks usage for the
|
||||
* datapath. Always present in notifications.
|
||||
*
|
||||
* These attributes follow the &struct ovs_header within the Generic Netlink
|
||||
* payload for %OVS_DP_* commands.
|
||||
*/
|
||||
enum ovs_datapath_attr {
|
||||
OVS_DP_ATTR_UNSPEC,
|
||||
OVS_DP_ATTR_NAME, /* name of dp_ifindex netdev */
|
||||
OVS_DP_ATTR_UPCALL_PID, /* Netlink PID to receive upcalls */
|
||||
OVS_DP_ATTR_STATS, /* struct ovs_dp_stats */
|
||||
OVS_DP_ATTR_NAME, /* name of dp_ifindex netdev */
|
||||
OVS_DP_ATTR_UPCALL_PID, /* Netlink PID to receive upcalls */
|
||||
OVS_DP_ATTR_STATS, /* struct ovs_dp_stats */
|
||||
OVS_DP_ATTR_MEGAFLOW_STATS, /* struct ovs_dp_megaflow_stats */
|
||||
__OVS_DP_ATTR_MAX
|
||||
};
|
||||
|
||||
|
|
@ -84,6 +87,14 @@ struct ovs_dp_stats {
|
|||
__u64 n_flows; /* Number of flows present */
|
||||
};
|
||||
|
||||
struct ovs_dp_megaflow_stats {
|
||||
__u64 n_mask_hit; /* Number of masks used for flow lookups. */
|
||||
__u32 n_masks; /* Number of masks for the datapath. */
|
||||
__u32 pad0; /* Pad for future expension. */
|
||||
__u64 pad1; /* Pad for future expension. */
|
||||
__u64 pad2; /* Pad for future expension. */
|
||||
};
|
||||
|
||||
struct ovs_vport_stats {
|
||||
__u64 rx_packets; /* total packets received */
|
||||
__u64 tx_packets; /* total packets transmitted */
|
||||
|
|
@ -260,6 +271,7 @@ enum ovs_key_attr {
|
|||
OVS_KEY_ATTR_SKB_MARK, /* u32 skb mark */
|
||||
OVS_KEY_ATTR_TUNNEL, /* Nested set of ovs_tunnel attributes */
|
||||
OVS_KEY_ATTR_SCTP, /* struct ovs_key_sctp */
|
||||
OVS_KEY_ATTR_TCP_FLAGS, /* be16 TCP flags. */
|
||||
|
||||
#ifdef __KERNEL__
|
||||
OVS_KEY_ATTR_IPV4_TUNNEL, /* struct ovs_key_ipv4_tunnel */
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ struct packet_diag_msg {
|
|||
};
|
||||
|
||||
enum {
|
||||
/* PACKET_DIAG_NONE, standard nl API requires this attribute! */
|
||||
PACKET_DIAG_INFO,
|
||||
PACKET_DIAG_MCLIST,
|
||||
PACKET_DIAG_RX_RING,
|
||||
|
|
|
|||
|
|
@ -13,10 +13,10 @@
|
|||
* PCI to PCI Bridge Specification
|
||||
* PCI System Design Guide
|
||||
*
|
||||
* For hypertransport information, please consult the following manuals
|
||||
* from http://www.hypertransport.org
|
||||
* For HyperTransport information, please consult the following manuals
|
||||
* from http://www.hypertransport.org
|
||||
*
|
||||
* The Hypertransport I/O Link Specification
|
||||
* The HyperTransport I/O Link Specification
|
||||
*/
|
||||
|
||||
#ifndef LINUX_PCI_REGS_H
|
||||
|
|
@ -37,7 +37,7 @@
|
|||
#define PCI_COMMAND_INVALIDATE 0x10 /* Use memory write and invalidate */
|
||||
#define PCI_COMMAND_VGA_PALETTE 0x20 /* Enable palette snooping */
|
||||
#define PCI_COMMAND_PARITY 0x40 /* Enable parity checking */
|
||||
#define PCI_COMMAND_WAIT 0x80 /* Enable address/data stepping */
|
||||
#define PCI_COMMAND_WAIT 0x80 /* Enable address/data stepping */
|
||||
#define PCI_COMMAND_SERR 0x100 /* Enable SERR */
|
||||
#define PCI_COMMAND_FAST_BACK 0x200 /* Enable back-to-back writes */
|
||||
#define PCI_COMMAND_INTX_DISABLE 0x400 /* INTx Emulation Disable */
|
||||
|
|
@ -45,7 +45,7 @@
|
|||
#define PCI_STATUS 0x06 /* 16 bits */
|
||||
#define PCI_STATUS_INTERRUPT 0x08 /* Interrupt status */
|
||||
#define PCI_STATUS_CAP_LIST 0x10 /* Support Capability List */
|
||||
#define PCI_STATUS_66MHZ 0x20 /* Support 66 Mhz PCI 2.1 bus */
|
||||
#define PCI_STATUS_66MHZ 0x20 /* Support 66 MHz PCI 2.1 bus */
|
||||
#define PCI_STATUS_UDF 0x40 /* Support User Definable Features [obsolete] */
|
||||
#define PCI_STATUS_FAST_BACK 0x80 /* Accept fast-back to back */
|
||||
#define PCI_STATUS_PARITY 0x100 /* Detected parity error */
|
||||
|
|
@ -205,14 +205,14 @@
|
|||
#define PCI_CAP_ID_CHSWP 0x06 /* CompactPCI HotSwap */
|
||||
#define PCI_CAP_ID_PCIX 0x07 /* PCI-X */
|
||||
#define PCI_CAP_ID_HT 0x08 /* HyperTransport */
|
||||
#define PCI_CAP_ID_VNDR 0x09 /* Vendor specific */
|
||||
#define PCI_CAP_ID_VNDR 0x09 /* Vendor-Specific */
|
||||
#define PCI_CAP_ID_DBG 0x0A /* Debug port */
|
||||
#define PCI_CAP_ID_CCRC 0x0B /* CompactPCI Central Resource Control */
|
||||
#define PCI_CAP_ID_SHPC 0x0C /* PCI Standard Hot-Plug Controller */
|
||||
#define PCI_CAP_ID_SHPC 0x0C /* PCI Standard Hot-Plug Controller */
|
||||
#define PCI_CAP_ID_SSVID 0x0D /* Bridge subsystem vendor/device ID */
|
||||
#define PCI_CAP_ID_AGP3 0x0E /* AGP Target PCI-PCI bridge */
|
||||
#define PCI_CAP_ID_SECDEV 0x0F /* Secure Device */
|
||||
#define PCI_CAP_ID_EXP 0x10 /* PCI Express */
|
||||
#define PCI_CAP_ID_EXP 0x10 /* PCI Express */
|
||||
#define PCI_CAP_ID_MSIX 0x11 /* MSI-X */
|
||||
#define PCI_CAP_ID_SATA 0x12 /* SATA Data/Index Conf. */
|
||||
#define PCI_CAP_ID_AF 0x13 /* PCI Advanced Features */
|
||||
|
|
@ -268,8 +268,8 @@
|
|||
#define PCI_AGP_COMMAND_RQ_MASK 0xff000000 /* Master: Maximum number of requests */
|
||||
#define PCI_AGP_COMMAND_SBA 0x0200 /* Sideband addressing enabled */
|
||||
#define PCI_AGP_COMMAND_AGP 0x0100 /* Allow processing of AGP transactions */
|
||||
#define PCI_AGP_COMMAND_64BIT 0x0020 /* Allow processing of 64-bit addresses */
|
||||
#define PCI_AGP_COMMAND_FW 0x0010 /* Force FW transfers */
|
||||
#define PCI_AGP_COMMAND_64BIT 0x0020 /* Allow processing of 64-bit addresses */
|
||||
#define PCI_AGP_COMMAND_FW 0x0010 /* Force FW transfers */
|
||||
#define PCI_AGP_COMMAND_RATE4 0x0004 /* Use 4x rate */
|
||||
#define PCI_AGP_COMMAND_RATE2 0x0002 /* Use 2x rate */
|
||||
#define PCI_AGP_COMMAND_RATE1 0x0001 /* Use 1x rate */
|
||||
|
|
@ -319,10 +319,9 @@
|
|||
#define PCI_MSIX_PBA 8 /* Pending Bit Array offset */
|
||||
#define PCI_MSIX_PBA_BIR 0x00000007 /* BAR index */
|
||||
#define PCI_MSIX_PBA_OFFSET 0xfffffff8 /* Offset into specified BAR */
|
||||
#define PCI_MSIX_FLAGS_BIRMASK (7 << 0) /* deprecated */
|
||||
#define PCI_CAP_MSIX_SIZEOF 12 /* size of MSIX registers */
|
||||
|
||||
/* MSI-X entry's format */
|
||||
/* MSI-X Table entry format */
|
||||
#define PCI_MSIX_ENTRY_SIZE 16
|
||||
#define PCI_MSIX_ENTRY_LOWER_ADDR 0
|
||||
#define PCI_MSIX_ENTRY_UPPER_ADDR 4
|
||||
|
|
@ -373,7 +372,7 @@
|
|||
#define PCI_X_CMD_SPLIT_16 0x0060 /* Max 16 */
|
||||
#define PCI_X_CMD_SPLIT_32 0x0070 /* Max 32 */
|
||||
#define PCI_X_CMD_MAX_SPLIT 0x0070 /* Max Outstanding Split Transactions */
|
||||
#define PCI_X_CMD_VERSION(x) (((x) >> 12) & 3) /* Version */
|
||||
#define PCI_X_CMD_VERSION(x) (((x) >> 12) & 3) /* Version */
|
||||
#define PCI_X_STATUS 4 /* PCI-X capabilities */
|
||||
#define PCI_X_STATUS_DEVFN 0x000000ff /* A copy of devfn */
|
||||
#define PCI_X_STATUS_BUS 0x0000ff00 /* A copy of bus nr */
|
||||
|
|
@ -408,8 +407,8 @@
|
|||
|
||||
/* PCI Bridge Subsystem ID registers */
|
||||
|
||||
#define PCI_SSVID_VENDOR_ID 4 /* PCI-Bridge subsystem vendor id register */
|
||||
#define PCI_SSVID_DEVICE_ID 6 /* PCI-Bridge subsystem device id register */
|
||||
#define PCI_SSVID_VENDOR_ID 4 /* PCI Bridge subsystem vendor ID */
|
||||
#define PCI_SSVID_DEVICE_ID 6 /* PCI Bridge subsystem device ID */
|
||||
|
||||
/* PCI Express capability registers */
|
||||
|
||||
|
|
@ -485,12 +484,12 @@
|
|||
#define PCI_EXP_LNKCTL_CLKREQ_EN 0x0100 /* Enable clkreq */
|
||||
#define PCI_EXP_LNKCTL_HAWD 0x0200 /* Hardware Autonomous Width Disable */
|
||||
#define PCI_EXP_LNKCTL_LBMIE 0x0400 /* Link Bandwidth Management Interrupt Enable */
|
||||
#define PCI_EXP_LNKCTL_LABIE 0x0800 /* Lnk Autonomous Bandwidth Interrupt Enable */
|
||||
#define PCI_EXP_LNKCTL_LABIE 0x0800 /* Link Autonomous Bandwidth Interrupt Enable */
|
||||
#define PCI_EXP_LNKSTA 18 /* Link Status */
|
||||
#define PCI_EXP_LNKSTA_CLS 0x000f /* Current Link Speed */
|
||||
#define PCI_EXP_LNKSTA_CLS_2_5GB 0x0001 /* Current Link Speed 2.5GT/s */
|
||||
#define PCI_EXP_LNKSTA_CLS_5_0GB 0x0002 /* Current Link Speed 5.0GT/s */
|
||||
#define PCI_EXP_LNKSTA_NLW 0x03f0 /* Nogotiated Link Width */
|
||||
#define PCI_EXP_LNKSTA_NLW 0x03f0 /* Negotiated Link Width */
|
||||
#define PCI_EXP_LNKSTA_NLW_SHIFT 4 /* start of NLW mask in link status */
|
||||
#define PCI_EXP_LNKSTA_LT 0x0800 /* Link Training */
|
||||
#define PCI_EXP_LNKSTA_SLC 0x1000 /* Slot Clock Configuration */
|
||||
|
|
@ -558,7 +557,8 @@
|
|||
#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_ARI 0x20 /* Alternative Routing-ID */
|
||||
#define PCI_EXP_DEVCTL2_COMP_TIMEOUT 0x000f /* Completion Timeout Value */
|
||||
#define PCI_EXP_DEVCTL2_ARI 0x0020 /* Alternative Routing-ID */
|
||||
#define PCI_EXP_DEVCTL2_IDO_REQ_EN 0x0100 /* Allow IDO for requests */
|
||||
#define PCI_EXP_DEVCTL2_IDO_CMP_EN 0x0200 /* Allow IDO for completions */
|
||||
#define PCI_EXP_DEVCTL2_LTR_EN 0x0400 /* Enable LTR mechanism */
|
||||
|
|
@ -593,7 +593,7 @@
|
|||
#define PCI_EXT_CAP_ID_MFVC 0x08 /* Multi-Function VC Capability */
|
||||
#define PCI_EXT_CAP_ID_VC9 0x09 /* same as _VC */
|
||||
#define PCI_EXT_CAP_ID_RCRB 0x0A /* Root Complex RB? */
|
||||
#define PCI_EXT_CAP_ID_VNDR 0x0B /* Vendor Specific */
|
||||
#define PCI_EXT_CAP_ID_VNDR 0x0B /* Vendor-Specific */
|
||||
#define PCI_EXT_CAP_ID_CAC 0x0C /* Config Access - obsolete */
|
||||
#define PCI_EXT_CAP_ID_ACS 0x0D /* Access Control Services */
|
||||
#define PCI_EXT_CAP_ID_ARI 0x0E /* Alternate Routing ID */
|
||||
|
|
@ -602,12 +602,12 @@
|
|||
#define PCI_EXT_CAP_ID_MRIOV 0x11 /* Multi Root I/O Virtualization */
|
||||
#define PCI_EXT_CAP_ID_MCAST 0x12 /* Multicast */
|
||||
#define PCI_EXT_CAP_ID_PRI 0x13 /* Page Request Interface */
|
||||
#define PCI_EXT_CAP_ID_AMD_XXX 0x14 /* reserved for AMD */
|
||||
#define PCI_EXT_CAP_ID_REBAR 0x15 /* resizable BAR */
|
||||
#define PCI_EXT_CAP_ID_DPA 0x16 /* dynamic power alloc */
|
||||
#define PCI_EXT_CAP_ID_TPH 0x17 /* TPH request */
|
||||
#define PCI_EXT_CAP_ID_LTR 0x18 /* latency tolerance reporting */
|
||||
#define PCI_EXT_CAP_ID_SECPCI 0x19 /* Secondary PCIe */
|
||||
#define PCI_EXT_CAP_ID_AMD_XXX 0x14 /* Reserved for AMD */
|
||||
#define PCI_EXT_CAP_ID_REBAR 0x15 /* Resizable BAR */
|
||||
#define PCI_EXT_CAP_ID_DPA 0x16 /* Dynamic Power Allocation */
|
||||
#define PCI_EXT_CAP_ID_TPH 0x17 /* TPH Requester */
|
||||
#define PCI_EXT_CAP_ID_LTR 0x18 /* Latency Tolerance Reporting */
|
||||
#define PCI_EXT_CAP_ID_SECPCI 0x19 /* Secondary PCIe Capability */
|
||||
#define PCI_EXT_CAP_ID_PMUX 0x1A /* Protocol Multiplexing */
|
||||
#define PCI_EXT_CAP_ID_PASID 0x1B /* Process Address Space ID */
|
||||
#define PCI_EXT_CAP_ID_MAX PCI_EXT_CAP_ID_PASID
|
||||
|
|
@ -667,9 +667,9 @@
|
|||
#define PCI_ERR_ROOT_COR_RCV 0x00000001 /* ERR_COR Received */
|
||||
/* Multi ERR_COR Received */
|
||||
#define PCI_ERR_ROOT_MULTI_COR_RCV 0x00000002
|
||||
/* ERR_FATAL/NONFATAL Recevied */
|
||||
/* ERR_FATAL/NONFATAL Received */
|
||||
#define PCI_ERR_ROOT_UNCOR_RCV 0x00000004
|
||||
/* Multi ERR_FATAL/NONFATAL Recevied */
|
||||
/* Multi ERR_FATAL/NONFATAL Received */
|
||||
#define PCI_ERR_ROOT_MULTI_UNCOR_RCV 0x00000008
|
||||
#define PCI_ERR_ROOT_FIRST_FATAL 0x00000010 /* First Fatal */
|
||||
#define PCI_ERR_ROOT_NONFATAL_RCV 0x00000020 /* Non-Fatal Received */
|
||||
|
|
@ -678,7 +678,7 @@
|
|||
|
||||
/* Virtual Channel */
|
||||
#define PCI_VC_PORT_REG1 4
|
||||
#define PCI_VC_REG1_EVCC 0x7 /* extended vc count */
|
||||
#define PCI_VC_REG1_EVCC 0x7 /* extended VC count */
|
||||
#define PCI_VC_PORT_REG2 8
|
||||
#define PCI_VC_REG2_32_PHASE 0x2
|
||||
#define PCI_VC_REG2_64_PHASE 0x4
|
||||
|
|
@ -711,7 +711,7 @@
|
|||
#define PCI_VNDR_HEADER_LEN(x) (((x) >> 20) & 0xfff)
|
||||
|
||||
/*
|
||||
* Hypertransport sub capability types
|
||||
* HyperTransport sub capability types
|
||||
*
|
||||
* Unfortunately there are both 3 bit and 5 bit capability types defined
|
||||
* in the HT spec, catering for that is a little messy. You probably don't
|
||||
|
|
@ -739,8 +739,8 @@
|
|||
#define HT_CAPTYPE_DIRECT_ROUTE 0xB0 /* Direct routing configuration */
|
||||
#define HT_CAPTYPE_VCSET 0xB8 /* Virtual Channel configuration */
|
||||
#define HT_CAPTYPE_ERROR_RETRY 0xC0 /* Retry on error configuration */
|
||||
#define HT_CAPTYPE_GEN3 0xD0 /* Generation 3 hypertransport configuration */
|
||||
#define HT_CAPTYPE_PM 0xE0 /* Hypertransport powermanagement configuration */
|
||||
#define HT_CAPTYPE_GEN3 0xD0 /* Generation 3 HyperTransport configuration */
|
||||
#define HT_CAPTYPE_PM 0xE0 /* HyperTransport power management configuration */
|
||||
#define HT_CAP_SIZEOF_LONG 28 /* slave & primary */
|
||||
#define HT_CAP_SIZEOF_SHORT 24 /* host & secondary */
|
||||
|
||||
|
|
@ -777,14 +777,14 @@
|
|||
#define PCI_PRI_ALLOC_REQ 0x0c /* PRI max reqs allowed */
|
||||
#define PCI_EXT_CAP_PRI_SIZEOF 16
|
||||
|
||||
/* PASID capability */
|
||||
/* Process Address Space ID */
|
||||
#define PCI_PASID_CAP 0x04 /* PASID feature register */
|
||||
#define PCI_PASID_CAP_EXEC 0x02 /* Exec permissions Supported */
|
||||
#define PCI_PASID_CAP_PRIV 0x04 /* Priviledge Mode Supported */
|
||||
#define PCI_PASID_CAP_PRIV 0x04 /* Privilege Mode Supported */
|
||||
#define PCI_PASID_CTRL 0x06 /* PASID control register */
|
||||
#define PCI_PASID_CTRL_ENABLE 0x01 /* Enable bit */
|
||||
#define PCI_PASID_CTRL_EXEC 0x02 /* Exec permissions Enable */
|
||||
#define PCI_PASID_CTRL_PRIV 0x04 /* Priviledge Mode Enable */
|
||||
#define PCI_PASID_CTRL_PRIV 0x04 /* Privilege Mode Enable */
|
||||
#define PCI_EXT_CAP_PASID_SIZEOF 8
|
||||
|
||||
/* Single Root I/O Virtualization */
|
||||
|
|
@ -839,22 +839,22 @@
|
|||
#define PCI_ACS_CTRL 0x06 /* ACS Control Register */
|
||||
#define PCI_ACS_EGRESS_CTL_V 0x08 /* ACS Egress Control Vector */
|
||||
|
||||
#define PCI_VSEC_HDR 4 /* extended cap - vendor specific */
|
||||
#define PCI_VSEC_HDR 4 /* extended cap - vendor-specific */
|
||||
#define PCI_VSEC_HDR_LEN_SHIFT 20 /* shift for length field */
|
||||
|
||||
/* sata capability */
|
||||
/* SATA capability */
|
||||
#define PCI_SATA_REGS 4 /* SATA REGs specifier */
|
||||
#define PCI_SATA_REGS_MASK 0xF /* location - BAR#/inline */
|
||||
#define PCI_SATA_REGS_INLINE 0xF /* REGS in config space */
|
||||
#define PCI_SATA_SIZEOF_SHORT 8
|
||||
#define PCI_SATA_SIZEOF_LONG 16
|
||||
|
||||
/* resizable BARs */
|
||||
/* Resizable BARs */
|
||||
#define PCI_REBAR_CTRL 8 /* control register */
|
||||
#define PCI_REBAR_CTRL_NBAR_MASK (7 << 5) /* mask for # bars */
|
||||
#define PCI_REBAR_CTRL_NBAR_SHIFT 5 /* shift for # bars */
|
||||
|
||||
/* dynamic power allocation */
|
||||
/* Dynamic Power Allocation */
|
||||
#define PCI_DPA_CAP 4 /* capability register */
|
||||
#define PCI_DPA_CAP_SUBSTATE_MASK 0x1F /* # substates - 1 */
|
||||
#define PCI_DPA_BASE_SIZEOF 16 /* size with 0 substates */
|
||||
|
|
|
|||
|
|
@ -136,8 +136,9 @@ enum perf_event_sample_format {
|
|||
PERF_SAMPLE_WEIGHT = 1U << 14,
|
||||
PERF_SAMPLE_DATA_SRC = 1U << 15,
|
||||
PERF_SAMPLE_IDENTIFIER = 1U << 16,
|
||||
PERF_SAMPLE_TRANSACTION = 1U << 17,
|
||||
|
||||
PERF_SAMPLE_MAX = 1U << 17, /* non-ABI */
|
||||
PERF_SAMPLE_MAX = 1U << 18, /* non-ABI */
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
@ -180,6 +181,28 @@ enum perf_sample_regs_abi {
|
|||
PERF_SAMPLE_REGS_ABI_64 = 2,
|
||||
};
|
||||
|
||||
/*
|
||||
* Values for the memory transaction event qualifier, mostly for
|
||||
* abort events. Multiple bits can be set.
|
||||
*/
|
||||
enum {
|
||||
PERF_TXN_ELISION = (1 << 0), /* From elision */
|
||||
PERF_TXN_TRANSACTION = (1 << 1), /* From transaction */
|
||||
PERF_TXN_SYNC = (1 << 2), /* Instruction is related */
|
||||
PERF_TXN_ASYNC = (1 << 3), /* Instruction not related */
|
||||
PERF_TXN_RETRY = (1 << 4), /* Retry possible */
|
||||
PERF_TXN_CONFLICT = (1 << 5), /* Conflict abort */
|
||||
PERF_TXN_CAPACITY_WRITE = (1 << 6), /* Capacity write abort */
|
||||
PERF_TXN_CAPACITY_READ = (1 << 7), /* Capacity read abort */
|
||||
|
||||
PERF_TXN_MAX = (1 << 8), /* non-ABI */
|
||||
|
||||
/* bits 32..63 are reserved for the abort code */
|
||||
|
||||
PERF_TXN_ABORT_MASK = (0xffffffffULL << 32),
|
||||
PERF_TXN_ABORT_SHIFT = 32,
|
||||
};
|
||||
|
||||
/*
|
||||
* The format of the data returned by read() on a perf event fd,
|
||||
* as specified by attr.read_format:
|
||||
|
|
|
|||
|
|
@ -388,6 +388,20 @@ enum {
|
|||
|
||||
#define TCA_CGROUP_MAX (__TCA_CGROUP_MAX - 1)
|
||||
|
||||
/* BPF classifier */
|
||||
|
||||
enum {
|
||||
TCA_BPF_UNSPEC,
|
||||
TCA_BPF_ACT,
|
||||
TCA_BPF_POLICE,
|
||||
TCA_BPF_CLASSID,
|
||||
TCA_BPF_OPS_LEN,
|
||||
TCA_BPF_OPS,
|
||||
__TCA_BPF_MAX,
|
||||
};
|
||||
|
||||
#define TCA_BPF_MAX (__TCA_BPF_MAX - 1)
|
||||
|
||||
/* Extended Matches */
|
||||
|
||||
struct tcf_ematch_tree_hdr {
|
||||
|
|
|
|||
|
|
@ -171,6 +171,8 @@ enum {
|
|||
TCA_TBF_PARMS,
|
||||
TCA_TBF_RTAB,
|
||||
TCA_TBF_PTAB,
|
||||
TCA_TBF_RATE64,
|
||||
TCA_TBF_PRATE64,
|
||||
__TCA_TBF_MAX,
|
||||
};
|
||||
|
||||
|
|
@ -357,6 +359,8 @@ enum {
|
|||
TCA_HTB_CTAB,
|
||||
TCA_HTB_RTAB,
|
||||
TCA_HTB_DIRECT_QLEN,
|
||||
TCA_HTB_RATE64,
|
||||
TCA_HTB_CEIL64,
|
||||
__TCA_HTB_MAX,
|
||||
};
|
||||
|
||||
|
|
@ -759,13 +763,14 @@ enum {
|
|||
|
||||
TCA_FQ_RATE_ENABLE, /* enable/disable rate limiting */
|
||||
|
||||
TCA_FQ_FLOW_DEFAULT_RATE,/* for sockets with unspecified sk_rate,
|
||||
* use the following rate
|
||||
*/
|
||||
TCA_FQ_FLOW_DEFAULT_RATE,/* obsolete, do not use */
|
||||
|
||||
TCA_FQ_FLOW_MAX_RATE, /* per flow max rate */
|
||||
|
||||
TCA_FQ_BUCKETS_LOG, /* log2(number of buckets) */
|
||||
|
||||
TCA_FQ_FLOW_REFILL_DELAY, /* flow credit refill delay in usec */
|
||||
|
||||
__TCA_FQ_MAX
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@
|
|||
#define _MD_P_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <asm/byteorder.h>
|
||||
|
||||
/*
|
||||
* RAID superblock.
|
||||
|
|
|
|||
|
|
@ -40,11 +40,4 @@ struct rand_pool_info {
|
|||
__u32 buf[0];
|
||||
};
|
||||
|
||||
struct rnd_state {
|
||||
__u32 s1, s2, s3;
|
||||
};
|
||||
|
||||
/* Exported functions */
|
||||
|
||||
|
||||
#endif /* _UAPI_LINUX_RANDOM_H */
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ struct unix_diag_msg {
|
|||
};
|
||||
|
||||
enum {
|
||||
/* UNIX_DIAG_NONE, standard nl API requires this attribute! */
|
||||
UNIX_DIAG_NAME,
|
||||
UNIX_DIAG_VFS,
|
||||
UNIX_DIAG_PEER,
|
||||
|
|
|
|||
|
|
@ -160,6 +160,10 @@ enum v4l2_colorfx {
|
|||
* of controls. Total of 16 controls is reserved for this driver */
|
||||
#define V4L2_CID_USER_SI476X_BASE (V4L2_CID_USER_BASE + 0x1040)
|
||||
|
||||
/* The base for the TI VPE driver controls. Total of 16 controls is reserved for
|
||||
* this driver */
|
||||
#define V4L2_CID_USER_TI_VPE_BASE (V4L2_CID_USER_BASE + 0x1050)
|
||||
|
||||
/* MPEG-class control IDs */
|
||||
/* The MPEG controls are applicable to all codec controls
|
||||
* and the 'MPEG' part of the define is historical */
|
||||
|
|
|
|||
|
|
@ -94,10 +94,10 @@ struct mtd_write_req {
|
|||
#define MTD_RAM 1
|
||||
#define MTD_ROM 2
|
||||
#define MTD_NORFLASH 3
|
||||
#define MTD_NANDFLASH 4
|
||||
#define MTD_NANDFLASH 4 /* SLC NAND */
|
||||
#define MTD_DATAFLASH 6
|
||||
#define MTD_UBIVOLUME 7
|
||||
#define MTD_MLCNANDFLASH 8
|
||||
#define MTD_MLCNANDFLASH 8 /* MLC NAND (including TLC) */
|
||||
|
||||
#define MTD_WRITEABLE 0x400 /* Device is writeable */
|
||||
#define MTD_BIT_WRITEABLE 0x800 /* Single bits can be flipped */
|
||||
|
|
@ -275,4 +275,9 @@ enum mtd_file_modes {
|
|||
MTD_FILE_MODE_RAW,
|
||||
};
|
||||
|
||||
static inline int mtd_type_is_nand_user(const struct mtd_info_user *mtd)
|
||||
{
|
||||
return mtd->type == MTD_NANDFLASH || mtd->type == MTD_MLCNANDFLASH;
|
||||
}
|
||||
|
||||
#endif /* __MTD_ABI_H__ */
|
||||
|
|
|
|||
|
|
@ -87,10 +87,11 @@ enum {
|
|||
IB_USER_VERBS_CMD_CLOSE_XRCD,
|
||||
IB_USER_VERBS_CMD_CREATE_XSRQ,
|
||||
IB_USER_VERBS_CMD_OPEN_QP,
|
||||
#ifdef CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING
|
||||
IB_USER_VERBS_CMD_CREATE_FLOW = IB_USER_VERBS_CMD_THRESHOLD,
|
||||
IB_USER_VERBS_CMD_DESTROY_FLOW
|
||||
#endif /* CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING */
|
||||
};
|
||||
|
||||
enum {
|
||||
IB_USER_VERBS_EX_CMD_CREATE_FLOW = IB_USER_VERBS_CMD_THRESHOLD,
|
||||
IB_USER_VERBS_EX_CMD_DESTROY_FLOW
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
@ -122,22 +123,24 @@ struct ib_uverbs_comp_event_desc {
|
|||
* the rest of the command struct based on these value.
|
||||
*/
|
||||
|
||||
#define IB_USER_VERBS_CMD_COMMAND_MASK 0xff
|
||||
#define IB_USER_VERBS_CMD_FLAGS_MASK 0xff000000u
|
||||
#define IB_USER_VERBS_CMD_FLAGS_SHIFT 24
|
||||
|
||||
#define IB_USER_VERBS_CMD_FLAG_EXTENDED 0x80
|
||||
|
||||
struct ib_uverbs_cmd_hdr {
|
||||
__u32 command;
|
||||
__u16 in_words;
|
||||
__u16 out_words;
|
||||
};
|
||||
|
||||
#ifdef CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING
|
||||
struct ib_uverbs_cmd_hdr_ex {
|
||||
__u32 command;
|
||||
__u16 in_words;
|
||||
__u16 out_words;
|
||||
struct ib_uverbs_ex_cmd_hdr {
|
||||
__u64 response;
|
||||
__u16 provider_in_words;
|
||||
__u16 provider_out_words;
|
||||
__u32 cmd_hdr_reserved;
|
||||
};
|
||||
#endif /* CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING */
|
||||
|
||||
struct ib_uverbs_get_context {
|
||||
__u64 response;
|
||||
|
|
@ -700,62 +703,71 @@ struct ib_uverbs_detach_mcast {
|
|||
__u64 driver_data[0];
|
||||
};
|
||||
|
||||
#ifdef CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING
|
||||
struct ib_kern_eth_filter {
|
||||
struct ib_uverbs_flow_spec_hdr {
|
||||
__u32 type;
|
||||
__u16 size;
|
||||
__u16 reserved;
|
||||
/* followed by flow_spec */
|
||||
__u64 flow_spec_data[0];
|
||||
};
|
||||
|
||||
struct ib_uverbs_flow_eth_filter {
|
||||
__u8 dst_mac[6];
|
||||
__u8 src_mac[6];
|
||||
__be16 ether_type;
|
||||
__be16 vlan_tag;
|
||||
};
|
||||
|
||||
struct ib_kern_spec_eth {
|
||||
__u32 type;
|
||||
__u16 size;
|
||||
__u16 reserved;
|
||||
struct ib_kern_eth_filter val;
|
||||
struct ib_kern_eth_filter mask;
|
||||
};
|
||||
|
||||
struct ib_kern_ipv4_filter {
|
||||
__be32 src_ip;
|
||||
__be32 dst_ip;
|
||||
};
|
||||
|
||||
struct ib_kern_spec_ipv4 {
|
||||
__u32 type;
|
||||
__u16 size;
|
||||
__u16 reserved;
|
||||
struct ib_kern_ipv4_filter val;
|
||||
struct ib_kern_ipv4_filter mask;
|
||||
};
|
||||
|
||||
struct ib_kern_tcp_udp_filter {
|
||||
__be16 dst_port;
|
||||
__be16 src_port;
|
||||
};
|
||||
|
||||
struct ib_kern_spec_tcp_udp {
|
||||
__u32 type;
|
||||
__u16 size;
|
||||
__u16 reserved;
|
||||
struct ib_kern_tcp_udp_filter val;
|
||||
struct ib_kern_tcp_udp_filter mask;
|
||||
};
|
||||
|
||||
struct ib_kern_spec {
|
||||
struct ib_uverbs_flow_spec_eth {
|
||||
union {
|
||||
struct ib_uverbs_flow_spec_hdr hdr;
|
||||
struct {
|
||||
__u32 type;
|
||||
__u16 size;
|
||||
__u16 reserved;
|
||||
};
|
||||
struct ib_kern_spec_eth eth;
|
||||
struct ib_kern_spec_ipv4 ipv4;
|
||||
struct ib_kern_spec_tcp_udp tcp_udp;
|
||||
};
|
||||
struct ib_uverbs_flow_eth_filter val;
|
||||
struct ib_uverbs_flow_eth_filter mask;
|
||||
};
|
||||
|
||||
struct ib_kern_flow_attr {
|
||||
struct ib_uverbs_flow_ipv4_filter {
|
||||
__be32 src_ip;
|
||||
__be32 dst_ip;
|
||||
};
|
||||
|
||||
struct ib_uverbs_flow_spec_ipv4 {
|
||||
union {
|
||||
struct ib_uverbs_flow_spec_hdr hdr;
|
||||
struct {
|
||||
__u32 type;
|
||||
__u16 size;
|
||||
__u16 reserved;
|
||||
};
|
||||
};
|
||||
struct ib_uverbs_flow_ipv4_filter val;
|
||||
struct ib_uverbs_flow_ipv4_filter mask;
|
||||
};
|
||||
|
||||
struct ib_uverbs_flow_tcp_udp_filter {
|
||||
__be16 dst_port;
|
||||
__be16 src_port;
|
||||
};
|
||||
|
||||
struct ib_uverbs_flow_spec_tcp_udp {
|
||||
union {
|
||||
struct ib_uverbs_flow_spec_hdr hdr;
|
||||
struct {
|
||||
__u32 type;
|
||||
__u16 size;
|
||||
__u16 reserved;
|
||||
};
|
||||
};
|
||||
struct ib_uverbs_flow_tcp_udp_filter val;
|
||||
struct ib_uverbs_flow_tcp_udp_filter mask;
|
||||
};
|
||||
|
||||
struct ib_uverbs_flow_attr {
|
||||
__u32 type;
|
||||
__u16 size;
|
||||
__u16 priority;
|
||||
|
|
@ -767,13 +779,13 @@ struct ib_kern_flow_attr {
|
|||
* struct ib_flow_spec_xxx
|
||||
* struct ib_flow_spec_yyy
|
||||
*/
|
||||
struct ib_uverbs_flow_spec_hdr flow_specs[0];
|
||||
};
|
||||
|
||||
struct ib_uverbs_create_flow {
|
||||
__u32 comp_mask;
|
||||
__u64 response;
|
||||
__u32 qp_handle;
|
||||
struct ib_kern_flow_attr flow_attr;
|
||||
struct ib_uverbs_flow_attr flow_attr;
|
||||
};
|
||||
|
||||
struct ib_uverbs_create_flow_resp {
|
||||
|
|
@ -785,7 +797,6 @@ struct ib_uverbs_destroy_flow {
|
|||
__u32 comp_mask;
|
||||
__u32 flow_handle;
|
||||
};
|
||||
#endif /* CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING */
|
||||
|
||||
struct ib_uverbs_create_srq {
|
||||
__u64 response;
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ header-y += asound_fm.h
|
|||
header-y += compress_offload.h
|
||||
header-y += compress_params.h
|
||||
header-y += emu10k1.h
|
||||
header-y += firewire.h
|
||||
header-y += hdsp.h
|
||||
header-y += hdspm.h
|
||||
header-y += sb16_csp.h
|
||||
|
|
|
|||
|
|
@ -93,9 +93,10 @@ enum {
|
|||
SNDRV_HWDEP_IFACE_SB_RC, /* SB Extigy/Audigy2NX remote control */
|
||||
SNDRV_HWDEP_IFACE_HDA, /* HD-audio */
|
||||
SNDRV_HWDEP_IFACE_USB_STREAM, /* direct access to usb stream */
|
||||
SNDRV_HWDEP_IFACE_FW_DICE, /* TC DICE FireWire device */
|
||||
|
||||
/* Don't forget to change the following: */
|
||||
SNDRV_HWDEP_IFACE_LAST = SNDRV_HWDEP_IFACE_USB_STREAM
|
||||
SNDRV_HWDEP_IFACE_LAST = SNDRV_HWDEP_IFACE_FW_DICE
|
||||
};
|
||||
|
||||
struct snd_hwdep_info {
|
||||
|
|
|
|||
51
include/uapi/sound/firewire.h
Normal file
51
include/uapi/sound/firewire.h
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
#ifndef _UAPI_SOUND_FIREWIRE_H_INCLUDED
|
||||
#define _UAPI_SOUND_FIREWIRE_H_INCLUDED
|
||||
|
||||
#include <linux/ioctl.h>
|
||||
|
||||
/* events can be read() from the hwdep device */
|
||||
|
||||
#define SNDRV_FIREWIRE_EVENT_LOCK_STATUS 0x000010cc
|
||||
#define SNDRV_FIREWIRE_EVENT_DICE_NOTIFICATION 0xd1ce004e
|
||||
|
||||
struct snd_firewire_event_common {
|
||||
unsigned int type; /* SNDRV_FIREWIRE_EVENT_xxx */
|
||||
};
|
||||
|
||||
struct snd_firewire_event_lock_status {
|
||||
unsigned int type;
|
||||
unsigned int status; /* 0/1 = unlocked/locked */
|
||||
};
|
||||
|
||||
struct snd_firewire_event_dice_notification {
|
||||
unsigned int type;
|
||||
unsigned int notification; /* DICE-specific bits */
|
||||
};
|
||||
|
||||
union snd_firewire_event {
|
||||
struct snd_firewire_event_common common;
|
||||
struct snd_firewire_event_lock_status lock_status;
|
||||
struct snd_firewire_event_dice_notification dice_notification;
|
||||
};
|
||||
|
||||
|
||||
#define SNDRV_FIREWIRE_IOCTL_GET_INFO _IOR('H', 0xf8, struct snd_firewire_get_info)
|
||||
#define SNDRV_FIREWIRE_IOCTL_LOCK _IO('H', 0xf9)
|
||||
#define SNDRV_FIREWIRE_IOCTL_UNLOCK _IO('H', 0xfa)
|
||||
|
||||
#define SNDRV_FIREWIRE_TYPE_DICE 1
|
||||
/* Fireworks, AV/C, RME, MOTU, ... */
|
||||
|
||||
struct snd_firewire_get_info {
|
||||
unsigned int type; /* SNDRV_FIREWIRE_TYPE_xxx */
|
||||
unsigned int card; /* same as fw_cdev_get_info.card */
|
||||
unsigned char guid[8];
|
||||
char device_name[16]; /* device node in /dev */
|
||||
};
|
||||
|
||||
/*
|
||||
* SNDRV_FIREWIRE_IOCTL_LOCK prevents the driver from streaming.
|
||||
* Returns -EBUSY if the driver is already streaming.
|
||||
*/
|
||||
|
||||
#endif /* _UAPI_SOUND_FIREWIRE_H_INCLUDED */
|
||||
Loading…
Add table
Add a link
Reference in a new issue