diff options
Diffstat (limited to 'include/uapi')
70 files changed, 2064 insertions, 161 deletions
diff --git a/include/uapi/asm-generic/ipcbuf.h b/include/uapi/asm-generic/ipcbuf.h index 76982b2a1b58..3dbcc1e771c0 100644 --- a/include/uapi/asm-generic/ipcbuf.h +++ b/include/uapi/asm-generic/ipcbuf.h | |||
@@ -27,8 +27,8 @@ struct ipc64_perm { | |||
27 | unsigned char __pad1[4 - sizeof(__kernel_mode_t)]; | 27 | unsigned char __pad1[4 - sizeof(__kernel_mode_t)]; |
28 | unsigned short seq; | 28 | unsigned short seq; |
29 | unsigned short __pad2; | 29 | unsigned short __pad2; |
30 | unsigned long __unused1; | 30 | __kernel_ulong_t __unused1; |
31 | unsigned long __unused2; | 31 | __kernel_ulong_t __unused2; |
32 | }; | 32 | }; |
33 | 33 | ||
34 | #endif /* __ASM_GENERIC_IPCBUF_H */ | 34 | #endif /* __ASM_GENERIC_IPCBUF_H */ |
diff --git a/include/uapi/asm-generic/msgbuf.h b/include/uapi/asm-generic/msgbuf.h index aec850d9159e..f55ecc43c60f 100644 --- a/include/uapi/asm-generic/msgbuf.h +++ b/include/uapi/asm-generic/msgbuf.h | |||
@@ -35,13 +35,13 @@ struct msqid64_ds { | |||
35 | #if __BITS_PER_LONG != 64 | 35 | #if __BITS_PER_LONG != 64 |
36 | unsigned long __unused3; | 36 | unsigned long __unused3; |
37 | #endif | 37 | #endif |
38 | unsigned long msg_cbytes; /* current number of bytes on queue */ | 38 | __kernel_ulong_t msg_cbytes; /* current number of bytes on queue */ |
39 | unsigned long msg_qnum; /* number of messages in queue */ | 39 | __kernel_ulong_t msg_qnum; /* number of messages in queue */ |
40 | unsigned long msg_qbytes; /* max number of bytes on queue */ | 40 | __kernel_ulong_t msg_qbytes; /* max number of bytes on queue */ |
41 | __kernel_pid_t msg_lspid; /* pid of last msgsnd */ | 41 | __kernel_pid_t msg_lspid; /* pid of last msgsnd */ |
42 | __kernel_pid_t msg_lrpid; /* last receive pid */ | 42 | __kernel_pid_t msg_lrpid; /* last receive pid */ |
43 | unsigned long __unused4; | 43 | __kernel_ulong_t __unused4; |
44 | unsigned long __unused5; | 44 | __kernel_ulong_t __unused5; |
45 | }; | 45 | }; |
46 | 46 | ||
47 | #endif /* __ASM_GENERIC_MSGBUF_H */ | 47 | #endif /* __ASM_GENERIC_MSGBUF_H */ |
diff --git a/include/uapi/asm-generic/shmbuf.h b/include/uapi/asm-generic/shmbuf.h index 5768fa60ac82..7e9fb2f0853b 100644 --- a/include/uapi/asm-generic/shmbuf.h +++ b/include/uapi/asm-generic/shmbuf.h | |||
@@ -39,21 +39,21 @@ struct shmid64_ds { | |||
39 | #endif | 39 | #endif |
40 | __kernel_pid_t shm_cpid; /* pid of creator */ | 40 | __kernel_pid_t shm_cpid; /* pid of creator */ |
41 | __kernel_pid_t shm_lpid; /* pid of last operator */ | 41 | __kernel_pid_t shm_lpid; /* pid of last operator */ |
42 | unsigned long shm_nattch; /* no. of current attaches */ | 42 | __kernel_ulong_t shm_nattch; /* no. of current attaches */ |
43 | unsigned long __unused4; | 43 | __kernel_ulong_t __unused4; |
44 | unsigned long __unused5; | 44 | __kernel_ulong_t __unused5; |
45 | }; | 45 | }; |
46 | 46 | ||
47 | struct shminfo64 { | 47 | struct shminfo64 { |
48 | unsigned long shmmax; | 48 | __kernel_ulong_t shmmax; |
49 | unsigned long shmmin; | 49 | __kernel_ulong_t shmmin; |
50 | unsigned long shmmni; | 50 | __kernel_ulong_t shmmni; |
51 | unsigned long shmseg; | 51 | __kernel_ulong_t shmseg; |
52 | unsigned long shmall; | 52 | __kernel_ulong_t shmall; |
53 | unsigned long __unused1; | 53 | __kernel_ulong_t __unused1; |
54 | unsigned long __unused2; | 54 | __kernel_ulong_t __unused2; |
55 | unsigned long __unused3; | 55 | __kernel_ulong_t __unused3; |
56 | unsigned long __unused4; | 56 | __kernel_ulong_t __unused4; |
57 | }; | 57 | }; |
58 | 58 | ||
59 | #endif /* __ASM_GENERIC_SHMBUF_H */ | 59 | #endif /* __ASM_GENERIC_SHMBUF_H */ |
diff --git a/include/uapi/asm-generic/socket.h b/include/uapi/asm-generic/socket.h index 38f14d0264c3..ea0796bdcf88 100644 --- a/include/uapi/asm-generic/socket.h +++ b/include/uapi/asm-generic/socket.h | |||
@@ -80,4 +80,6 @@ | |||
80 | 80 | ||
81 | #define SO_MAX_PACING_RATE 47 | 81 | #define SO_MAX_PACING_RATE 47 |
82 | 82 | ||
83 | #define SO_BPF_EXTENSIONS 48 | ||
84 | |||
83 | #endif /* __ASM_GENERIC_SOCKET_H */ | 85 | #endif /* __ASM_GENERIC_SOCKET_H */ |
diff --git a/include/uapi/asm-generic/statfs.h b/include/uapi/asm-generic/statfs.h index 0999647fca13..cb89cc730f0b 100644 --- a/include/uapi/asm-generic/statfs.h +++ b/include/uapi/asm-generic/statfs.h | |||
@@ -13,7 +13,7 @@ | |||
13 | */ | 13 | */ |
14 | #ifndef __statfs_word | 14 | #ifndef __statfs_word |
15 | #if __BITS_PER_LONG == 64 | 15 | #if __BITS_PER_LONG == 64 |
16 | #define __statfs_word long | 16 | #define __statfs_word __kernel_long_t |
17 | #else | 17 | #else |
18 | #define __statfs_word __u32 | 18 | #define __statfs_word __u32 |
19 | #endif | 19 | #endif |
diff --git a/include/uapi/asm-generic/types.h b/include/uapi/asm-generic/types.h index bd39806013b5..a3877926b0d4 100644 --- a/include/uapi/asm-generic/types.h +++ b/include/uapi/asm-generic/types.h | |||
@@ -1,8 +1,7 @@ | |||
1 | #ifndef _ASM_GENERIC_TYPES_H | 1 | #ifndef _ASM_GENERIC_TYPES_H |
2 | #define _ASM_GENERIC_TYPES_H | 2 | #define _ASM_GENERIC_TYPES_H |
3 | /* | 3 | /* |
4 | * int-ll64 is used practically everywhere now, | 4 | * int-ll64 is used everywhere now. |
5 | * so use it as a reasonable default. | ||
6 | */ | 5 | */ |
7 | #include <asm-generic/int-ll64.h> | 6 | #include <asm-generic/int-ll64.h> |
8 | 7 | ||
diff --git a/include/uapi/drm/drm.h b/include/uapi/drm/drm.h index 9b24d65fed72..3c9a833992e8 100644 --- a/include/uapi/drm/drm.h +++ b/include/uapi/drm/drm.h | |||
@@ -181,7 +181,6 @@ enum drm_map_type { | |||
181 | _DRM_AGP = 3, /**< AGP/GART */ | 181 | _DRM_AGP = 3, /**< AGP/GART */ |
182 | _DRM_SCATTER_GATHER = 4, /**< Scatter/gather memory for PCI DMA */ | 182 | _DRM_SCATTER_GATHER = 4, /**< Scatter/gather memory for PCI DMA */ |
183 | _DRM_CONSISTENT = 5, /**< Consistent memory for PCI DMA */ | 183 | _DRM_CONSISTENT = 5, /**< Consistent memory for PCI DMA */ |
184 | _DRM_GEM = 6, /**< GEM object (obsolete) */ | ||
185 | }; | 184 | }; |
186 | 185 | ||
187 | /** | 186 | /** |
diff --git a/include/uapi/drm/i915_drm.h b/include/uapi/drm/i915_drm.h index 3a4e97bd8607..126bfaa8bb6b 100644 --- a/include/uapi/drm/i915_drm.h +++ b/include/uapi/drm/i915_drm.h | |||
@@ -222,6 +222,7 @@ typedef struct _drm_i915_sarea { | |||
222 | #define DRM_I915_GEM_SET_CACHING 0x2f | 222 | #define DRM_I915_GEM_SET_CACHING 0x2f |
223 | #define DRM_I915_GEM_GET_CACHING 0x30 | 223 | #define DRM_I915_GEM_GET_CACHING 0x30 |
224 | #define DRM_I915_REG_READ 0x31 | 224 | #define DRM_I915_REG_READ 0x31 |
225 | #define DRM_I915_GET_RESET_STATS 0x32 | ||
225 | 226 | ||
226 | #define DRM_IOCTL_I915_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t) | 227 | #define DRM_IOCTL_I915_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t) |
227 | #define DRM_IOCTL_I915_FLUSH DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH) | 228 | #define DRM_IOCTL_I915_FLUSH DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH) |
@@ -271,6 +272,7 @@ typedef struct _drm_i915_sarea { | |||
271 | #define DRM_IOCTL_I915_GEM_CONTEXT_CREATE DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_CREATE, struct drm_i915_gem_context_create) | 272 | #define DRM_IOCTL_I915_GEM_CONTEXT_CREATE DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_CREATE, struct drm_i915_gem_context_create) |
272 | #define DRM_IOCTL_I915_GEM_CONTEXT_DESTROY DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_DESTROY, struct drm_i915_gem_context_destroy) | 273 | #define DRM_IOCTL_I915_GEM_CONTEXT_DESTROY DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_DESTROY, struct drm_i915_gem_context_destroy) |
273 | #define DRM_IOCTL_I915_REG_READ DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_REG_READ, struct drm_i915_reg_read) | 274 | #define DRM_IOCTL_I915_REG_READ DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_REG_READ, struct drm_i915_reg_read) |
275 | #define DRM_IOCTL_I915_GET_RESET_STATS DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GET_RESET_STATS, struct drm_i915_reset_stats) | ||
274 | 276 | ||
275 | /* Allow drivers to submit batchbuffers directly to hardware, relying | 277 | /* Allow drivers to submit batchbuffers directly to hardware, relying |
276 | * on the security mechanisms provided by hardware. | 278 | * on the security mechanisms provided by hardware. |
@@ -719,7 +721,7 @@ struct drm_i915_gem_execbuffer2 { | |||
719 | */ | 721 | */ |
720 | #define I915_EXEC_IS_PINNED (1<<10) | 722 | #define I915_EXEC_IS_PINNED (1<<10) |
721 | 723 | ||
722 | /** Provide a hint to the kernel that the command stream and auxilliary | 724 | /** Provide a hint to the kernel that the command stream and auxiliary |
723 | * state buffers already holds the correct presumed addresses and so the | 725 | * state buffers already holds the correct presumed addresses and so the |
724 | * relocation process may be skipped if no buffers need to be moved in | 726 | * relocation process may be skipped if no buffers need to be moved in |
725 | * preparation for the execbuffer. | 727 | * preparation for the execbuffer. |
@@ -1030,4 +1032,21 @@ struct drm_i915_reg_read { | |||
1030 | __u64 offset; | 1032 | __u64 offset; |
1031 | __u64 val; /* Return value */ | 1033 | __u64 val; /* Return value */ |
1032 | }; | 1034 | }; |
1035 | |||
1036 | struct drm_i915_reset_stats { | ||
1037 | __u32 ctx_id; | ||
1038 | __u32 flags; | ||
1039 | |||
1040 | /* All resets since boot/module reload, for all contexts */ | ||
1041 | __u32 reset_count; | ||
1042 | |||
1043 | /* Number of batches lost when active in GPU, for this context */ | ||
1044 | __u32 batch_active; | ||
1045 | |||
1046 | /* Number of batches lost pending for execution, for this context */ | ||
1047 | __u32 batch_pending; | ||
1048 | |||
1049 | __u32 pad; | ||
1050 | }; | ||
1051 | |||
1033 | #endif /* _UAPI_I915_DRM_H_ */ | 1052 | #endif /* _UAPI_I915_DRM_H_ */ |
diff --git a/include/uapi/drm/radeon_drm.h b/include/uapi/drm/radeon_drm.h index 2f3f7ea8c77b..d9ea3a73afe2 100644 --- a/include/uapi/drm/radeon_drm.h +++ b/include/uapi/drm/radeon_drm.h | |||
@@ -983,6 +983,10 @@ struct drm_radeon_cs { | |||
983 | #define RADEON_INFO_SI_CP_DMA_COMPUTE 0x17 | 983 | #define RADEON_INFO_SI_CP_DMA_COMPUTE 0x17 |
984 | /* CIK macrotile mode array */ | 984 | /* CIK macrotile mode array */ |
985 | #define RADEON_INFO_CIK_MACROTILE_MODE_ARRAY 0x18 | 985 | #define RADEON_INFO_CIK_MACROTILE_MODE_ARRAY 0x18 |
986 | /* query the number of render backends */ | ||
987 | #define RADEON_INFO_SI_BACKEND_ENABLED_MASK 0x19 | ||
988 | /* max engine clock - needed for OpenCL */ | ||
989 | #define RADEON_INFO_MAX_SCLK 0x1a | ||
986 | 990 | ||
987 | 991 | ||
988 | struct drm_radeon_info { | 992 | struct drm_radeon_info { |
diff --git a/include/uapi/drm/vmwgfx_drm.h b/include/uapi/drm/vmwgfx_drm.h index bcb0912afe7a..9971c560ed9a 100644 --- a/include/uapi/drm/vmwgfx_drm.h +++ b/include/uapi/drm/vmwgfx_drm.h | |||
@@ -28,6 +28,10 @@ | |||
28 | #ifndef __VMWGFX_DRM_H__ | 28 | #ifndef __VMWGFX_DRM_H__ |
29 | #define __VMWGFX_DRM_H__ | 29 | #define __VMWGFX_DRM_H__ |
30 | 30 | ||
31 | #ifndef __KERNEL__ | ||
32 | #include <drm.h> | ||
33 | #endif | ||
34 | |||
31 | #define DRM_VMW_MAX_SURFACE_FACES 6 | 35 | #define DRM_VMW_MAX_SURFACE_FACES 6 |
32 | #define DRM_VMW_MAX_MIP_LEVELS 24 | 36 | #define DRM_VMW_MAX_MIP_LEVELS 24 |
33 | 37 | ||
@@ -55,6 +59,11 @@ | |||
55 | #define DRM_VMW_PRESENT 18 | 59 | #define DRM_VMW_PRESENT 18 |
56 | #define DRM_VMW_PRESENT_READBACK 19 | 60 | #define DRM_VMW_PRESENT_READBACK 19 |
57 | #define DRM_VMW_UPDATE_LAYOUT 20 | 61 | #define DRM_VMW_UPDATE_LAYOUT 20 |
62 | #define DRM_VMW_CREATE_SHADER 21 | ||
63 | #define DRM_VMW_UNREF_SHADER 22 | ||
64 | #define DRM_VMW_GB_SURFACE_CREATE 23 | ||
65 | #define DRM_VMW_GB_SURFACE_REF 24 | ||
66 | #define DRM_VMW_SYNCCPU 25 | ||
58 | 67 | ||
59 | /*************************************************************************/ | 68 | /*************************************************************************/ |
60 | /** | 69 | /** |
@@ -75,6 +84,9 @@ | |||
75 | #define DRM_VMW_PARAM_FIFO_CAPS 4 | 84 | #define DRM_VMW_PARAM_FIFO_CAPS 4 |
76 | #define DRM_VMW_PARAM_MAX_FB_SIZE 5 | 85 | #define DRM_VMW_PARAM_MAX_FB_SIZE 5 |
77 | #define DRM_VMW_PARAM_FIFO_HW_VERSION 6 | 86 | #define DRM_VMW_PARAM_FIFO_HW_VERSION 6 |
87 | #define DRM_VMW_PARAM_MAX_SURF_MEMORY 7 | ||
88 | #define DRM_VMW_PARAM_3D_CAPS_SIZE 8 | ||
89 | #define DRM_VMW_PARAM_MAX_MOB_MEMORY 9 | ||
78 | 90 | ||
79 | /** | 91 | /** |
80 | * struct drm_vmw_getparam_arg | 92 | * struct drm_vmw_getparam_arg |
@@ -787,4 +799,253 @@ struct drm_vmw_update_layout_arg { | |||
787 | uint64_t rects; | 799 | uint64_t rects; |
788 | }; | 800 | }; |
789 | 801 | ||
802 | |||
803 | /*************************************************************************/ | ||
804 | /** | ||
805 | * DRM_VMW_CREATE_SHADER - Create shader | ||
806 | * | ||
807 | * Creates a shader and optionally binds it to a dma buffer containing | ||
808 | * the shader byte-code. | ||
809 | */ | ||
810 | |||
811 | /** | ||
812 | * enum drm_vmw_shader_type - Shader types | ||
813 | */ | ||
814 | enum drm_vmw_shader_type { | ||
815 | drm_vmw_shader_type_vs = 0, | ||
816 | drm_vmw_shader_type_ps, | ||
817 | drm_vmw_shader_type_gs | ||
818 | }; | ||
819 | |||
820 | |||
821 | /** | ||
822 | * struct drm_vmw_shader_create_arg | ||
823 | * | ||
824 | * @shader_type: Shader type of the shader to create. | ||
825 | * @size: Size of the byte-code in bytes. | ||
826 | * where the shader byte-code starts | ||
827 | * @buffer_handle: Buffer handle identifying the buffer containing the | ||
828 | * shader byte-code | ||
829 | * @shader_handle: On successful completion contains a handle that | ||
830 | * can be used to subsequently identify the shader. | ||
831 | * @offset: Offset in bytes into the buffer given by @buffer_handle, | ||
832 | * | ||
833 | * Input / Output argument to the DRM_VMW_CREATE_SHADER Ioctl. | ||
834 | */ | ||
835 | struct drm_vmw_shader_create_arg { | ||
836 | enum drm_vmw_shader_type shader_type; | ||
837 | uint32_t size; | ||
838 | uint32_t buffer_handle; | ||
839 | uint32_t shader_handle; | ||
840 | uint64_t offset; | ||
841 | }; | ||
842 | |||
843 | /*************************************************************************/ | ||
844 | /** | ||
845 | * DRM_VMW_UNREF_SHADER - Unreferences a shader | ||
846 | * | ||
847 | * Destroys a user-space reference to a shader, optionally destroying | ||
848 | * it. | ||
849 | */ | ||
850 | |||
851 | /** | ||
852 | * struct drm_vmw_shader_arg | ||
853 | * | ||
854 | * @handle: Handle identifying the shader to destroy. | ||
855 | * | ||
856 | * Input argument to the DRM_VMW_UNREF_SHADER ioctl. | ||
857 | */ | ||
858 | struct drm_vmw_shader_arg { | ||
859 | uint32_t handle; | ||
860 | uint32_t pad64; | ||
861 | }; | ||
862 | |||
863 | /*************************************************************************/ | ||
864 | /** | ||
865 | * DRM_VMW_GB_SURFACE_CREATE - Create a host guest-backed surface. | ||
866 | * | ||
867 | * Allocates a surface handle and queues a create surface command | ||
868 | * for the host on the first use of the surface. The surface ID can | ||
869 | * be used as the surface ID in commands referencing the surface. | ||
870 | */ | ||
871 | |||
872 | /** | ||
873 | * enum drm_vmw_surface_flags | ||
874 | * | ||
875 | * @drm_vmw_surface_flag_shareable: Whether the surface is shareable | ||
876 | * @drm_vmw_surface_flag_scanout: Whether the surface is a scanout | ||
877 | * surface. | ||
878 | * @drm_vmw_surface_flag_create_buffer: Create a backup buffer if none is | ||
879 | * given. | ||
880 | */ | ||
881 | enum drm_vmw_surface_flags { | ||
882 | drm_vmw_surface_flag_shareable = (1 << 0), | ||
883 | drm_vmw_surface_flag_scanout = (1 << 1), | ||
884 | drm_vmw_surface_flag_create_buffer = (1 << 2) | ||
885 | }; | ||
886 | |||
887 | /** | ||
888 | * struct drm_vmw_gb_surface_create_req | ||
889 | * | ||
890 | * @svga3d_flags: SVGA3d surface flags for the device. | ||
891 | * @format: SVGA3d format. | ||
892 | * @mip_level: Number of mip levels for all faces. | ||
893 | * @drm_surface_flags Flags as described above. | ||
894 | * @multisample_count Future use. Set to 0. | ||
895 | * @autogen_filter Future use. Set to 0. | ||
896 | * @buffer_handle Buffer handle of backup buffer. SVGA3D_INVALID_ID | ||
897 | * if none. | ||
898 | * @base_size Size of the base mip level for all faces. | ||
899 | * | ||
900 | * Input argument to the DRM_VMW_GB_SURFACE_CREATE Ioctl. | ||
901 | * Part of output argument for the DRM_VMW_GB_SURFACE_REF Ioctl. | ||
902 | */ | ||
903 | struct drm_vmw_gb_surface_create_req { | ||
904 | uint32_t svga3d_flags; | ||
905 | uint32_t format; | ||
906 | uint32_t mip_levels; | ||
907 | enum drm_vmw_surface_flags drm_surface_flags; | ||
908 | uint32_t multisample_count; | ||
909 | uint32_t autogen_filter; | ||
910 | uint32_t buffer_handle; | ||
911 | uint32_t pad64; | ||
912 | struct drm_vmw_size base_size; | ||
913 | }; | ||
914 | |||
915 | /** | ||
916 | * struct drm_vmw_gb_surface_create_rep | ||
917 | * | ||
918 | * @handle: Surface handle. | ||
919 | * @backup_size: Size of backup buffers for this surface. | ||
920 | * @buffer_handle: Handle of backup buffer. SVGA3D_INVALID_ID if none. | ||
921 | * @buffer_size: Actual size of the buffer identified by | ||
922 | * @buffer_handle | ||
923 | * @buffer_map_handle: Offset into device address space for the buffer | ||
924 | * identified by @buffer_handle. | ||
925 | * | ||
926 | * Part of output argument for the DRM_VMW_GB_SURFACE_REF ioctl. | ||
927 | * Output argument for the DRM_VMW_GB_SURFACE_CREATE ioctl. | ||
928 | */ | ||
929 | struct drm_vmw_gb_surface_create_rep { | ||
930 | uint32_t handle; | ||
931 | uint32_t backup_size; | ||
932 | uint32_t buffer_handle; | ||
933 | uint32_t buffer_size; | ||
934 | uint64_t buffer_map_handle; | ||
935 | }; | ||
936 | |||
937 | /** | ||
938 | * union drm_vmw_gb_surface_create_arg | ||
939 | * | ||
940 | * @req: Input argument as described above. | ||
941 | * @rep: Output argument as described above. | ||
942 | * | ||
943 | * Argument to the DRM_VMW_GB_SURFACE_CREATE ioctl. | ||
944 | */ | ||
945 | union drm_vmw_gb_surface_create_arg { | ||
946 | struct drm_vmw_gb_surface_create_rep rep; | ||
947 | struct drm_vmw_gb_surface_create_req req; | ||
948 | }; | ||
949 | |||
950 | /*************************************************************************/ | ||
951 | /** | ||
952 | * DRM_VMW_GB_SURFACE_REF - Reference a host surface. | ||
953 | * | ||
954 | * Puts a reference on a host surface with a given handle, as previously | ||
955 | * returned by the DRM_VMW_GB_SURFACE_CREATE ioctl. | ||
956 | * A reference will make sure the surface isn't destroyed while we hold | ||
957 | * it and will allow the calling client to use the surface handle in | ||
958 | * the command stream. | ||
959 | * | ||
960 | * On successful return, the Ioctl returns the surface information given | ||
961 | * to and returned from the DRM_VMW_GB_SURFACE_CREATE ioctl. | ||
962 | */ | ||
963 | |||
964 | /** | ||
965 | * struct drm_vmw_gb_surface_reference_arg | ||
966 | * | ||
967 | * @creq: The data used as input when the surface was created, as described | ||
968 | * above at "struct drm_vmw_gb_surface_create_req" | ||
969 | * @crep: Additional data output when the surface was created, as described | ||
970 | * above at "struct drm_vmw_gb_surface_create_rep" | ||
971 | * | ||
972 | * Output Argument to the DRM_VMW_GB_SURFACE_REF ioctl. | ||
973 | */ | ||
974 | struct drm_vmw_gb_surface_ref_rep { | ||
975 | struct drm_vmw_gb_surface_create_req creq; | ||
976 | struct drm_vmw_gb_surface_create_rep crep; | ||
977 | }; | ||
978 | |||
979 | /** | ||
980 | * union drm_vmw_gb_surface_reference_arg | ||
981 | * | ||
982 | * @req: Input data as described above at "struct drm_vmw_surface_arg" | ||
983 | * @rep: Output data as described above at "struct drm_vmw_gb_surface_ref_rep" | ||
984 | * | ||
985 | * Argument to the DRM_VMW_GB_SURFACE_REF Ioctl. | ||
986 | */ | ||
987 | union drm_vmw_gb_surface_reference_arg { | ||
988 | struct drm_vmw_gb_surface_ref_rep rep; | ||
989 | struct drm_vmw_surface_arg req; | ||
990 | }; | ||
991 | |||
992 | |||
993 | /*************************************************************************/ | ||
994 | /** | ||
995 | * DRM_VMW_SYNCCPU - Sync a DMA buffer / MOB for CPU access. | ||
996 | * | ||
997 | * Idles any previously submitted GPU operations on the buffer and | ||
998 | * by default blocks command submissions that reference the buffer. | ||
999 | * If the file descriptor used to grab a blocking CPU sync is closed, the | ||
1000 | * cpu sync is released. | ||
1001 | * The flags argument indicates how the grab / release operation should be | ||
1002 | * performed: | ||
1003 | */ | ||
1004 | |||
1005 | /** | ||
1006 | * enum drm_vmw_synccpu_flags - Synccpu flags: | ||
1007 | * | ||
1008 | * @drm_vmw_synccpu_read: Sync for read. If sync is done for read only, it's a | ||
1009 | * hint to the kernel to allow command submissions that references the buffer | ||
1010 | * for read-only. | ||
1011 | * @drm_vmw_synccpu_write: Sync for write. Block all command submissions | ||
1012 | * referencing this buffer. | ||
1013 | * @drm_vmw_synccpu_dontblock: Dont wait for GPU idle, but rather return | ||
1014 | * -EBUSY should the buffer be busy. | ||
1015 | * @drm_vmw_synccpu_allow_cs: Allow command submission that touches the buffer | ||
1016 | * while the buffer is synced for CPU. This is similar to the GEM bo idle | ||
1017 | * behavior. | ||
1018 | */ | ||
1019 | enum drm_vmw_synccpu_flags { | ||
1020 | drm_vmw_synccpu_read = (1 << 0), | ||
1021 | drm_vmw_synccpu_write = (1 << 1), | ||
1022 | drm_vmw_synccpu_dontblock = (1 << 2), | ||
1023 | drm_vmw_synccpu_allow_cs = (1 << 3) | ||
1024 | }; | ||
1025 | |||
1026 | /** | ||
1027 | * enum drm_vmw_synccpu_op - Synccpu operations: | ||
1028 | * | ||
1029 | * @drm_vmw_synccpu_grab: Grab the buffer for CPU operations | ||
1030 | * @drm_vmw_synccpu_release: Release a previous grab. | ||
1031 | */ | ||
1032 | enum drm_vmw_synccpu_op { | ||
1033 | drm_vmw_synccpu_grab, | ||
1034 | drm_vmw_synccpu_release | ||
1035 | }; | ||
1036 | |||
1037 | /** | ||
1038 | * struct drm_vmw_synccpu_arg | ||
1039 | * | ||
1040 | * @op: The synccpu operation as described above. | ||
1041 | * @handle: Handle identifying the buffer object. | ||
1042 | * @flags: Flags as described above. | ||
1043 | */ | ||
1044 | struct drm_vmw_synccpu_arg { | ||
1045 | enum drm_vmw_synccpu_op op; | ||
1046 | enum drm_vmw_synccpu_flags flags; | ||
1047 | uint32_t handle; | ||
1048 | uint32_t pad64; | ||
1049 | }; | ||
1050 | |||
790 | #endif | 1051 | #endif |
diff --git a/include/uapi/linux/Kbuild b/include/uapi/linux/Kbuild index 33d2b8fe166d..3ce25b5d75a9 100644 --- a/include/uapi/linux/Kbuild +++ b/include/uapi/linux/Kbuild | |||
@@ -426,3 +426,5 @@ header-y += x25.h | |||
426 | header-y += xattr.h | 426 | header-y += xattr.h |
427 | header-y += xfrm.h | 427 | header-y += xfrm.h |
428 | header-y += hw_breakpoint.h | 428 | header-y += hw_breakpoint.h |
429 | header-y += zorro.h | ||
430 | header-y += zorro_ids.h | ||
diff --git a/include/uapi/linux/apm_bios.h b/include/uapi/linux/apm_bios.h index 724f409adae0..df79bca1b898 100644 --- a/include/uapi/linux/apm_bios.h +++ b/include/uapi/linux/apm_bios.h | |||
@@ -67,6 +67,8 @@ struct apm_bios_info { | |||
67 | #define APM_USER_SUSPEND 0x000a | 67 | #define APM_USER_SUSPEND 0x000a |
68 | #define APM_STANDBY_RESUME 0x000b | 68 | #define APM_STANDBY_RESUME 0x000b |
69 | #define APM_CAPABILITY_CHANGE 0x000c | 69 | #define APM_CAPABILITY_CHANGE 0x000c |
70 | #define APM_USER_HIBERNATION 0x000d | ||
71 | #define APM_HIBERNATION_RESUME 0x000e | ||
70 | 72 | ||
71 | /* | 73 | /* |
72 | * Error codes | 74 | * Error codes |
diff --git a/include/uapi/linux/audit.h b/include/uapi/linux/audit.h index 44b05a09f193..2d48fe1274ca 100644 --- a/include/uapi/linux/audit.h +++ b/include/uapi/linux/audit.h | |||
@@ -319,6 +319,12 @@ enum { | |||
319 | #define AUDIT_STATUS_PID 0x0004 | 319 | #define AUDIT_STATUS_PID 0x0004 |
320 | #define AUDIT_STATUS_RATE_LIMIT 0x0008 | 320 | #define AUDIT_STATUS_RATE_LIMIT 0x0008 |
321 | #define AUDIT_STATUS_BACKLOG_LIMIT 0x0010 | 321 | #define AUDIT_STATUS_BACKLOG_LIMIT 0x0010 |
322 | #define AUDIT_STATUS_BACKLOG_WAIT_TIME 0x0020 | ||
323 | |||
324 | #define AUDIT_VERSION_BACKLOG_LIMIT 1 | ||
325 | #define AUDIT_VERSION_BACKLOG_WAIT_TIME 2 | ||
326 | #define AUDIT_VERSION_LATEST AUDIT_VERSION_BACKLOG_WAIT_TIME | ||
327 | |||
322 | /* Failure-to-log actions */ | 328 | /* Failure-to-log actions */ |
323 | #define AUDIT_FAIL_SILENT 0 | 329 | #define AUDIT_FAIL_SILENT 0 |
324 | #define AUDIT_FAIL_PRINTK 1 | 330 | #define AUDIT_FAIL_PRINTK 1 |
@@ -375,6 +381,8 @@ struct audit_status { | |||
375 | __u32 backlog_limit; /* waiting messages limit */ | 381 | __u32 backlog_limit; /* waiting messages limit */ |
376 | __u32 lost; /* messages lost */ | 382 | __u32 lost; /* messages lost */ |
377 | __u32 backlog; /* messages waiting in queue */ | 383 | __u32 backlog; /* messages waiting in queue */ |
384 | __u32 version; /* audit api version number */ | ||
385 | __u32 backlog_wait_time;/* message queue wait timeout */ | ||
378 | }; | 386 | }; |
379 | 387 | ||
380 | struct audit_features { | 388 | struct audit_features { |
diff --git a/include/uapi/linux/bcache.h b/include/uapi/linux/bcache.h index 164a7e263988..22b6ad31c706 100644 --- a/include/uapi/linux/bcache.h +++ b/include/uapi/linux/bcache.h | |||
@@ -39,6 +39,7 @@ static inline void SET_##name(struct bkey *k, unsigned i, __u64 v) \ | |||
39 | } | 39 | } |
40 | 40 | ||
41 | #define KEY_SIZE_BITS 16 | 41 | #define KEY_SIZE_BITS 16 |
42 | #define KEY_MAX_U64S 8 | ||
42 | 43 | ||
43 | KEY_FIELD(KEY_PTRS, high, 60, 3) | 44 | KEY_FIELD(KEY_PTRS, high, 60, 3) |
44 | KEY_FIELD(HEADER_SIZE, high, 58, 2) | 45 | KEY_FIELD(HEADER_SIZE, high, 58, 2) |
@@ -118,7 +119,7 @@ static inline struct bkey *bkey_next(const struct bkey *k) | |||
118 | return (struct bkey *) (d + bkey_u64s(k)); | 119 | return (struct bkey *) (d + bkey_u64s(k)); |
119 | } | 120 | } |
120 | 121 | ||
121 | static inline struct bkey *bkey_last(const struct bkey *k, unsigned nr_keys) | 122 | static inline struct bkey *bkey_idx(const struct bkey *k, unsigned nr_keys) |
122 | { | 123 | { |
123 | __u64 *d = (void *) k; | 124 | __u64 *d = (void *) k; |
124 | return (struct bkey *) (d + nr_keys); | 125 | return (struct bkey *) (d + nr_keys); |
diff --git a/include/uapi/linux/btrfs.h b/include/uapi/linux/btrfs.h index 45e618921c61..1b8a0f4c9590 100644 --- a/include/uapi/linux/btrfs.h +++ b/include/uapi/linux/btrfs.h | |||
@@ -184,6 +184,12 @@ struct btrfs_ioctl_fs_info_args { | |||
184 | __u64 reserved[124]; /* pad to 1k */ | 184 | __u64 reserved[124]; /* pad to 1k */ |
185 | }; | 185 | }; |
186 | 186 | ||
187 | struct btrfs_ioctl_feature_flags { | ||
188 | __u64 compat_flags; | ||
189 | __u64 compat_ro_flags; | ||
190 | __u64 incompat_flags; | ||
191 | }; | ||
192 | |||
187 | /* balance control ioctl modes */ | 193 | /* balance control ioctl modes */ |
188 | #define BTRFS_BALANCE_CTL_PAUSE 1 | 194 | #define BTRFS_BALANCE_CTL_PAUSE 1 |
189 | #define BTRFS_BALANCE_CTL_CANCEL 2 | 195 | #define BTRFS_BALANCE_CTL_CANCEL 2 |
@@ -552,6 +558,7 @@ static inline char *btrfs_err_str(enum btrfs_err_code err_code) | |||
552 | #define BTRFS_IOC_DEFAULT_SUBVOL _IOW(BTRFS_IOCTL_MAGIC, 19, __u64) | 558 | #define BTRFS_IOC_DEFAULT_SUBVOL _IOW(BTRFS_IOCTL_MAGIC, 19, __u64) |
553 | #define BTRFS_IOC_SPACE_INFO _IOWR(BTRFS_IOCTL_MAGIC, 20, \ | 559 | #define BTRFS_IOC_SPACE_INFO _IOWR(BTRFS_IOCTL_MAGIC, 20, \ |
554 | struct btrfs_ioctl_space_args) | 560 | struct btrfs_ioctl_space_args) |
561 | #define BTRFS_IOC_GLOBAL_RSV _IOR(BTRFS_IOCTL_MAGIC, 20, __u64) | ||
555 | #define BTRFS_IOC_START_SYNC _IOR(BTRFS_IOCTL_MAGIC, 24, __u64) | 562 | #define BTRFS_IOC_START_SYNC _IOR(BTRFS_IOCTL_MAGIC, 24, __u64) |
556 | #define BTRFS_IOC_WAIT_SYNC _IOW(BTRFS_IOCTL_MAGIC, 22, __u64) | 563 | #define BTRFS_IOC_WAIT_SYNC _IOW(BTRFS_IOCTL_MAGIC, 22, __u64) |
557 | #define BTRFS_IOC_SNAP_CREATE_V2 _IOW(BTRFS_IOCTL_MAGIC, 23, \ | 564 | #define BTRFS_IOC_SNAP_CREATE_V2 _IOW(BTRFS_IOCTL_MAGIC, 23, \ |
@@ -606,5 +613,11 @@ static inline char *btrfs_err_str(enum btrfs_err_code err_code) | |||
606 | struct btrfs_ioctl_dev_replace_args) | 613 | struct btrfs_ioctl_dev_replace_args) |
607 | #define BTRFS_IOC_FILE_EXTENT_SAME _IOWR(BTRFS_IOCTL_MAGIC, 54, \ | 614 | #define BTRFS_IOC_FILE_EXTENT_SAME _IOWR(BTRFS_IOCTL_MAGIC, 54, \ |
608 | struct btrfs_ioctl_same_args) | 615 | struct btrfs_ioctl_same_args) |
616 | #define BTRFS_IOC_GET_FEATURES _IOR(BTRFS_IOCTL_MAGIC, 57, \ | ||
617 | struct btrfs_ioctl_feature_flags) | ||
618 | #define BTRFS_IOC_SET_FEATURES _IOW(BTRFS_IOCTL_MAGIC, 57, \ | ||
619 | struct btrfs_ioctl_feature_flags[2]) | ||
620 | #define BTRFS_IOC_GET_SUPPORTED_FEATURES _IOR(BTRFS_IOCTL_MAGIC, 57, \ | ||
621 | struct btrfs_ioctl_feature_flags[3]) | ||
609 | 622 | ||
610 | #endif /* _UAPI_LINUX_BTRFS_H */ | 623 | #endif /* _UAPI_LINUX_BTRFS_H */ |
diff --git a/include/uapi/linux/dm-log-userspace.h b/include/uapi/linux/dm-log-userspace.h index 0678c2adc421..0fa0d9ef06a5 100644 --- a/include/uapi/linux/dm-log-userspace.h +++ b/include/uapi/linux/dm-log-userspace.h | |||
@@ -201,11 +201,18 @@ | |||
201 | * int (*flush)(struct dm_dirty_log *log); | 201 | * int (*flush)(struct dm_dirty_log *log); |
202 | * | 202 | * |
203 | * Payload-to-userspace: | 203 | * Payload-to-userspace: |
204 | * None. | 204 | * If the 'integrated_flush' directive is present in the constructor |
205 | * table, the payload is as same as DM_ULOG_MARK_REGION: | ||
206 | * uint64_t [] - region(s) to mark | ||
207 | * else | ||
208 | * None | ||
205 | * Payload-to-kernel: | 209 | * Payload-to-kernel: |
206 | * None. | 210 | * None. |
207 | * | 211 | * |
208 | * No incoming or outgoing payload. Simply flush log state to disk. | 212 | * If the 'integrated_flush' option was used during the creation of the |
213 | * log, mark region requests are carried as payload in the flush request. | ||
214 | * Piggybacking the mark requests in this way allows for fewer communications | ||
215 | * between kernel and userspace. | ||
209 | * | 216 | * |
210 | * When the request has been processed, user-space must return the | 217 | * When the request has been processed, user-space must return the |
211 | * dm_ulog_request to the kernel - setting the 'error' field and clearing | 218 | * dm_ulog_request to the kernel - setting the 'error' field and clearing |
@@ -385,8 +392,15 @@ | |||
385 | * version 2: DM_ULOG_CTR allowed to return a string containing a | 392 | * version 2: DM_ULOG_CTR allowed to return a string containing a |
386 | * device name that is to be registered with DM via | 393 | * device name that is to be registered with DM via |
387 | * 'dm_get_device'. | 394 | * 'dm_get_device'. |
395 | * version 3: DM_ULOG_FLUSH is capable of carrying payload for marking | ||
396 | * regions. This "integrated flush" reduces the number of | ||
397 | * requests between the kernel and userspace by effectively | ||
398 | * merging 'mark' and 'flush' requests. A constructor table | ||
399 | * argument ('integrated_flush') is required to turn this | ||
400 | * feature on, so it is backwards compatible with older | ||
401 | * userspace versions. | ||
388 | */ | 402 | */ |
389 | #define DM_ULOG_REQUEST_VERSION 2 | 403 | #define DM_ULOG_REQUEST_VERSION 3 |
390 | 404 | ||
391 | struct dm_ulog_request { | 405 | struct dm_ulog_request { |
392 | /* | 406 | /* |
diff --git a/include/uapi/linux/dn.h b/include/uapi/linux/dn.h index 5fbdd3d49eba..4295c745f342 100644 --- a/include/uapi/linux/dn.h +++ b/include/uapi/linux/dn.h | |||
@@ -1,6 +1,7 @@ | |||
1 | #ifndef _LINUX_DN_H | 1 | #ifndef _LINUX_DN_H |
2 | #define _LINUX_DN_H | 2 | #define _LINUX_DN_H |
3 | 3 | ||
4 | #include <linux/ioctl.h> | ||
4 | #include <linux/types.h> | 5 | #include <linux/types.h> |
5 | #include <linux/if_ether.h> | 6 | #include <linux/if_ether.h> |
6 | 7 | ||
diff --git a/include/uapi/linux/eventpoll.h b/include/uapi/linux/eventpoll.h index 2c267bcbb85c..bc81fb2e1f0e 100644 --- a/include/uapi/linux/eventpoll.h +++ b/include/uapi/linux/eventpoll.h | |||
@@ -61,5 +61,16 @@ struct epoll_event { | |||
61 | __u64 data; | 61 | __u64 data; |
62 | } EPOLL_PACKED; | 62 | } EPOLL_PACKED; |
63 | 63 | ||
64 | 64 | #ifdef CONFIG_PM_SLEEP | |
65 | static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) | ||
66 | { | ||
67 | if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) | ||
68 | epev->events &= ~EPOLLWAKEUP; | ||
69 | } | ||
70 | #else | ||
71 | static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) | ||
72 | { | ||
73 | epev->events &= ~EPOLLWAKEUP; | ||
74 | } | ||
75 | #endif | ||
65 | #endif /* _UAPI_LINUX_EVENTPOLL_H */ | 76 | #endif /* _UAPI_LINUX_EVENTPOLL_H */ |
diff --git a/include/uapi/linux/fd.h b/include/uapi/linux/fd.h index f1f3dd5981b2..84c517cbce90 100644 --- a/include/uapi/linux/fd.h +++ b/include/uapi/linux/fd.h | |||
@@ -185,7 +185,8 @@ enum { | |||
185 | * to clear media change status */ | 185 | * to clear media change status */ |
186 | FD_UNUSED_BIT, | 186 | FD_UNUSED_BIT, |
187 | FD_DISK_CHANGED_BIT, /* disk has been changed since last i/o */ | 187 | FD_DISK_CHANGED_BIT, /* disk has been changed since last i/o */ |
188 | FD_DISK_WRITABLE_BIT /* disk is writable */ | 188 | FD_DISK_WRITABLE_BIT, /* disk is writable */ |
189 | FD_OPEN_SHOULD_FAIL_BIT | ||
189 | }; | 190 | }; |
190 | 191 | ||
191 | #define FDSETDRVPRM _IOW(2, 0x90, struct floppy_drive_params) | 192 | #define FDSETDRVPRM _IOW(2, 0x90, struct floppy_drive_params) |
diff --git a/include/uapi/linux/genetlink.h b/include/uapi/linux/genetlink.h index 1af72d8228e0..c3363ba1ae05 100644 --- a/include/uapi/linux/genetlink.h +++ b/include/uapi/linux/genetlink.h | |||
@@ -28,6 +28,7 @@ struct genlmsghdr { | |||
28 | #define GENL_ID_GENERATE 0 | 28 | #define GENL_ID_GENERATE 0 |
29 | #define GENL_ID_CTRL NLMSG_MIN_TYPE | 29 | #define GENL_ID_CTRL NLMSG_MIN_TYPE |
30 | #define GENL_ID_VFS_DQUOT (NLMSG_MIN_TYPE + 1) | 30 | #define GENL_ID_VFS_DQUOT (NLMSG_MIN_TYPE + 1) |
31 | #define GENL_ID_PMCRAID (NLMSG_MIN_TYPE + 2) | ||
31 | 32 | ||
32 | /************************************************************************** | 33 | /************************************************************************** |
33 | * Controller | 34 | * Controller |
diff --git a/include/uapi/linux/genwqe/genwqe_card.h b/include/uapi/linux/genwqe/genwqe_card.h new file mode 100644 index 000000000000..795e957bb840 --- /dev/null +++ b/include/uapi/linux/genwqe/genwqe_card.h | |||
@@ -0,0 +1,500 @@ | |||
1 | #ifndef __GENWQE_CARD_H__ | ||
2 | #define __GENWQE_CARD_H__ | ||
3 | |||
4 | /** | ||
5 | * IBM Accelerator Family 'GenWQE' | ||
6 | * | ||
7 | * (C) Copyright IBM Corp. 2013 | ||
8 | * | ||
9 | * Author: Frank Haverkamp <haver@linux.vnet.ibm.com> | ||
10 | * Author: Joerg-Stephan Vogt <jsvogt@de.ibm.com> | ||
11 | * Author: Michael Jung <mijung@de.ibm.com> | ||
12 | * Author: Michael Ruettger <michael@ibmra.de> | ||
13 | * | ||
14 | * This program is free software; you can redistribute it and/or modify | ||
15 | * it under the terms of the GNU General Public License (version 2 only) | ||
16 | * as published by the Free Software Foundation. | ||
17 | * | ||
18 | * This program is distributed in the hope that it will be useful, | ||
19 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
20 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
21 | * GNU General Public License for more details. | ||
22 | */ | ||
23 | |||
24 | /* | ||
25 | * User-space API for the GenWQE card. For debugging and test purposes | ||
26 | * the register addresses are included here too. | ||
27 | */ | ||
28 | |||
29 | #include <linux/types.h> | ||
30 | #include <linux/ioctl.h> | ||
31 | |||
32 | /* Basename of sysfs, debugfs and /dev interfaces */ | ||
33 | #define GENWQE_DEVNAME "genwqe" | ||
34 | |||
35 | #define GENWQE_TYPE_ALTERA_230 0x00 /* GenWQE4 Stratix-IV-230 */ | ||
36 | #define GENWQE_TYPE_ALTERA_530 0x01 /* GenWQE4 Stratix-IV-530 */ | ||
37 | #define GENWQE_TYPE_ALTERA_A4 0x02 /* GenWQE5 A4 Stratix-V-A4 */ | ||
38 | #define GENWQE_TYPE_ALTERA_A7 0x03 /* GenWQE5 A7 Stratix-V-A7 */ | ||
39 | |||
40 | /* MMIO Unit offsets: Each UnitID occupies a defined address range */ | ||
41 | #define GENWQE_UID_OFFS(uid) ((uid) << 24) | ||
42 | #define GENWQE_SLU_OFFS GENWQE_UID_OFFS(0) | ||
43 | #define GENWQE_HSU_OFFS GENWQE_UID_OFFS(1) | ||
44 | #define GENWQE_APP_OFFS GENWQE_UID_OFFS(2) | ||
45 | #define GENWQE_MAX_UNITS 3 | ||
46 | |||
47 | /* Common offsets per UnitID */ | ||
48 | #define IO_EXTENDED_ERROR_POINTER 0x00000048 | ||
49 | #define IO_ERROR_INJECT_SELECTOR 0x00000060 | ||
50 | #define IO_EXTENDED_DIAG_SELECTOR 0x00000070 | ||
51 | #define IO_EXTENDED_DIAG_READ_MBX 0x00000078 | ||
52 | #define IO_EXTENDED_DIAG_MAP(ring) (0x00000500 | ((ring) << 3)) | ||
53 | |||
54 | #define GENWQE_EXTENDED_DIAG_SELECTOR(ring, trace) (((ring) << 8) | (trace)) | ||
55 | |||
56 | /* UnitID 0: Service Layer Unit (SLU) */ | ||
57 | |||
58 | /* SLU: Unit Configuration Register */ | ||
59 | #define IO_SLU_UNITCFG 0x00000000 | ||
60 | #define IO_SLU_UNITCFG_TYPE_MASK 0x000000000ff00000 /* 27:20 */ | ||
61 | |||
62 | /* SLU: Fault Isolation Register (FIR) (ac_slu_fir) */ | ||
63 | #define IO_SLU_FIR 0x00000008 /* read only, wr direct */ | ||
64 | #define IO_SLU_FIR_CLR 0x00000010 /* read and clear */ | ||
65 | |||
66 | /* SLU: First Error Capture Register (FEC/WOF) */ | ||
67 | #define IO_SLU_FEC 0x00000018 | ||
68 | |||
69 | #define IO_SLU_ERR_ACT_MASK 0x00000020 | ||
70 | #define IO_SLU_ERR_ATTN_MASK 0x00000028 | ||
71 | #define IO_SLU_FIRX1_ACT_MASK 0x00000030 | ||
72 | #define IO_SLU_FIRX0_ACT_MASK 0x00000038 | ||
73 | #define IO_SLU_SEC_LEM_DEBUG_OVR 0x00000040 | ||
74 | #define IO_SLU_EXTENDED_ERR_PTR 0x00000048 | ||
75 | #define IO_SLU_COMMON_CONFIG 0x00000060 | ||
76 | |||
77 | #define IO_SLU_FLASH_FIR 0x00000108 | ||
78 | #define IO_SLU_SLC_FIR 0x00000110 | ||
79 | #define IO_SLU_RIU_TRAP 0x00000280 | ||
80 | #define IO_SLU_FLASH_FEC 0x00000308 | ||
81 | #define IO_SLU_SLC_FEC 0x00000310 | ||
82 | |||
83 | /* | ||
84 | * The Virtual Function's Access is from offset 0x00010000 | ||
85 | * The Physical Function's Access is from offset 0x00050000 | ||
86 | * Single Shared Registers exists only at offset 0x00060000 | ||
87 | * | ||
88 | * SLC: Queue Virtual Window Window for accessing into a specific VF | ||
89 | * queue. When accessing the 0x10000 space using the 0x50000 address | ||
90 | * segment, the value indicated here is used to specify which VF | ||
91 | * register is decoded. This register, and the 0x50000 register space | ||
92 | * can only be accessed by the PF. Example, if this register is set to | ||
93 | * 0x2, then a read from 0x50000 is the same as a read from 0x10000 | ||
94 | * from VF=2. | ||
95 | */ | ||
96 | |||
97 | /* SLC: Queue Segment */ | ||
98 | #define IO_SLC_QUEUE_SEGMENT 0x00010000 | ||
99 | #define IO_SLC_VF_QUEUE_SEGMENT 0x00050000 | ||
100 | |||
101 | /* SLC: Queue Offset */ | ||
102 | #define IO_SLC_QUEUE_OFFSET 0x00010008 | ||
103 | #define IO_SLC_VF_QUEUE_OFFSET 0x00050008 | ||
104 | |||
105 | /* SLC: Queue Configuration */ | ||
106 | #define IO_SLC_QUEUE_CONFIG 0x00010010 | ||
107 | #define IO_SLC_VF_QUEUE_CONFIG 0x00050010 | ||
108 | |||
109 | /* SLC: Job Timout/Only accessible for the PF */ | ||
110 | #define IO_SLC_APPJOB_TIMEOUT 0x00010018 | ||
111 | #define IO_SLC_VF_APPJOB_TIMEOUT 0x00050018 | ||
112 | #define TIMEOUT_250MS 0x0000000f | ||
113 | #define HEARTBEAT_DISABLE 0x0000ff00 | ||
114 | |||
115 | /* SLC: Queue InitSequence Register */ | ||
116 | #define IO_SLC_QUEUE_INITSQN 0x00010020 | ||
117 | #define IO_SLC_VF_QUEUE_INITSQN 0x00050020 | ||
118 | |||
119 | /* SLC: Queue Wrap */ | ||
120 | #define IO_SLC_QUEUE_WRAP 0x00010028 | ||
121 | #define IO_SLC_VF_QUEUE_WRAP 0x00050028 | ||
122 | |||
123 | /* SLC: Queue Status */ | ||
124 | #define IO_SLC_QUEUE_STATUS 0x00010100 | ||
125 | #define IO_SLC_VF_QUEUE_STATUS 0x00050100 | ||
126 | |||
127 | /* SLC: Queue Working Time */ | ||
128 | #define IO_SLC_QUEUE_WTIME 0x00010030 | ||
129 | #define IO_SLC_VF_QUEUE_WTIME 0x00050030 | ||
130 | |||
131 | /* SLC: Queue Error Counts */ | ||
132 | #define IO_SLC_QUEUE_ERRCNTS 0x00010038 | ||
133 | #define IO_SLC_VF_QUEUE_ERRCNTS 0x00050038 | ||
134 | |||
135 | /* SLC: Queue Loast Response Word */ | ||
136 | #define IO_SLC_QUEUE_LRW 0x00010040 | ||
137 | #define IO_SLC_VF_QUEUE_LRW 0x00050040 | ||
138 | |||
139 | /* SLC: Freerunning Timer */ | ||
140 | #define IO_SLC_FREE_RUNNING_TIMER 0x00010108 | ||
141 | #define IO_SLC_VF_FREE_RUNNING_TIMER 0x00050108 | ||
142 | |||
143 | /* SLC: Queue Virtual Access Region */ | ||
144 | #define IO_PF_SLC_VIRTUAL_REGION 0x00050000 | ||
145 | |||
146 | /* SLC: Queue Virtual Window */ | ||
147 | #define IO_PF_SLC_VIRTUAL_WINDOW 0x00060000 | ||
148 | |||
149 | /* SLC: DDCB Application Job Pending [n] (n=0:63) */ | ||
150 | #define IO_PF_SLC_JOBPEND(n) (0x00061000 + 8*(n)) | ||
151 | #define IO_SLC_JOBPEND(n) IO_PF_SLC_JOBPEND(n) | ||
152 | |||
153 | /* SLC: Parser Trap RAM [n] (n=0:31) */ | ||
154 | #define IO_SLU_SLC_PARSE_TRAP(n) (0x00011000 + 8*(n)) | ||
155 | |||
156 | /* SLC: Dispatcher Trap RAM [n] (n=0:31) */ | ||
157 | #define IO_SLU_SLC_DISP_TRAP(n) (0x00011200 + 8*(n)) | ||
158 | |||
159 | /* Global Fault Isolation Register (GFIR) */ | ||
160 | #define IO_SLC_CFGREG_GFIR 0x00020000 | ||
161 | #define GFIR_ERR_TRIGGER 0x0000ffff | ||
162 | |||
163 | /* SLU: Soft Reset Register */ | ||
164 | #define IO_SLC_CFGREG_SOFTRESET 0x00020018 | ||
165 | |||
166 | /* SLU: Misc Debug Register */ | ||
167 | #define IO_SLC_MISC_DEBUG 0x00020060 | ||
168 | #define IO_SLC_MISC_DEBUG_CLR 0x00020068 | ||
169 | #define IO_SLC_MISC_DEBUG_SET 0x00020070 | ||
170 | |||
171 | /* Temperature Sensor Reading */ | ||
172 | #define IO_SLU_TEMPERATURE_SENSOR 0x00030000 | ||
173 | #define IO_SLU_TEMPERATURE_CONFIG 0x00030008 | ||
174 | |||
175 | /* Voltage Margining Control */ | ||
176 | #define IO_SLU_VOLTAGE_CONTROL 0x00030080 | ||
177 | #define IO_SLU_VOLTAGE_NOMINAL 0x00000000 | ||
178 | #define IO_SLU_VOLTAGE_DOWN5 0x00000006 | ||
179 | #define IO_SLU_VOLTAGE_UP5 0x00000007 | ||
180 | |||
181 | /* Direct LED Control Register */ | ||
182 | #define IO_SLU_LEDCONTROL 0x00030100 | ||
183 | |||
184 | /* SLU: Flashbus Direct Access -A5 */ | ||
185 | #define IO_SLU_FLASH_DIRECTACCESS 0x00040010 | ||
186 | |||
187 | /* SLU: Flashbus Direct Access2 -A5 */ | ||
188 | #define IO_SLU_FLASH_DIRECTACCESS2 0x00040020 | ||
189 | |||
190 | /* SLU: Flashbus Command Interface -A5 */ | ||
191 | #define IO_SLU_FLASH_CMDINTF 0x00040030 | ||
192 | |||
193 | /* SLU: BitStream Loaded */ | ||
194 | #define IO_SLU_BITSTREAM 0x00040040 | ||
195 | |||
196 | /* This Register has a switch which will change the CAs to UR */ | ||
197 | #define IO_HSU_ERR_BEHAVIOR 0x01001010 | ||
198 | |||
199 | #define IO_SLC2_SQB_TRAP 0x00062000 | ||
200 | #define IO_SLC2_QUEUE_MANAGER_TRAP 0x00062008 | ||
201 | #define IO_SLC2_FLS_MASTER_TRAP 0x00062010 | ||
202 | |||
203 | /* UnitID 1: HSU Registers */ | ||
204 | #define IO_HSU_UNITCFG 0x01000000 | ||
205 | #define IO_HSU_FIR 0x01000008 | ||
206 | #define IO_HSU_FIR_CLR 0x01000010 | ||
207 | #define IO_HSU_FEC 0x01000018 | ||
208 | #define IO_HSU_ERR_ACT_MASK 0x01000020 | ||
209 | #define IO_HSU_ERR_ATTN_MASK 0x01000028 | ||
210 | #define IO_HSU_FIRX1_ACT_MASK 0x01000030 | ||
211 | #define IO_HSU_FIRX0_ACT_MASK 0x01000038 | ||
212 | #define IO_HSU_SEC_LEM_DEBUG_OVR 0x01000040 | ||
213 | #define IO_HSU_EXTENDED_ERR_PTR 0x01000048 | ||
214 | #define IO_HSU_COMMON_CONFIG 0x01000060 | ||
215 | |||
216 | /* UnitID 2: Application Unit (APP) */ | ||
217 | #define IO_APP_UNITCFG 0x02000000 | ||
218 | #define IO_APP_FIR 0x02000008 | ||
219 | #define IO_APP_FIR_CLR 0x02000010 | ||
220 | #define IO_APP_FEC 0x02000018 | ||
221 | #define IO_APP_ERR_ACT_MASK 0x02000020 | ||
222 | #define IO_APP_ERR_ATTN_MASK 0x02000028 | ||
223 | #define IO_APP_FIRX1_ACT_MASK 0x02000030 | ||
224 | #define IO_APP_FIRX0_ACT_MASK 0x02000038 | ||
225 | #define IO_APP_SEC_LEM_DEBUG_OVR 0x02000040 | ||
226 | #define IO_APP_EXTENDED_ERR_PTR 0x02000048 | ||
227 | #define IO_APP_COMMON_CONFIG 0x02000060 | ||
228 | |||
229 | #define IO_APP_DEBUG_REG_01 0x02010000 | ||
230 | #define IO_APP_DEBUG_REG_02 0x02010008 | ||
231 | #define IO_APP_DEBUG_REG_03 0x02010010 | ||
232 | #define IO_APP_DEBUG_REG_04 0x02010018 | ||
233 | #define IO_APP_DEBUG_REG_05 0x02010020 | ||
234 | #define IO_APP_DEBUG_REG_06 0x02010028 | ||
235 | #define IO_APP_DEBUG_REG_07 0x02010030 | ||
236 | #define IO_APP_DEBUG_REG_08 0x02010038 | ||
237 | #define IO_APP_DEBUG_REG_09 0x02010040 | ||
238 | #define IO_APP_DEBUG_REG_10 0x02010048 | ||
239 | #define IO_APP_DEBUG_REG_11 0x02010050 | ||
240 | #define IO_APP_DEBUG_REG_12 0x02010058 | ||
241 | #define IO_APP_DEBUG_REG_13 0x02010060 | ||
242 | #define IO_APP_DEBUG_REG_14 0x02010068 | ||
243 | #define IO_APP_DEBUG_REG_15 0x02010070 | ||
244 | #define IO_APP_DEBUG_REG_16 0x02010078 | ||
245 | #define IO_APP_DEBUG_REG_17 0x02010080 | ||
246 | #define IO_APP_DEBUG_REG_18 0x02010088 | ||
247 | |||
248 | /* Read/write from/to registers */ | ||
249 | struct genwqe_reg_io { | ||
250 | __u64 num; /* register offset/address */ | ||
251 | __u64 val64; | ||
252 | }; | ||
253 | |||
254 | /* | ||
255 | * All registers of our card will return values not equal this values. | ||
256 | * If we see IO_ILLEGAL_VALUE on any of our MMIO register reads, the | ||
257 | * card can be considered as unusable. It will need recovery. | ||
258 | */ | ||
259 | #define IO_ILLEGAL_VALUE 0xffffffffffffffffull | ||
260 | |||
261 | /* | ||
262 | * Generic DDCB execution interface. | ||
263 | * | ||
264 | * This interface is a first prototype resulting from discussions we | ||
265 | * had with other teams which wanted to use the Genwqe card. It allows | ||
266 | * to issue a DDCB request in a generic way. The request will block | ||
267 | * until it finishes or time out with error. | ||
268 | * | ||
269 | * Some DDCBs require DMA addresses to be specified in the ASIV | ||
270 | * block. The interface provies the capability to let the kernel | ||
271 | * driver know where those addresses are by specifying the ATS field, | ||
272 | * such that it can replace the user-space addresses with appropriate | ||
273 | * DMA addresses or DMA addresses of a scatter gather list which is | ||
274 | * dynamically created. | ||
275 | * | ||
276 | * Our hardware will refuse DDCB execution if the ATS field is not as | ||
277 | * expected. That means the DDCB execution engine in the chip knows | ||
278 | * where it expects DMA addresses within the ASIV part of the DDCB and | ||
279 | * will check that against the ATS field definition. Any invalid or | ||
280 | * unknown ATS content will lead to DDCB refusal. | ||
281 | */ | ||
282 | |||
283 | /* Genwqe chip Units */ | ||
284 | #define DDCB_ACFUNC_SLU 0x00 /* chip service layer unit */ | ||
285 | #define DDCB_ACFUNC_APP 0x01 /* chip application */ | ||
286 | |||
287 | /* DDCB return codes (RETC) */ | ||
288 | #define DDCB_RETC_IDLE 0x0000 /* Unexecuted/DDCB created */ | ||
289 | #define DDCB_RETC_PENDING 0x0101 /* Pending Execution */ | ||
290 | #define DDCB_RETC_COMPLETE 0x0102 /* Cmd complete. No error */ | ||
291 | #define DDCB_RETC_FAULT 0x0104 /* App Err, recoverable */ | ||
292 | #define DDCB_RETC_ERROR 0x0108 /* App Err, non-recoverable */ | ||
293 | #define DDCB_RETC_FORCED_ERROR 0x01ff /* overwritten by driver */ | ||
294 | |||
295 | #define DDCB_RETC_UNEXEC 0x0110 /* Unexe/Removed from queue */ | ||
296 | #define DDCB_RETC_TERM 0x0120 /* Terminated */ | ||
297 | #define DDCB_RETC_RES0 0x0140 /* Reserved */ | ||
298 | #define DDCB_RETC_RES1 0x0180 /* Reserved */ | ||
299 | |||
300 | /* DDCB Command Options (CMDOPT) */ | ||
301 | #define DDCB_OPT_ECHO_FORCE_NO 0x0000 /* ECHO DDCB */ | ||
302 | #define DDCB_OPT_ECHO_FORCE_102 0x0001 /* force return code */ | ||
303 | #define DDCB_OPT_ECHO_FORCE_104 0x0002 | ||
304 | #define DDCB_OPT_ECHO_FORCE_108 0x0003 | ||
305 | |||
306 | #define DDCB_OPT_ECHO_FORCE_110 0x0004 /* only on PF ! */ | ||
307 | #define DDCB_OPT_ECHO_FORCE_120 0x0005 | ||
308 | #define DDCB_OPT_ECHO_FORCE_140 0x0006 | ||
309 | #define DDCB_OPT_ECHO_FORCE_180 0x0007 | ||
310 | |||
311 | #define DDCB_OPT_ECHO_COPY_NONE (0 << 5) | ||
312 | #define DDCB_OPT_ECHO_COPY_ALL (1 << 5) | ||
313 | |||
314 | /* Definitions of Service Layer Commands */ | ||
315 | #define SLCMD_ECHO_SYNC 0x00 /* PF/VF */ | ||
316 | #define SLCMD_MOVE_FLASH 0x06 /* PF only */ | ||
317 | #define SLCMD_MOVE_FLASH_FLAGS_MODE 0x03 /* bit 0 and 1 used for mode */ | ||
318 | #define SLCMD_MOVE_FLASH_FLAGS_DLOAD 0 /* mode: download */ | ||
319 | #define SLCMD_MOVE_FLASH_FLAGS_EMUL 1 /* mode: emulation */ | ||
320 | #define SLCMD_MOVE_FLASH_FLAGS_UPLOAD 2 /* mode: upload */ | ||
321 | #define SLCMD_MOVE_FLASH_FLAGS_VERIFY 3 /* mode: verify */ | ||
322 | #define SLCMD_MOVE_FLASH_FLAG_NOTAP (1 << 2)/* just dump DDCB and exit */ | ||
323 | #define SLCMD_MOVE_FLASH_FLAG_POLL (1 << 3)/* wait for RETC >= 0102 */ | ||
324 | #define SLCMD_MOVE_FLASH_FLAG_PARTITION (1 << 4) | ||
325 | #define SLCMD_MOVE_FLASH_FLAG_ERASE (1 << 5) | ||
326 | |||
327 | enum genwqe_card_state { | ||
328 | GENWQE_CARD_UNUSED = 0, | ||
329 | GENWQE_CARD_USED = 1, | ||
330 | GENWQE_CARD_FATAL_ERROR = 2, | ||
331 | GENWQE_CARD_STATE_MAX, | ||
332 | }; | ||
333 | |||
334 | /* common struct for chip image exchange */ | ||
335 | struct genwqe_bitstream { | ||
336 | __u64 data_addr; /* pointer to image data */ | ||
337 | __u32 size; /* size of image file */ | ||
338 | __u32 crc; /* crc of this image */ | ||
339 | __u64 target_addr; /* starting address in Flash */ | ||
340 | __u32 partition; /* '0', '1', or 'v' */ | ||
341 | __u32 uid; /* 1=host/x=dram */ | ||
342 | |||
343 | __u64 slu_id; /* informational/sim: SluID */ | ||
344 | __u64 app_id; /* informational/sim: AppID */ | ||
345 | |||
346 | __u16 retc; /* returned from processing */ | ||
347 | __u16 attn; /* attention code from processing */ | ||
348 | __u32 progress; /* progress code from processing */ | ||
349 | }; | ||
350 | |||
351 | /* Issuing a specific DDCB command */ | ||
352 | #define DDCB_LENGTH 256 /* for debug data */ | ||
353 | #define DDCB_ASIV_LENGTH 104 /* len of the DDCB ASIV array */ | ||
354 | #define DDCB_ASIV_LENGTH_ATS 96 /* ASIV in ATS architecture */ | ||
355 | #define DDCB_ASV_LENGTH 64 /* len of the DDCB ASV array */ | ||
356 | #define DDCB_FIXUPS 12 /* maximum number of fixups */ | ||
357 | |||
358 | struct genwqe_debug_data { | ||
359 | char driver_version[64]; | ||
360 | __u64 slu_unitcfg; | ||
361 | __u64 app_unitcfg; | ||
362 | |||
363 | __u8 ddcb_before[DDCB_LENGTH]; | ||
364 | __u8 ddcb_prev[DDCB_LENGTH]; | ||
365 | __u8 ddcb_finished[DDCB_LENGTH]; | ||
366 | }; | ||
367 | |||
368 | /* | ||
369 | * Address Translation Specification (ATS) definitions | ||
370 | * | ||
371 | * Each 4 bit within the ATS 64-bit word specify the required address | ||
372 | * translation at the defined offset. | ||
373 | * | ||
374 | * 63 LSB | ||
375 | * 6666.5555.5555.5544.4444.4443.3333.3333 ... 11 | ||
376 | * 3210.9876.5432.1098.7654.3210.9876.5432 ... 1098.7654.3210 | ||
377 | * | ||
378 | * offset: 0x00 0x08 0x10 0x18 0x20 0x28 0x30 0x38 ... 0x68 0x70 0x78 | ||
379 | * res res res res ASIV ... | ||
380 | * The first 4 entries in the ATS word are reserved. The following nibbles | ||
381 | * each describe at an 8 byte offset the format of the required data. | ||
382 | */ | ||
383 | #define ATS_TYPE_DATA 0x0ull /* data */ | ||
384 | #define ATS_TYPE_FLAT_RD 0x4ull /* flat buffer read only */ | ||
385 | #define ATS_TYPE_FLAT_RDWR 0x5ull /* flat buffer read/write */ | ||
386 | #define ATS_TYPE_SGL_RD 0x6ull /* sgl read only */ | ||
387 | #define ATS_TYPE_SGL_RDWR 0x7ull /* sgl read/write */ | ||
388 | |||
389 | #define ATS_SET_FLAGS(_struct, _field, _flags) \ | ||
390 | (((_flags) & 0xf) << (44 - (4 * (offsetof(_struct, _field) / 8)))) | ||
391 | |||
392 | #define ATS_GET_FLAGS(_ats, _byte_offs) \ | ||
393 | (((_ats) >> (44 - (4 * ((_byte_offs) / 8)))) & 0xf) | ||
394 | |||
395 | /** | ||
396 | * struct genwqe_ddcb_cmd - User parameter for generic DDCB commands | ||
397 | * | ||
398 | * On the way into the kernel the driver will read the whole data | ||
399 | * structure. On the way out the driver will not copy the ASIV data | ||
400 | * back to user-space. | ||
401 | */ | ||
402 | struct genwqe_ddcb_cmd { | ||
403 | /* START of data copied to/from driver */ | ||
404 | __u64 next_addr; /* chaining genwqe_ddcb_cmd */ | ||
405 | __u64 flags; /* reserved */ | ||
406 | |||
407 | __u8 acfunc; /* accelerators functional unit */ | ||
408 | __u8 cmd; /* command to execute */ | ||
409 | __u8 asiv_length; /* used parameter length */ | ||
410 | __u8 asv_length; /* length of valid return values */ | ||
411 | __u16 cmdopts; /* command options */ | ||
412 | __u16 retc; /* return code from processing */ | ||
413 | |||
414 | __u16 attn; /* attention code from processing */ | ||
415 | __u16 vcrc; /* variant crc16 */ | ||
416 | __u32 progress; /* progress code from processing */ | ||
417 | |||
418 | __u64 deque_ts; /* dequeue time stamp */ | ||
419 | __u64 cmplt_ts; /* completion time stamp */ | ||
420 | __u64 disp_ts; /* SW processing start */ | ||
421 | |||
422 | /* move to end and avoid copy-back */ | ||
423 | __u64 ddata_addr; /* collect debug data */ | ||
424 | |||
425 | /* command specific values */ | ||
426 | __u8 asv[DDCB_ASV_LENGTH]; | ||
427 | |||
428 | /* END of data copied from driver */ | ||
429 | union { | ||
430 | struct { | ||
431 | __u64 ats; | ||
432 | __u8 asiv[DDCB_ASIV_LENGTH_ATS]; | ||
433 | }; | ||
434 | /* used for flash update to keep it backward compatible */ | ||
435 | __u8 __asiv[DDCB_ASIV_LENGTH]; | ||
436 | }; | ||
437 | /* END of data copied to driver */ | ||
438 | }; | ||
439 | |||
440 | #define GENWQE_IOC_CODE 0xa5 | ||
441 | |||
442 | /* Access functions */ | ||
443 | #define GENWQE_READ_REG64 _IOR(GENWQE_IOC_CODE, 30, struct genwqe_reg_io) | ||
444 | #define GENWQE_WRITE_REG64 _IOW(GENWQE_IOC_CODE, 31, struct genwqe_reg_io) | ||
445 | #define GENWQE_READ_REG32 _IOR(GENWQE_IOC_CODE, 32, struct genwqe_reg_io) | ||
446 | #define GENWQE_WRITE_REG32 _IOW(GENWQE_IOC_CODE, 33, struct genwqe_reg_io) | ||
447 | #define GENWQE_READ_REG16 _IOR(GENWQE_IOC_CODE, 34, struct genwqe_reg_io) | ||
448 | #define GENWQE_WRITE_REG16 _IOW(GENWQE_IOC_CODE, 35, struct genwqe_reg_io) | ||
449 | |||
450 | #define GENWQE_GET_CARD_STATE _IOR(GENWQE_IOC_CODE, 36, enum genwqe_card_state) | ||
451 | |||
452 | /** | ||
453 | * struct genwqe_mem - Memory pinning/unpinning information | ||
454 | * @addr: virtual user space address | ||
455 | * @size: size of the area pin/dma-map/unmap | ||
456 | * direction: 0: read/1: read and write | ||
457 | * | ||
458 | * Avoid pinning and unpinning of memory pages dynamically. Instead | ||
459 | * the idea is to pin the whole buffer space required for DDCB | ||
460 | * opertionas in advance. The driver will reuse this pinning and the | ||
461 | * memory associated with it to setup the sglists for the DDCB | ||
462 | * requests without the need to allocate and free memory or map and | ||
463 | * unmap to get the DMA addresses. | ||
464 | * | ||
465 | * The inverse operation needs to be called after the pinning is not | ||
466 | * needed anymore. The pinnings else the pinnings will get removed | ||
467 | * after the device is closed. Note that pinnings will required | ||
468 | * memory. | ||
469 | */ | ||
470 | struct genwqe_mem { | ||
471 | __u64 addr; | ||
472 | __u64 size; | ||
473 | __u64 direction; | ||
474 | __u64 flags; | ||
475 | }; | ||
476 | |||
477 | #define GENWQE_PIN_MEM _IOWR(GENWQE_IOC_CODE, 40, struct genwqe_mem) | ||
478 | #define GENWQE_UNPIN_MEM _IOWR(GENWQE_IOC_CODE, 41, struct genwqe_mem) | ||
479 | |||
480 | /* | ||
481 | * Generic synchronous DDCB execution interface. | ||
482 | * Synchronously execute a DDCB. | ||
483 | * | ||
484 | * Return: 0 on success or negative error code. | ||
485 | * -EINVAL: Invalid parameters (ASIV_LEN, ASV_LEN, illegal fixups | ||
486 | * no mappings found/could not create mappings | ||
487 | * -EFAULT: illegal addresses in fixups, purging failed | ||
488 | * -EBADMSG: enqueing failed, retc != DDCB_RETC_COMPLETE | ||
489 | */ | ||
490 | #define GENWQE_EXECUTE_DDCB \ | ||
491 | _IOWR(GENWQE_IOC_CODE, 50, struct genwqe_ddcb_cmd) | ||
492 | |||
493 | #define GENWQE_EXECUTE_RAW_DDCB \ | ||
494 | _IOWR(GENWQE_IOC_CODE, 51, struct genwqe_ddcb_cmd) | ||
495 | |||
496 | /* Service Layer functions (PF only) */ | ||
497 | #define GENWQE_SLU_UPDATE _IOWR(GENWQE_IOC_CODE, 80, struct genwqe_bitstream) | ||
498 | #define GENWQE_SLU_READ _IOWR(GENWQE_IOC_CODE, 81, struct genwqe_bitstream) | ||
499 | |||
500 | #endif /* __GENWQE_CARD_H__ */ | ||
diff --git a/include/uapi/linux/gfs2_ondisk.h b/include/uapi/linux/gfs2_ondisk.h index b2de1f9a88d6..0f24c07aed51 100644 --- a/include/uapi/linux/gfs2_ondisk.h +++ b/include/uapi/linux/gfs2_ondisk.h | |||
@@ -319,7 +319,16 @@ struct gfs2_leaf { | |||
319 | __be32 lf_dirent_format; /* Format of the dirents */ | 319 | __be32 lf_dirent_format; /* Format of the dirents */ |
320 | __be64 lf_next; /* Next leaf, if overflow */ | 320 | __be64 lf_next; /* Next leaf, if overflow */ |
321 | 321 | ||
322 | __u8 lf_reserved[64]; | 322 | union { |
323 | __u8 lf_reserved[64]; | ||
324 | struct { | ||
325 | __be64 lf_inode; /* Dir inode number */ | ||
326 | __be32 lf_dist; /* Dist from inode on chain */ | ||
327 | __be32 lf_nsec; /* Last ins/del usecs */ | ||
328 | __be64 lf_sec; /* Last ins/del in secs */ | ||
329 | __u8 lf_reserved2[40]; | ||
330 | }; | ||
331 | }; | ||
323 | }; | 332 | }; |
324 | 333 | ||
325 | /* | 334 | /* |
diff --git a/include/uapi/linux/if_addr.h b/include/uapi/linux/if_addr.h index 23357ab81a77..dea10a87dfd1 100644 --- a/include/uapi/linux/if_addr.h +++ b/include/uapi/linux/if_addr.h | |||
@@ -18,6 +18,9 @@ struct ifaddrmsg { | |||
18 | * It makes no difference for normally configured broadcast interfaces, | 18 | * It makes no difference for normally configured broadcast interfaces, |
19 | * but for point-to-point IFA_ADDRESS is DESTINATION address, | 19 | * but for point-to-point IFA_ADDRESS is DESTINATION address, |
20 | * local address is supplied in IFA_LOCAL attribute. | 20 | * local address is supplied in IFA_LOCAL attribute. |
21 | * | ||
22 | * IFA_FLAGS is a u32 attribute that extends the u8 field ifa_flags. | ||
23 | * If present, the value from struct ifaddrmsg will be ignored. | ||
21 | */ | 24 | */ |
22 | enum { | 25 | enum { |
23 | IFA_UNSPEC, | 26 | IFA_UNSPEC, |
@@ -28,6 +31,7 @@ enum { | |||
28 | IFA_ANYCAST, | 31 | IFA_ANYCAST, |
29 | IFA_CACHEINFO, | 32 | IFA_CACHEINFO, |
30 | IFA_MULTICAST, | 33 | IFA_MULTICAST, |
34 | IFA_FLAGS, | ||
31 | __IFA_MAX, | 35 | __IFA_MAX, |
32 | }; | 36 | }; |
33 | 37 | ||
@@ -44,6 +48,8 @@ enum { | |||
44 | #define IFA_F_DEPRECATED 0x20 | 48 | #define IFA_F_DEPRECATED 0x20 |
45 | #define IFA_F_TENTATIVE 0x40 | 49 | #define IFA_F_TENTATIVE 0x40 |
46 | #define IFA_F_PERMANENT 0x80 | 50 | #define IFA_F_PERMANENT 0x80 |
51 | #define IFA_F_MANAGETEMPADDR 0x100 | ||
52 | #define IFA_F_NOPREFIXROUTE 0x200 | ||
47 | 53 | ||
48 | struct ifa_cacheinfo { | 54 | struct ifa_cacheinfo { |
49 | __u32 ifa_prefered; | 55 | __u32 ifa_prefered; |
diff --git a/include/uapi/linux/if_arp.h b/include/uapi/linux/if_arp.h index d7fea3496f32..4d024d75d64b 100644 --- a/include/uapi/linux/if_arp.h +++ b/include/uapi/linux/if_arp.h | |||
@@ -94,6 +94,7 @@ | |||
94 | #define ARPHRD_CAIF 822 /* CAIF media type */ | 94 | #define ARPHRD_CAIF 822 /* CAIF media type */ |
95 | #define ARPHRD_IP6GRE 823 /* GRE over IPv6 */ | 95 | #define ARPHRD_IP6GRE 823 /* GRE over IPv6 */ |
96 | #define ARPHRD_NETLINK 824 /* Netlink header */ | 96 | #define ARPHRD_NETLINK 824 /* Netlink header */ |
97 | #define ARPHRD_6LOWPAN 825 /* IPv6 over LoWPAN */ | ||
97 | 98 | ||
98 | #define ARPHRD_VOID 0xFFFF /* Void type, nothing is known */ | 99 | #define ARPHRD_VOID 0xFFFF /* Void type, nothing is known */ |
99 | #define ARPHRD_NONE 0xFFFE /* zero header length */ | 100 | #define ARPHRD_NONE 0xFFFE /* zero header length */ |
diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h index b78566f59aba..16410b6e7819 100644 --- a/include/uapi/linux/if_link.h +++ b/include/uapi/linux/if_link.h | |||
@@ -240,6 +240,8 @@ enum { | |||
240 | IFLA_INFO_KIND, | 240 | IFLA_INFO_KIND, |
241 | IFLA_INFO_DATA, | 241 | IFLA_INFO_DATA, |
242 | IFLA_INFO_XSTATS, | 242 | IFLA_INFO_XSTATS, |
243 | IFLA_INFO_SLAVE_KIND, | ||
244 | IFLA_INFO_SLAVE_DATA, | ||
243 | __IFLA_INFO_MAX, | 245 | __IFLA_INFO_MAX, |
244 | }; | 246 | }; |
245 | 247 | ||
@@ -331,11 +333,57 @@ enum { | |||
331 | IFLA_BOND_UNSPEC, | 333 | IFLA_BOND_UNSPEC, |
332 | IFLA_BOND_MODE, | 334 | IFLA_BOND_MODE, |
333 | IFLA_BOND_ACTIVE_SLAVE, | 335 | IFLA_BOND_ACTIVE_SLAVE, |
336 | IFLA_BOND_MIIMON, | ||
337 | IFLA_BOND_UPDELAY, | ||
338 | IFLA_BOND_DOWNDELAY, | ||
339 | IFLA_BOND_USE_CARRIER, | ||
340 | IFLA_BOND_ARP_INTERVAL, | ||
341 | IFLA_BOND_ARP_IP_TARGET, | ||
342 | IFLA_BOND_ARP_VALIDATE, | ||
343 | IFLA_BOND_ARP_ALL_TARGETS, | ||
344 | IFLA_BOND_PRIMARY, | ||
345 | IFLA_BOND_PRIMARY_RESELECT, | ||
346 | IFLA_BOND_FAIL_OVER_MAC, | ||
347 | IFLA_BOND_XMIT_HASH_POLICY, | ||
348 | IFLA_BOND_RESEND_IGMP, | ||
349 | IFLA_BOND_NUM_PEER_NOTIF, | ||
350 | IFLA_BOND_ALL_SLAVES_ACTIVE, | ||
351 | IFLA_BOND_MIN_LINKS, | ||
352 | IFLA_BOND_LP_INTERVAL, | ||
353 | IFLA_BOND_PACKETS_PER_SLAVE, | ||
354 | IFLA_BOND_AD_LACP_RATE, | ||
355 | IFLA_BOND_AD_SELECT, | ||
356 | IFLA_BOND_AD_INFO, | ||
334 | __IFLA_BOND_MAX, | 357 | __IFLA_BOND_MAX, |
335 | }; | 358 | }; |
336 | 359 | ||
337 | #define IFLA_BOND_MAX (__IFLA_BOND_MAX - 1) | 360 | #define IFLA_BOND_MAX (__IFLA_BOND_MAX - 1) |
338 | 361 | ||
362 | enum { | ||
363 | IFLA_BOND_AD_INFO_UNSPEC, | ||
364 | IFLA_BOND_AD_INFO_AGGREGATOR, | ||
365 | IFLA_BOND_AD_INFO_NUM_PORTS, | ||
366 | IFLA_BOND_AD_INFO_ACTOR_KEY, | ||
367 | IFLA_BOND_AD_INFO_PARTNER_KEY, | ||
368 | IFLA_BOND_AD_INFO_PARTNER_MAC, | ||
369 | __IFLA_BOND_AD_INFO_MAX, | ||
370 | }; | ||
371 | |||
372 | #define IFLA_BOND_AD_INFO_MAX (__IFLA_BOND_AD_INFO_MAX - 1) | ||
373 | |||
374 | enum { | ||
375 | IFLA_BOND_SLAVE_UNSPEC, | ||
376 | IFLA_BOND_SLAVE_STATE, | ||
377 | IFLA_BOND_SLAVE_MII_STATUS, | ||
378 | IFLA_BOND_SLAVE_LINK_FAILURE_COUNT, | ||
379 | IFLA_BOND_SLAVE_PERM_HWADDR, | ||
380 | IFLA_BOND_SLAVE_QUEUE_ID, | ||
381 | IFLA_BOND_SLAVE_AD_AGGREGATOR_ID, | ||
382 | __IFLA_BOND_SLAVE_MAX, | ||
383 | }; | ||
384 | |||
385 | #define IFLA_BOND_SLAVE_MAX (__IFLA_BOND_SLAVE_MAX - 1) | ||
386 | |||
339 | /* SR-IOV virtual function management section */ | 387 | /* SR-IOV virtual function management section */ |
340 | 388 | ||
341 | enum { | 389 | enum { |
@@ -488,7 +536,9 @@ enum { | |||
488 | IFLA_HSR_UNSPEC, | 536 | IFLA_HSR_UNSPEC, |
489 | IFLA_HSR_SLAVE1, | 537 | IFLA_HSR_SLAVE1, |
490 | IFLA_HSR_SLAVE2, | 538 | IFLA_HSR_SLAVE2, |
491 | IFLA_HSR_MULTICAST_SPEC, | 539 | IFLA_HSR_MULTICAST_SPEC, /* Last byte of supervision addr */ |
540 | IFLA_HSR_SUPERVISION_ADDR, /* Supervision frame multicast addr */ | ||
541 | IFLA_HSR_SEQ_NR, | ||
492 | __IFLA_HSR_MAX, | 542 | __IFLA_HSR_MAX, |
493 | }; | 543 | }; |
494 | 544 | ||
diff --git a/include/uapi/linux/if_packet.h b/include/uapi/linux/if_packet.h index dbf06667394b..bac27fa05f5b 100644 --- a/include/uapi/linux/if_packet.h +++ b/include/uapi/linux/if_packet.h | |||
@@ -26,8 +26,10 @@ struct sockaddr_ll { | |||
26 | #define PACKET_MULTICAST 2 /* To group */ | 26 | #define PACKET_MULTICAST 2 /* To group */ |
27 | #define PACKET_OTHERHOST 3 /* To someone else */ | 27 | #define PACKET_OTHERHOST 3 /* To someone else */ |
28 | #define PACKET_OUTGOING 4 /* Outgoing of any type */ | 28 | #define PACKET_OUTGOING 4 /* Outgoing of any type */ |
29 | /* These ones are invisible by user level */ | ||
30 | #define PACKET_LOOPBACK 5 /* MC/BRD frame looped back */ | 29 | #define PACKET_LOOPBACK 5 /* MC/BRD frame looped back */ |
30 | #define PACKET_USER 6 /* To user space */ | ||
31 | #define PACKET_KERNEL 7 /* To kernel space */ | ||
32 | /* Unused, PACKET_FASTROUTE and PACKET_LOOPBACK are invisible to user space */ | ||
31 | #define PACKET_FASTROUTE 6 /* Fastrouted frame */ | 33 | #define PACKET_FASTROUTE 6 /* Fastrouted frame */ |
32 | 34 | ||
33 | /* Packet socket options */ | 35 | /* Packet socket options */ |
@@ -51,12 +53,14 @@ struct sockaddr_ll { | |||
51 | #define PACKET_TIMESTAMP 17 | 53 | #define PACKET_TIMESTAMP 17 |
52 | #define PACKET_FANOUT 18 | 54 | #define PACKET_FANOUT 18 |
53 | #define PACKET_TX_HAS_OFF 19 | 55 | #define PACKET_TX_HAS_OFF 19 |
56 | #define PACKET_QDISC_BYPASS 20 | ||
54 | 57 | ||
55 | #define PACKET_FANOUT_HASH 0 | 58 | #define PACKET_FANOUT_HASH 0 |
56 | #define PACKET_FANOUT_LB 1 | 59 | #define PACKET_FANOUT_LB 1 |
57 | #define PACKET_FANOUT_CPU 2 | 60 | #define PACKET_FANOUT_CPU 2 |
58 | #define PACKET_FANOUT_ROLLOVER 3 | 61 | #define PACKET_FANOUT_ROLLOVER 3 |
59 | #define PACKET_FANOUT_RND 4 | 62 | #define PACKET_FANOUT_RND 4 |
63 | #define PACKET_FANOUT_QM 5 | ||
60 | #define PACKET_FANOUT_FLAG_ROLLOVER 0x1000 | 64 | #define PACKET_FANOUT_FLAG_ROLLOVER 0x1000 |
61 | #define PACKET_FANOUT_FLAG_DEFRAG 0x8000 | 65 | #define PACKET_FANOUT_FLAG_DEFRAG 0x8000 |
62 | 66 | ||
@@ -83,17 +87,18 @@ struct tpacket_auxdata { | |||
83 | __u16 tp_mac; | 87 | __u16 tp_mac; |
84 | __u16 tp_net; | 88 | __u16 tp_net; |
85 | __u16 tp_vlan_tci; | 89 | __u16 tp_vlan_tci; |
86 | __u16 tp_padding; | 90 | __u16 tp_vlan_tpid; |
87 | }; | 91 | }; |
88 | 92 | ||
89 | /* Rx ring - header status */ | 93 | /* Rx ring - header status */ |
90 | #define TP_STATUS_KERNEL 0 | 94 | #define TP_STATUS_KERNEL 0 |
91 | #define TP_STATUS_USER (1 << 0) | 95 | #define TP_STATUS_USER (1 << 0) |
92 | #define TP_STATUS_COPY (1 << 1) | 96 | #define TP_STATUS_COPY (1 << 1) |
93 | #define TP_STATUS_LOSING (1 << 2) | 97 | #define TP_STATUS_LOSING (1 << 2) |
94 | #define TP_STATUS_CSUMNOTREADY (1 << 3) | 98 | #define TP_STATUS_CSUMNOTREADY (1 << 3) |
95 | #define TP_STATUS_VLAN_VALID (1 << 4) /* auxdata has valid tp_vlan_tci */ | 99 | #define TP_STATUS_VLAN_VALID (1 << 4) /* auxdata has valid tp_vlan_tci */ |
96 | #define TP_STATUS_BLK_TMO (1 << 5) | 100 | #define TP_STATUS_BLK_TMO (1 << 5) |
101 | #define TP_STATUS_VLAN_TPID_VALID (1 << 6) /* auxdata has valid tp_vlan_tpid */ | ||
97 | 102 | ||
98 | /* Tx ring - header status */ | 103 | /* Tx ring - header status */ |
99 | #define TP_STATUS_AVAILABLE 0 | 104 | #define TP_STATUS_AVAILABLE 0 |
@@ -132,12 +137,15 @@ struct tpacket2_hdr { | |||
132 | __u32 tp_sec; | 137 | __u32 tp_sec; |
133 | __u32 tp_nsec; | 138 | __u32 tp_nsec; |
134 | __u16 tp_vlan_tci; | 139 | __u16 tp_vlan_tci; |
135 | __u16 tp_padding; | 140 | __u16 tp_vlan_tpid; |
141 | __u8 tp_padding[4]; | ||
136 | }; | 142 | }; |
137 | 143 | ||
138 | struct tpacket_hdr_variant1 { | 144 | struct tpacket_hdr_variant1 { |
139 | __u32 tp_rxhash; | 145 | __u32 tp_rxhash; |
140 | __u32 tp_vlan_tci; | 146 | __u32 tp_vlan_tci; |
147 | __u16 tp_vlan_tpid; | ||
148 | __u16 tp_padding; | ||
141 | }; | 149 | }; |
142 | 150 | ||
143 | struct tpacket3_hdr { | 151 | struct tpacket3_hdr { |
@@ -153,6 +161,7 @@ struct tpacket3_hdr { | |||
153 | union { | 161 | union { |
154 | struct tpacket_hdr_variant1 hv1; | 162 | struct tpacket_hdr_variant1 hv1; |
155 | }; | 163 | }; |
164 | __u8 tp_padding[8]; | ||
156 | }; | 165 | }; |
157 | 166 | ||
158 | struct tpacket_bd_ts { | 167 | struct tpacket_bd_ts { |
diff --git a/include/uapi/linux/in6.h b/include/uapi/linux/in6.h index 440d5c479145..633b93cac1ed 100644 --- a/include/uapi/linux/in6.h +++ b/include/uapi/linux/in6.h | |||
@@ -85,6 +85,8 @@ struct in6_flowlabel_req { | |||
85 | 85 | ||
86 | #define IPV6_FL_F_CREATE 1 | 86 | #define IPV6_FL_F_CREATE 1 |
87 | #define IPV6_FL_F_EXCL 2 | 87 | #define IPV6_FL_F_EXCL 2 |
88 | #define IPV6_FL_F_REFLECT 4 | ||
89 | #define IPV6_FL_F_REMOTE 8 | ||
88 | 90 | ||
89 | #define IPV6_FL_S_NONE 0 | 91 | #define IPV6_FL_S_NONE 0 |
90 | #define IPV6_FL_S_EXCL 1 | 92 | #define IPV6_FL_S_EXCL 1 |
@@ -188,6 +190,10 @@ enum { | |||
188 | #define IPV6_PMTUDISC_WANT 1 | 190 | #define IPV6_PMTUDISC_WANT 1 |
189 | #define IPV6_PMTUDISC_DO 2 | 191 | #define IPV6_PMTUDISC_DO 2 |
190 | #define IPV6_PMTUDISC_PROBE 3 | 192 | #define IPV6_PMTUDISC_PROBE 3 |
193 | /* same as IPV6_PMTUDISC_PROBE, provided for symetry with IPv4 | ||
194 | * also see comments on IP_PMTUDISC_INTERFACE | ||
195 | */ | ||
196 | #define IPV6_PMTUDISC_INTERFACE 4 | ||
191 | 197 | ||
192 | /* Flowlabel */ | 198 | /* Flowlabel */ |
193 | #define IPV6_FLOWLABEL_MGR 32 | 199 | #define IPV6_FLOWLABEL_MGR 32 |
diff --git a/include/uapi/linux/input.h b/include/uapi/linux/input.h index a3726275876d..bd24470d24a2 100644 --- a/include/uapi/linux/input.h +++ b/include/uapi/linux/input.h | |||
@@ -464,7 +464,8 @@ struct input_keymap_entry { | |||
464 | #define KEY_BRIGHTNESS_ZERO 244 /* brightness off, use ambient */ | 464 | #define KEY_BRIGHTNESS_ZERO 244 /* brightness off, use ambient */ |
465 | #define KEY_DISPLAY_OFF 245 /* display device to off state */ | 465 | #define KEY_DISPLAY_OFF 245 /* display device to off state */ |
466 | 466 | ||
467 | #define KEY_WIMAX 246 | 467 | #define KEY_WWAN 246 /* Wireless WAN (LTE, UMTS, GSM, etc.) */ |
468 | #define KEY_WIMAX KEY_WWAN | ||
468 | #define KEY_RFKILL 247 /* Key that controls all radios */ | 469 | #define KEY_RFKILL 247 /* Key that controls all radios */ |
469 | 470 | ||
470 | #define KEY_MICMUTE 248 /* Mute / unmute the microphone */ | 471 | #define KEY_MICMUTE 248 /* Mute / unmute the microphone */ |
@@ -719,6 +720,8 @@ struct input_keymap_entry { | |||
719 | #define BTN_DPAD_LEFT 0x222 | 720 | #define BTN_DPAD_LEFT 0x222 |
720 | #define BTN_DPAD_RIGHT 0x223 | 721 | #define BTN_DPAD_RIGHT 0x223 |
721 | 722 | ||
723 | #define KEY_ALS_TOGGLE 0x230 /* Ambient light sensor */ | ||
724 | |||
722 | #define BTN_TRIGGER_HAPPY 0x2c0 | 725 | #define BTN_TRIGGER_HAPPY 0x2c0 |
723 | #define BTN_TRIGGER_HAPPY1 0x2c0 | 726 | #define BTN_TRIGGER_HAPPY1 0x2c0 |
724 | #define BTN_TRIGGER_HAPPY2 0x2c1 | 727 | #define BTN_TRIGGER_HAPPY2 0x2c1 |
@@ -856,6 +859,7 @@ struct input_keymap_entry { | |||
856 | #define SW_FRONT_PROXIMITY 0x0b /* set = front proximity sensor active */ | 859 | #define SW_FRONT_PROXIMITY 0x0b /* set = front proximity sensor active */ |
857 | #define SW_ROTATE_LOCK 0x0c /* set = rotate locked/disabled */ | 860 | #define SW_ROTATE_LOCK 0x0c /* set = rotate locked/disabled */ |
858 | #define SW_LINEIN_INSERT 0x0d /* set = inserted */ | 861 | #define SW_LINEIN_INSERT 0x0d /* set = inserted */ |
862 | #define SW_MUTE_DEVICE 0x0e /* set = device disabled */ | ||
859 | #define SW_MAX 0x0f | 863 | #define SW_MAX 0x0f |
860 | #define SW_CNT (SW_MAX+1) | 864 | #define SW_CNT (SW_MAX+1) |
861 | 865 | ||
diff --git a/include/uapi/linux/kexec.h b/include/uapi/linux/kexec.h index 104838f65bc1..d6629d49a243 100644 --- a/include/uapi/linux/kexec.h +++ b/include/uapi/linux/kexec.h | |||
@@ -18,6 +18,7 @@ | |||
18 | */ | 18 | */ |
19 | #define KEXEC_ARCH_DEFAULT ( 0 << 16) | 19 | #define KEXEC_ARCH_DEFAULT ( 0 << 16) |
20 | #define KEXEC_ARCH_386 ( 3 << 16) | 20 | #define KEXEC_ARCH_386 ( 3 << 16) |
21 | #define KEXEC_ARCH_68K ( 4 << 16) | ||
21 | #define KEXEC_ARCH_X86_64 (62 << 16) | 22 | #define KEXEC_ARCH_X86_64 (62 << 16) |
22 | #define KEXEC_ARCH_PPC (20 << 16) | 23 | #define KEXEC_ARCH_PPC (20 << 16) |
23 | #define KEXEC_ARCH_PPC64 (21 << 16) | 24 | #define KEXEC_ARCH_PPC64 (21 << 16) |
diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h index 902f12461873..932d7f2637d6 100644 --- a/include/uapi/linux/kvm.h +++ b/include/uapi/linux/kvm.h | |||
@@ -674,6 +674,7 @@ struct kvm_ppc_smmu_info { | |||
674 | #define KVM_CAP_ARM_EL1_32BIT 93 | 674 | #define KVM_CAP_ARM_EL1_32BIT 93 |
675 | #define KVM_CAP_SPAPR_MULTITCE 94 | 675 | #define KVM_CAP_SPAPR_MULTITCE 94 |
676 | #define KVM_CAP_EXT_EMUL_CPUID 95 | 676 | #define KVM_CAP_EXT_EMUL_CPUID 95 |
677 | #define KVM_CAP_HYPERV_TIME 96 | ||
677 | 678 | ||
678 | #ifdef KVM_CAP_IRQ_ROUTING | 679 | #ifdef KVM_CAP_IRQ_ROUTING |
679 | 680 | ||
@@ -853,6 +854,7 @@ struct kvm_device_attr { | |||
853 | #define KVM_DEV_VFIO_GROUP 1 | 854 | #define KVM_DEV_VFIO_GROUP 1 |
854 | #define KVM_DEV_VFIO_GROUP_ADD 1 | 855 | #define KVM_DEV_VFIO_GROUP_ADD 1 |
855 | #define KVM_DEV_VFIO_GROUP_DEL 2 | 856 | #define KVM_DEV_VFIO_GROUP_DEL 2 |
857 | #define KVM_DEV_TYPE_ARM_VGIC_V2 5 | ||
856 | 858 | ||
857 | /* | 859 | /* |
858 | * ioctls for VM fds | 860 | * ioctls for VM fds |
diff --git a/include/uapi/linux/mic_common.h b/include/uapi/linux/mic_common.h index 17e7d95e4f53..6eb40244e019 100644 --- a/include/uapi/linux/mic_common.h +++ b/include/uapi/linux/mic_common.h | |||
@@ -23,12 +23,7 @@ | |||
23 | 23 | ||
24 | #include <linux/virtio_ring.h> | 24 | #include <linux/virtio_ring.h> |
25 | 25 | ||
26 | #ifndef __KERNEL__ | 26 | #define __mic_align(a, x) (((a) + (x) - 1) & ~((x) - 1)) |
27 | #define ALIGN(a, x) (((a) + (x) - 1) & ~((x) - 1)) | ||
28 | #define __aligned(x) __attribute__ ((aligned(x))) | ||
29 | #endif | ||
30 | |||
31 | #define mic_aligned_size(x) ALIGN(sizeof(x), 8) | ||
32 | 27 | ||
33 | /** | 28 | /** |
34 | * struct mic_device_desc: Virtio device information shared between the | 29 | * struct mic_device_desc: Virtio device information shared between the |
@@ -48,8 +43,8 @@ struct mic_device_desc { | |||
48 | __u8 feature_len; | 43 | __u8 feature_len; |
49 | __u8 config_len; | 44 | __u8 config_len; |
50 | __u8 status; | 45 | __u8 status; |
51 | __u64 config[0]; | 46 | __le64 config[0]; |
52 | } __aligned(8); | 47 | } __attribute__ ((aligned(8))); |
53 | 48 | ||
54 | /** | 49 | /** |
55 | * struct mic_device_ctrl: Per virtio device information in the device page | 50 | * struct mic_device_ctrl: Per virtio device information in the device page |
@@ -66,7 +61,7 @@ struct mic_device_desc { | |||
66 | * @h2c_vdev_db: The doorbell number to be used by host. Set by guest. | 61 | * @h2c_vdev_db: The doorbell number to be used by host. Set by guest. |
67 | */ | 62 | */ |
68 | struct mic_device_ctrl { | 63 | struct mic_device_ctrl { |
69 | __u64 vdev; | 64 | __le64 vdev; |
70 | __u8 config_change; | 65 | __u8 config_change; |
71 | __u8 vdev_reset; | 66 | __u8 vdev_reset; |
72 | __u8 guest_ack; | 67 | __u8 guest_ack; |
@@ -74,7 +69,7 @@ struct mic_device_ctrl { | |||
74 | __u8 used_address_updated; | 69 | __u8 used_address_updated; |
75 | __s8 c2h_vdev_db; | 70 | __s8 c2h_vdev_db; |
76 | __s8 h2c_vdev_db; | 71 | __s8 h2c_vdev_db; |
77 | } __aligned(8); | 72 | } __attribute__ ((aligned(8))); |
78 | 73 | ||
79 | /** | 74 | /** |
80 | * struct mic_bootparam: Virtio device independent information in device page | 75 | * struct mic_bootparam: Virtio device independent information in device page |
@@ -87,13 +82,13 @@ struct mic_device_ctrl { | |||
87 | * @shutdown_card: Set to 1 by the host when a card shutdown is initiated | 82 | * @shutdown_card: Set to 1 by the host when a card shutdown is initiated |
88 | */ | 83 | */ |
89 | struct mic_bootparam { | 84 | struct mic_bootparam { |
90 | __u32 magic; | 85 | __le32 magic; |
91 | __s8 c2h_shutdown_db; | 86 | __s8 c2h_shutdown_db; |
92 | __s8 h2c_shutdown_db; | 87 | __s8 h2c_shutdown_db; |
93 | __s8 h2c_config_db; | 88 | __s8 h2c_config_db; |
94 | __u8 shutdown_status; | 89 | __u8 shutdown_status; |
95 | __u8 shutdown_card; | 90 | __u8 shutdown_card; |
96 | } __aligned(8); | 91 | } __attribute__ ((aligned(8))); |
97 | 92 | ||
98 | /** | 93 | /** |
99 | * struct mic_device_page: High level representation of the device page | 94 | * struct mic_device_page: High level representation of the device page |
@@ -116,10 +111,10 @@ struct mic_device_page { | |||
116 | * @num: The number of entries in the virtio_ring | 111 | * @num: The number of entries in the virtio_ring |
117 | */ | 112 | */ |
118 | struct mic_vqconfig { | 113 | struct mic_vqconfig { |
119 | __u64 address; | 114 | __le64 address; |
120 | __u64 used_address; | 115 | __le64 used_address; |
121 | __u16 num; | 116 | __le16 num; |
122 | } __aligned(8); | 117 | } __attribute__ ((aligned(8))); |
123 | 118 | ||
124 | /* | 119 | /* |
125 | * The alignment to use between consumer and producer parts of vring. | 120 | * The alignment to use between consumer and producer parts of vring. |
@@ -154,7 +149,7 @@ struct mic_vqconfig { | |||
154 | */ | 149 | */ |
155 | struct _mic_vring_info { | 150 | struct _mic_vring_info { |
156 | __u16 avail_idx; | 151 | __u16 avail_idx; |
157 | int magic; | 152 | __le32 magic; |
158 | }; | 153 | }; |
159 | 154 | ||
160 | /** | 155 | /** |
@@ -173,15 +168,13 @@ struct mic_vring { | |||
173 | int len; | 168 | int len; |
174 | }; | 169 | }; |
175 | 170 | ||
176 | #define mic_aligned_desc_size(d) ALIGN(mic_desc_size(d), 8) | 171 | #define mic_aligned_desc_size(d) __mic_align(mic_desc_size(d), 8) |
177 | 172 | ||
178 | #ifndef INTEL_MIC_CARD | 173 | #ifndef INTEL_MIC_CARD |
179 | static inline unsigned mic_desc_size(const struct mic_device_desc *desc) | 174 | static inline unsigned mic_desc_size(const struct mic_device_desc *desc) |
180 | { | 175 | { |
181 | return mic_aligned_size(*desc) | 176 | return sizeof(*desc) + desc->num_vq * sizeof(struct mic_vqconfig) |
182 | + desc->num_vq * mic_aligned_size(struct mic_vqconfig) | 177 | + desc->feature_len * 2 + desc->config_len; |
183 | + desc->feature_len * 2 | ||
184 | + desc->config_len; | ||
185 | } | 178 | } |
186 | 179 | ||
187 | static inline struct mic_vqconfig * | 180 | static inline struct mic_vqconfig * |
@@ -201,8 +194,7 @@ static inline __u8 *mic_vq_configspace(const struct mic_device_desc *desc) | |||
201 | } | 194 | } |
202 | static inline unsigned mic_total_desc_size(struct mic_device_desc *desc) | 195 | static inline unsigned mic_total_desc_size(struct mic_device_desc *desc) |
203 | { | 196 | { |
204 | return mic_aligned_desc_size(desc) + | 197 | return mic_aligned_desc_size(desc) + sizeof(struct mic_device_ctrl); |
205 | mic_aligned_size(struct mic_device_ctrl); | ||
206 | } | 198 | } |
207 | #endif | 199 | #endif |
208 | 200 | ||
diff --git a/include/uapi/linux/mqueue.h b/include/uapi/linux/mqueue.h index 8b5a79615fbf..d0a2b8e89813 100644 --- a/include/uapi/linux/mqueue.h +++ b/include/uapi/linux/mqueue.h | |||
@@ -23,11 +23,11 @@ | |||
23 | #define MQ_BYTES_MAX 819200 | 23 | #define MQ_BYTES_MAX 819200 |
24 | 24 | ||
25 | struct mq_attr { | 25 | struct mq_attr { |
26 | long mq_flags; /* message queue flags */ | 26 | __kernel_long_t mq_flags; /* message queue flags */ |
27 | long mq_maxmsg; /* maximum number of messages */ | 27 | __kernel_long_t mq_maxmsg; /* maximum number of messages */ |
28 | long mq_msgsize; /* maximum message size */ | 28 | __kernel_long_t mq_msgsize; /* maximum message size */ |
29 | long mq_curmsgs; /* number of messages currently queued */ | 29 | __kernel_long_t mq_curmsgs; /* number of messages currently queued */ |
30 | long __reserved[4]; /* ignored for input, zeroed for output */ | 30 | __kernel_long_t __reserved[4]; /* ignored for input, zeroed for output */ |
31 | }; | 31 | }; |
32 | 32 | ||
33 | /* | 33 | /* |
diff --git a/include/uapi/linux/msg.h b/include/uapi/linux/msg.h index 22d95c6854e0..a70375526578 100644 --- a/include/uapi/linux/msg.h +++ b/include/uapi/linux/msg.h | |||
@@ -34,8 +34,8 @@ struct msqid_ds { | |||
34 | 34 | ||
35 | /* message buffer for msgsnd and msgrcv calls */ | 35 | /* message buffer for msgsnd and msgrcv calls */ |
36 | struct msgbuf { | 36 | struct msgbuf { |
37 | long mtype; /* type of message */ | 37 | __kernel_long_t mtype; /* type of message */ |
38 | char mtext[1]; /* message text */ | 38 | char mtext[1]; /* message text */ |
39 | }; | 39 | }; |
40 | 40 | ||
41 | /* buffer for msgctl calls IPC_INFO, MSG_INFO */ | 41 | /* buffer for msgctl calls IPC_INFO, MSG_INFO */ |
diff --git a/include/uapi/linux/neighbour.h b/include/uapi/linux/neighbour.h index f175212420ab..d3ef583104e0 100644 --- a/include/uapi/linux/neighbour.h +++ b/include/uapi/linux/neighbour.h | |||
@@ -58,7 +58,7 @@ enum { | |||
58 | 58 | ||
59 | /* NUD_NOARP & NUD_PERMANENT are pseudostates, they never change | 59 | /* NUD_NOARP & NUD_PERMANENT are pseudostates, they never change |
60 | and make no address resolution or NUD. | 60 | and make no address resolution or NUD. |
61 | NUD_PERMANENT is also cannot be deleted by garbage collectors. | 61 | NUD_PERMANENT also cannot be deleted by garbage collectors. |
62 | */ | 62 | */ |
63 | 63 | ||
64 | struct nda_cacheinfo { | 64 | struct nda_cacheinfo { |
diff --git a/include/uapi/linux/net_tstamp.h b/include/uapi/linux/net_tstamp.h index ae5df122e42f..f53879c0f590 100644 --- a/include/uapi/linux/net_tstamp.h +++ b/include/uapi/linux/net_tstamp.h | |||
@@ -26,17 +26,17 @@ enum { | |||
26 | }; | 26 | }; |
27 | 27 | ||
28 | /** | 28 | /** |
29 | * struct hwtstamp_config - %SIOCSHWTSTAMP parameter | 29 | * struct hwtstamp_config - %SIOCGHWTSTAMP and %SIOCSHWTSTAMP parameter |
30 | * | 30 | * |
31 | * @flags: no flags defined right now, must be zero | 31 | * @flags: no flags defined right now, must be zero for %SIOCSHWTSTAMP |
32 | * @tx_type: one of HWTSTAMP_TX_* | 32 | * @tx_type: one of HWTSTAMP_TX_* |
33 | * @rx_type: one of one of HWTSTAMP_FILTER_* | 33 | * @rx_filter: one of HWTSTAMP_FILTER_* |
34 | * | 34 | * |
35 | * %SIOCSHWTSTAMP expects a &struct ifreq with a ifr_data pointer to | 35 | * %SIOCGHWTSTAMP and %SIOCSHWTSTAMP expect a &struct ifreq with a |
36 | * this structure. dev_ifsioc() in the kernel takes care of the | 36 | * ifr_data pointer to this structure. For %SIOCSHWTSTAMP, if the |
37 | * translation between 32 bit userspace and 64 bit kernel. The | 37 | * driver or hardware does not support the requested @rx_filter value, |
38 | * structure is intentionally chosen so that it has the same layout on | 38 | * the driver may use a more general filter mode. In this case |
39 | * 32 and 64 bit systems, don't break this! | 39 | * @rx_filter will indicate the actual mode on return. |
40 | */ | 40 | */ |
41 | struct hwtstamp_config { | 41 | struct hwtstamp_config { |
42 | int flags; | 42 | int flags; |
diff --git a/include/uapi/linux/netconf.h b/include/uapi/linux/netconf.h index 64804a798b0c..669a1f0b1d97 100644 --- a/include/uapi/linux/netconf.h +++ b/include/uapi/linux/netconf.h | |||
@@ -14,6 +14,7 @@ enum { | |||
14 | NETCONFA_FORWARDING, | 14 | NETCONFA_FORWARDING, |
15 | NETCONFA_RP_FILTER, | 15 | NETCONFA_RP_FILTER, |
16 | NETCONFA_MC_FORWARDING, | 16 | NETCONFA_MC_FORWARDING, |
17 | NETCONFA_PROXY_NEIGH, | ||
17 | __NETCONFA_MAX | 18 | __NETCONFA_MAX |
18 | }; | 19 | }; |
19 | #define NETCONFA_MAX (__NETCONFA_MAX - 1) | 20 | #define NETCONFA_MAX (__NETCONFA_MAX - 1) |
diff --git a/include/uapi/linux/netfilter.h b/include/uapi/linux/netfilter.h index f7dc0ebeeba5..ef1b1f88ca18 100644 --- a/include/uapi/linux/netfilter.h +++ b/include/uapi/linux/netfilter.h | |||
@@ -53,6 +53,7 @@ enum nf_inet_hooks { | |||
53 | 53 | ||
54 | enum { | 54 | enum { |
55 | NFPROTO_UNSPEC = 0, | 55 | NFPROTO_UNSPEC = 0, |
56 | NFPROTO_INET = 1, | ||
56 | NFPROTO_IPV4 = 2, | 57 | NFPROTO_IPV4 = 2, |
57 | NFPROTO_ARP = 3, | 58 | NFPROTO_ARP = 3, |
58 | NFPROTO_BRIDGE = 7, | 59 | NFPROTO_BRIDGE = 7, |
diff --git a/include/uapi/linux/netfilter/Kbuild b/include/uapi/linux/netfilter/Kbuild index 17c3af2c4bb9..1d973d2ba417 100644 --- a/include/uapi/linux/netfilter/Kbuild +++ b/include/uapi/linux/netfilter/Kbuild | |||
@@ -39,6 +39,7 @@ header-y += xt_TEE.h | |||
39 | header-y += xt_TPROXY.h | 39 | header-y += xt_TPROXY.h |
40 | header-y += xt_addrtype.h | 40 | header-y += xt_addrtype.h |
41 | header-y += xt_bpf.h | 41 | header-y += xt_bpf.h |
42 | header-y += xt_cgroup.h | ||
42 | header-y += xt_cluster.h | 43 | header-y += xt_cluster.h |
43 | header-y += xt_comment.h | 44 | header-y += xt_comment.h |
44 | header-y += xt_connbytes.h | 45 | header-y += xt_connbytes.h |
@@ -54,8 +55,10 @@ header-y += xt_ecn.h | |||
54 | header-y += xt_esp.h | 55 | header-y += xt_esp.h |
55 | header-y += xt_hashlimit.h | 56 | header-y += xt_hashlimit.h |
56 | header-y += xt_helper.h | 57 | header-y += xt_helper.h |
58 | header-y += xt_ipcomp.h | ||
57 | header-y += xt_iprange.h | 59 | header-y += xt_iprange.h |
58 | header-y += xt_ipvs.h | 60 | header-y += xt_ipvs.h |
61 | header-y += xt_l2tp.h | ||
59 | header-y += xt_length.h | 62 | header-y += xt_length.h |
60 | header-y += xt_limit.h | 63 | header-y += xt_limit.h |
61 | header-y += xt_mac.h | 64 | header-y += xt_mac.h |
diff --git a/include/uapi/linux/netfilter/nf_nat.h b/include/uapi/linux/netfilter/nf_nat.h index bf0cc373ffb6..1ad3659102b6 100644 --- a/include/uapi/linux/netfilter/nf_nat.h +++ b/include/uapi/linux/netfilter/nf_nat.h | |||
@@ -4,10 +4,14 @@ | |||
4 | #include <linux/netfilter.h> | 4 | #include <linux/netfilter.h> |
5 | #include <linux/netfilter/nf_conntrack_tuple_common.h> | 5 | #include <linux/netfilter/nf_conntrack_tuple_common.h> |
6 | 6 | ||
7 | #define NF_NAT_RANGE_MAP_IPS 1 | 7 | #define NF_NAT_RANGE_MAP_IPS (1 << 0) |
8 | #define NF_NAT_RANGE_PROTO_SPECIFIED 2 | 8 | #define NF_NAT_RANGE_PROTO_SPECIFIED (1 << 1) |
9 | #define NF_NAT_RANGE_PROTO_RANDOM 4 | 9 | #define NF_NAT_RANGE_PROTO_RANDOM (1 << 2) |
10 | #define NF_NAT_RANGE_PERSISTENT 8 | 10 | #define NF_NAT_RANGE_PERSISTENT (1 << 3) |
11 | #define NF_NAT_RANGE_PROTO_RANDOM_FULLY (1 << 4) | ||
12 | |||
13 | #define NF_NAT_RANGE_PROTO_RANDOM_ALL \ | ||
14 | (NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PROTO_RANDOM_FULLY) | ||
11 | 15 | ||
12 | struct nf_nat_ipv4_range { | 16 | struct nf_nat_ipv4_range { |
13 | unsigned int flags; | 17 | unsigned int flags; |
diff --git a/include/uapi/linux/netfilter/nf_tables.h b/include/uapi/linux/netfilter/nf_tables.h index fbfd229a8e99..83c985a6170b 100644 --- a/include/uapi/linux/netfilter/nf_tables.h +++ b/include/uapi/linux/netfilter/nf_tables.h | |||
@@ -110,11 +110,13 @@ enum nft_table_flags { | |||
110 | * | 110 | * |
111 | * @NFTA_TABLE_NAME: name of the table (NLA_STRING) | 111 | * @NFTA_TABLE_NAME: name of the table (NLA_STRING) |
112 | * @NFTA_TABLE_FLAGS: bitmask of enum nft_table_flags (NLA_U32) | 112 | * @NFTA_TABLE_FLAGS: bitmask of enum nft_table_flags (NLA_U32) |
113 | * @NFTA_TABLE_USE: number of chains in this table (NLA_U32) | ||
113 | */ | 114 | */ |
114 | enum nft_table_attributes { | 115 | enum nft_table_attributes { |
115 | NFTA_TABLE_UNSPEC, | 116 | NFTA_TABLE_UNSPEC, |
116 | NFTA_TABLE_NAME, | 117 | NFTA_TABLE_NAME, |
117 | NFTA_TABLE_FLAGS, | 118 | NFTA_TABLE_FLAGS, |
119 | NFTA_TABLE_USE, | ||
118 | __NFTA_TABLE_MAX | 120 | __NFTA_TABLE_MAX |
119 | }; | 121 | }; |
120 | #define NFTA_TABLE_MAX (__NFTA_TABLE_MAX - 1) | 122 | #define NFTA_TABLE_MAX (__NFTA_TABLE_MAX - 1) |
@@ -529,6 +531,8 @@ enum nft_exthdr_attributes { | |||
529 | * @NFT_META_NFTRACE: packet nftrace bit | 531 | * @NFT_META_NFTRACE: packet nftrace bit |
530 | * @NFT_META_RTCLASSID: realm value of packet's route (skb->dst->tclassid) | 532 | * @NFT_META_RTCLASSID: realm value of packet's route (skb->dst->tclassid) |
531 | * @NFT_META_SECMARK: packet secmark (skb->secmark) | 533 | * @NFT_META_SECMARK: packet secmark (skb->secmark) |
534 | * @NFT_META_NFPROTO: netfilter protocol | ||
535 | * @NFT_META_L4PROTO: layer 4 protocol number | ||
532 | */ | 536 | */ |
533 | enum nft_meta_keys { | 537 | enum nft_meta_keys { |
534 | NFT_META_LEN, | 538 | NFT_META_LEN, |
@@ -546,6 +550,8 @@ enum nft_meta_keys { | |||
546 | NFT_META_NFTRACE, | 550 | NFT_META_NFTRACE, |
547 | NFT_META_RTCLASSID, | 551 | NFT_META_RTCLASSID, |
548 | NFT_META_SECMARK, | 552 | NFT_META_SECMARK, |
553 | NFT_META_NFPROTO, | ||
554 | NFT_META_L4PROTO, | ||
549 | }; | 555 | }; |
550 | 556 | ||
551 | /** | 557 | /** |
@@ -553,11 +559,13 @@ enum nft_meta_keys { | |||
553 | * | 559 | * |
554 | * @NFTA_META_DREG: destination register (NLA_U32) | 560 | * @NFTA_META_DREG: destination register (NLA_U32) |
555 | * @NFTA_META_KEY: meta data item to load (NLA_U32: nft_meta_keys) | 561 | * @NFTA_META_KEY: meta data item to load (NLA_U32: nft_meta_keys) |
562 | * @NFTA_META_SREG: source register (NLA_U32) | ||
556 | */ | 563 | */ |
557 | enum nft_meta_attributes { | 564 | enum nft_meta_attributes { |
558 | NFTA_META_UNSPEC, | 565 | NFTA_META_UNSPEC, |
559 | NFTA_META_DREG, | 566 | NFTA_META_DREG, |
560 | NFTA_META_KEY, | 567 | NFTA_META_KEY, |
568 | NFTA_META_SREG, | ||
561 | __NFTA_META_MAX | 569 | __NFTA_META_MAX |
562 | }; | 570 | }; |
563 | #define NFTA_META_MAX (__NFTA_META_MAX - 1) | 571 | #define NFTA_META_MAX (__NFTA_META_MAX - 1) |
@@ -601,12 +609,14 @@ enum nft_ct_keys { | |||
601 | * @NFTA_CT_DREG: destination register (NLA_U32) | 609 | * @NFTA_CT_DREG: destination register (NLA_U32) |
602 | * @NFTA_CT_KEY: conntrack data item to load (NLA_U32: nft_ct_keys) | 610 | * @NFTA_CT_KEY: conntrack data item to load (NLA_U32: nft_ct_keys) |
603 | * @NFTA_CT_DIRECTION: direction in case of directional keys (NLA_U8) | 611 | * @NFTA_CT_DIRECTION: direction in case of directional keys (NLA_U8) |
612 | * @NFTA_CT_SREG: source register (NLA_U32) | ||
604 | */ | 613 | */ |
605 | enum nft_ct_attributes { | 614 | enum nft_ct_attributes { |
606 | NFTA_CT_UNSPEC, | 615 | NFTA_CT_UNSPEC, |
607 | NFTA_CT_DREG, | 616 | NFTA_CT_DREG, |
608 | NFTA_CT_KEY, | 617 | NFTA_CT_KEY, |
609 | NFTA_CT_DIRECTION, | 618 | NFTA_CT_DIRECTION, |
619 | NFTA_CT_SREG, | ||
610 | __NFTA_CT_MAX | 620 | __NFTA_CT_MAX |
611 | }; | 621 | }; |
612 | #define NFTA_CT_MAX (__NFTA_CT_MAX - 1) | 622 | #define NFTA_CT_MAX (__NFTA_CT_MAX - 1) |
@@ -658,6 +668,26 @@ enum nft_log_attributes { | |||
658 | #define NFTA_LOG_MAX (__NFTA_LOG_MAX - 1) | 668 | #define NFTA_LOG_MAX (__NFTA_LOG_MAX - 1) |
659 | 669 | ||
660 | /** | 670 | /** |
671 | * enum nft_queue_attributes - nf_tables queue expression netlink attributes | ||
672 | * | ||
673 | * @NFTA_QUEUE_NUM: netlink queue to send messages to (NLA_U16) | ||
674 | * @NFTA_QUEUE_TOTAL: number of queues to load balance packets on (NLA_U16) | ||
675 | * @NFTA_QUEUE_FLAGS: various flags (NLA_U16) | ||
676 | */ | ||
677 | enum nft_queue_attributes { | ||
678 | NFTA_QUEUE_UNSPEC, | ||
679 | NFTA_QUEUE_NUM, | ||
680 | NFTA_QUEUE_TOTAL, | ||
681 | NFTA_QUEUE_FLAGS, | ||
682 | __NFTA_QUEUE_MAX | ||
683 | }; | ||
684 | #define NFTA_QUEUE_MAX (__NFTA_QUEUE_MAX - 1) | ||
685 | |||
686 | #define NFT_QUEUE_FLAG_BYPASS 0x01 /* for compatibility with v2 */ | ||
687 | #define NFT_QUEUE_FLAG_CPU_FANOUT 0x02 /* use current CPU (no hashing) */ | ||
688 | #define NFT_QUEUE_FLAG_MASK 0x03 | ||
689 | |||
690 | /** | ||
661 | * enum nft_reject_types - nf_tables reject expression reject types | 691 | * enum nft_reject_types - nf_tables reject expression reject types |
662 | * | 692 | * |
663 | * @NFT_REJECT_ICMP_UNREACH: reject using ICMP unreachable | 693 | * @NFT_REJECT_ICMP_UNREACH: reject using ICMP unreachable |
diff --git a/include/uapi/linux/netfilter/nfnetlink_queue.h b/include/uapi/linux/netfilter/nfnetlink_queue.h index 0132bad79de7..8dd819e2b5fe 100644 --- a/include/uapi/linux/netfilter/nfnetlink_queue.h +++ b/include/uapi/linux/netfilter/nfnetlink_queue.h | |||
@@ -47,6 +47,8 @@ enum nfqnl_attr_type { | |||
47 | NFQA_CAP_LEN, /* __u32 length of captured packet */ | 47 | NFQA_CAP_LEN, /* __u32 length of captured packet */ |
48 | NFQA_SKB_INFO, /* __u32 skb meta information */ | 48 | NFQA_SKB_INFO, /* __u32 skb meta information */ |
49 | NFQA_EXP, /* nf_conntrack_netlink.h */ | 49 | NFQA_EXP, /* nf_conntrack_netlink.h */ |
50 | NFQA_UID, /* __u32 sk uid */ | ||
51 | NFQA_GID, /* __u32 sk gid */ | ||
50 | 52 | ||
51 | __NFQA_MAX | 53 | __NFQA_MAX |
52 | }; | 54 | }; |
@@ -99,7 +101,8 @@ enum nfqnl_attr_config { | |||
99 | #define NFQA_CFG_F_FAIL_OPEN (1 << 0) | 101 | #define NFQA_CFG_F_FAIL_OPEN (1 << 0) |
100 | #define NFQA_CFG_F_CONNTRACK (1 << 1) | 102 | #define NFQA_CFG_F_CONNTRACK (1 << 1) |
101 | #define NFQA_CFG_F_GSO (1 << 2) | 103 | #define NFQA_CFG_F_GSO (1 << 2) |
102 | #define NFQA_CFG_F_MAX (1 << 3) | 104 | #define NFQA_CFG_F_UID_GID (1 << 3) |
105 | #define NFQA_CFG_F_MAX (1 << 4) | ||
103 | 106 | ||
104 | /* flags for NFQA_SKB_INFO */ | 107 | /* flags for NFQA_SKB_INFO */ |
105 | /* packet appears to have wrong checksums, but they are ok */ | 108 | /* packet appears to have wrong checksums, but they are ok */ |
diff --git a/include/uapi/linux/netfilter/xt_cgroup.h b/include/uapi/linux/netfilter/xt_cgroup.h new file mode 100644 index 000000000000..43acb7e175f6 --- /dev/null +++ b/include/uapi/linux/netfilter/xt_cgroup.h | |||
@@ -0,0 +1,11 @@ | |||
1 | #ifndef _UAPI_XT_CGROUP_H | ||
2 | #define _UAPI_XT_CGROUP_H | ||
3 | |||
4 | #include <linux/types.h> | ||
5 | |||
6 | struct xt_cgroup_info { | ||
7 | __u32 id; | ||
8 | __u32 invert; | ||
9 | }; | ||
10 | |||
11 | #endif /* _UAPI_XT_CGROUP_H */ | ||
diff --git a/include/uapi/linux/netfilter/xt_ipcomp.h b/include/uapi/linux/netfilter/xt_ipcomp.h new file mode 100644 index 000000000000..45c7e40eb8e1 --- /dev/null +++ b/include/uapi/linux/netfilter/xt_ipcomp.h | |||
@@ -0,0 +1,16 @@ | |||
1 | #ifndef _XT_IPCOMP_H | ||
2 | #define _XT_IPCOMP_H | ||
3 | |||
4 | #include <linux/types.h> | ||
5 | |||
6 | struct xt_ipcomp { | ||
7 | __u32 spis[2]; /* Security Parameter Index */ | ||
8 | __u8 invflags; /* Inverse flags */ | ||
9 | __u8 hdrres; /* Test of the Reserved Filed */ | ||
10 | }; | ||
11 | |||
12 | /* Values for "invflags" field in struct xt_ipcomp. */ | ||
13 | #define XT_IPCOMP_INV_SPI 0x01 /* Invert the sense of spi. */ | ||
14 | #define XT_IPCOMP_INV_MASK 0x01 /* All possible flags. */ | ||
15 | |||
16 | #endif /*_XT_IPCOMP_H*/ | ||
diff --git a/include/uapi/linux/netfilter/xt_l2tp.h b/include/uapi/linux/netfilter/xt_l2tp.h new file mode 100644 index 000000000000..7dccfa0acbfa --- /dev/null +++ b/include/uapi/linux/netfilter/xt_l2tp.h | |||
@@ -0,0 +1,27 @@ | |||
1 | #ifndef _LINUX_NETFILTER_XT_L2TP_H | ||
2 | #define _LINUX_NETFILTER_XT_L2TP_H | ||
3 | |||
4 | #include <linux/types.h> | ||
5 | |||
6 | enum xt_l2tp_type { | ||
7 | XT_L2TP_TYPE_CONTROL, | ||
8 | XT_L2TP_TYPE_DATA, | ||
9 | }; | ||
10 | |||
11 | /* L2TP matching stuff */ | ||
12 | struct xt_l2tp_info { | ||
13 | __u32 tid; /* tunnel id */ | ||
14 | __u32 sid; /* session id */ | ||
15 | __u8 version; /* L2TP protocol version */ | ||
16 | __u8 type; /* L2TP packet type */ | ||
17 | __u8 flags; /* which fields to match */ | ||
18 | }; | ||
19 | |||
20 | enum { | ||
21 | XT_L2TP_TID = (1 << 0), /* match L2TP tunnel id */ | ||
22 | XT_L2TP_SID = (1 << 1), /* match L2TP session id */ | ||
23 | XT_L2TP_VERSION = (1 << 2), /* match L2TP protocol version */ | ||
24 | XT_L2TP_TYPE = (1 << 3), /* match L2TP packet type */ | ||
25 | }; | ||
26 | |||
27 | #endif /* _LINUX_NETFILTER_XT_L2TP_H */ | ||
diff --git a/include/uapi/linux/netfilter/xt_osf.h b/include/uapi/linux/netfilter/xt_osf.h index 18afa495f973..5d66caeba3ee 100644 --- a/include/uapi/linux/netfilter/xt_osf.h +++ b/include/uapi/linux/netfilter/xt_osf.h | |||
@@ -13,8 +13,7 @@ | |||
13 | * GNU General Public License for more details. | 13 | * GNU General Public License for more details. |
14 | * | 14 | * |
15 | * You should have received a copy of the GNU General Public License | 15 | * You should have received a copy of the GNU General Public License |
16 | * along with this program; if not, write to the Free Software | 16 | * along with this program; if not, see <http://www.gnu.org/licenses/>. |
17 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
18 | */ | 17 | */ |
19 | 18 | ||
20 | #ifndef _XT_OSF_H | 19 | #ifndef _XT_OSF_H |
diff --git a/include/uapi/linux/netlink_diag.h b/include/uapi/linux/netlink_diag.h index 4e31db4eea41..f2159d30d1f5 100644 --- a/include/uapi/linux/netlink_diag.h +++ b/include/uapi/linux/netlink_diag.h | |||
@@ -33,6 +33,7 @@ struct netlink_diag_ring { | |||
33 | }; | 33 | }; |
34 | 34 | ||
35 | enum { | 35 | enum { |
36 | /* NETLINK_DIAG_NONE, standard nl API requires this attribute! */ | ||
36 | NETLINK_DIAG_MEMINFO, | 37 | NETLINK_DIAG_MEMINFO, |
37 | NETLINK_DIAG_GROUPS, | 38 | NETLINK_DIAG_GROUPS, |
38 | NETLINK_DIAG_RX_RING, | 39 | NETLINK_DIAG_RX_RING, |
diff --git a/include/uapi/linux/nfs4.h b/include/uapi/linux/nfs4.h index 788128ebac45..35f5f4c6c260 100644 --- a/include/uapi/linux/nfs4.h +++ b/include/uapi/linux/nfs4.h | |||
@@ -150,7 +150,7 @@ | |||
150 | #define NFS4_SECINFO_STYLE4_CURRENT_FH 0 | 150 | #define NFS4_SECINFO_STYLE4_CURRENT_FH 0 |
151 | #define NFS4_SECINFO_STYLE4_PARENT 1 | 151 | #define NFS4_SECINFO_STYLE4_PARENT 1 |
152 | 152 | ||
153 | #define NFS4_MAX_UINT64 (~(u64)0) | 153 | #define NFS4_MAX_UINT64 (~(__u64)0) |
154 | 154 | ||
155 | /* An NFS4 sessions server must support at least NFS4_MAX_OPS operations. | 155 | /* An NFS4 sessions server must support at least NFS4_MAX_OPS operations. |
156 | * If a compound requires more operations, adjust NFS4_MAX_OPS accordingly. | 156 | * If a compound requires more operations, adjust NFS4_MAX_OPS accordingly. |
diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h index f752e9821e71..91054fd660e0 100644 --- a/include/uapi/linux/nl80211.h +++ b/include/uapi/linux/nl80211.h | |||
@@ -581,7 +581,14 @@ | |||
581 | * operation, %NL80211_ATTR_MAC contains the peer MAC address, and | 581 | * operation, %NL80211_ATTR_MAC contains the peer MAC address, and |
582 | * %NL80211_ATTR_REASON_CODE the reason code to be used (only with | 582 | * %NL80211_ATTR_REASON_CODE the reason code to be used (only with |
583 | * %NL80211_TDLS_TEARDOWN). | 583 | * %NL80211_TDLS_TEARDOWN). |
584 | * @NL80211_CMD_TDLS_MGMT: Send a TDLS management frame. | 584 | * @NL80211_CMD_TDLS_MGMT: Send a TDLS management frame. The |
585 | * %NL80211_ATTR_TDLS_ACTION attribute determines the type of frame to be | ||
586 | * sent. Public Action codes (802.11-2012 8.1.5.1) will be sent as | ||
587 | * 802.11 management frames, while TDLS action codes (802.11-2012 | ||
588 | * 8.5.13.1) will be encapsulated and sent as data frames. The currently | ||
589 | * supported Public Action code is %WLAN_PUB_ACTION_TDLS_DISCOVER_RES | ||
590 | * and the currently supported TDLS actions codes are given in | ||
591 | * &enum ieee80211_tdls_actioncode. | ||
585 | * | 592 | * |
586 | * @NL80211_CMD_UNEXPECTED_FRAME: Used by an application controlling an AP | 593 | * @NL80211_CMD_UNEXPECTED_FRAME: Used by an application controlling an AP |
587 | * (or GO) interface (i.e. hostapd) to ask for unexpected frames to | 594 | * (or GO) interface (i.e. hostapd) to ask for unexpected frames to |
@@ -686,6 +693,21 @@ | |||
686 | * other station that transmission must be blocked until the channel | 693 | * other station that transmission must be blocked until the channel |
687 | * switch is complete. | 694 | * switch is complete. |
688 | * | 695 | * |
696 | * @NL80211_CMD_VENDOR: Vendor-specified command/event. The command is specified | ||
697 | * by the %NL80211_ATTR_VENDOR_ID attribute and a sub-command in | ||
698 | * %NL80211_ATTR_VENDOR_SUBCMD. Parameter(s) can be transported in | ||
699 | * %NL80211_ATTR_VENDOR_DATA. | ||
700 | * For feature advertisement, the %NL80211_ATTR_VENDOR_DATA attribute is | ||
701 | * used in the wiphy data as a nested attribute containing descriptions | ||
702 | * (&struct nl80211_vendor_cmd_info) of the supported vendor commands. | ||
703 | * This may also be sent as an event with the same attributes. | ||
704 | * | ||
705 | * @NL80211_CMD_SET_QOS_MAP: Set Interworking QoS mapping for IP DSCP values. | ||
706 | * The QoS mapping information is included in %NL80211_ATTR_QOS_MAP. If | ||
707 | * that attribute is not included, QoS mapping is disabled. Since this | ||
708 | * QoS mapping is relevant for IP packets, it is only valid during an | ||
709 | * association. This is cleared on disassociation and AP restart. | ||
710 | * | ||
689 | * @NL80211_CMD_MAX: highest used command number | 711 | * @NL80211_CMD_MAX: highest used command number |
690 | * @__NL80211_CMD_AFTER_LAST: internal use | 712 | * @__NL80211_CMD_AFTER_LAST: internal use |
691 | */ | 713 | */ |
@@ -853,6 +875,10 @@ enum nl80211_commands { | |||
853 | 875 | ||
854 | NL80211_CMD_CHANNEL_SWITCH, | 876 | NL80211_CMD_CHANNEL_SWITCH, |
855 | 877 | ||
878 | NL80211_CMD_VENDOR, | ||
879 | |||
880 | NL80211_CMD_SET_QOS_MAP, | ||
881 | |||
856 | /* add new commands above here */ | 882 | /* add new commands above here */ |
857 | 883 | ||
858 | /* used to define NL80211_CMD_MAX below */ | 884 | /* used to define NL80211_CMD_MAX below */ |
@@ -1508,6 +1534,27 @@ enum nl80211_commands { | |||
1508 | * to react to radar events, e.g. initiate a channel switch or leave the | 1534 | * to react to radar events, e.g. initiate a channel switch or leave the |
1509 | * IBSS network. | 1535 | * IBSS network. |
1510 | * | 1536 | * |
1537 | * @NL80211_ATTR_SUPPORT_5_MHZ: A flag indicating that the device supports | ||
1538 | * 5 MHz channel bandwidth. | ||
1539 | * @NL80211_ATTR_SUPPORT_10_MHZ: A flag indicating that the device supports | ||
1540 | * 10 MHz channel bandwidth. | ||
1541 | * | ||
1542 | * @NL80211_ATTR_OPMODE_NOTIF: Operating mode field from Operating Mode | ||
1543 | * Notification Element based on association request when used with | ||
1544 | * %NL80211_CMD_NEW_STATION; u8 attribute. | ||
1545 | * | ||
1546 | * @NL80211_ATTR_VENDOR_ID: The vendor ID, either a 24-bit OUI or, if | ||
1547 | * %NL80211_VENDOR_ID_IS_LINUX is set, a special Linux ID (not used yet) | ||
1548 | * @NL80211_ATTR_VENDOR_SUBCMD: vendor sub-command | ||
1549 | * @NL80211_ATTR_VENDOR_DATA: data for the vendor command, if any; this | ||
1550 | * attribute is also used for vendor command feature advertisement | ||
1551 | * @NL80211_ATTR_VENDOR_EVENTS: used for event list advertising in the wiphy | ||
1552 | * info, containing a nested array of possible events | ||
1553 | * | ||
1554 | * @NL80211_ATTR_QOS_MAP: IP DSCP mapping for Interworking QoS mapping. This | ||
1555 | * data is in the format defined for the payload of the QoS Map Set element | ||
1556 | * in IEEE Std 802.11-2012, 8.4.2.97. | ||
1557 | * | ||
1511 | * @NL80211_ATTR_MAX: highest attribute number currently defined | 1558 | * @NL80211_ATTR_MAX: highest attribute number currently defined |
1512 | * @__NL80211_ATTR_AFTER_LAST: internal use | 1559 | * @__NL80211_ATTR_AFTER_LAST: internal use |
1513 | */ | 1560 | */ |
@@ -1824,6 +1871,18 @@ enum nl80211_attrs { | |||
1824 | 1871 | ||
1825 | NL80211_ATTR_HANDLE_DFS, | 1872 | NL80211_ATTR_HANDLE_DFS, |
1826 | 1873 | ||
1874 | NL80211_ATTR_SUPPORT_5_MHZ, | ||
1875 | NL80211_ATTR_SUPPORT_10_MHZ, | ||
1876 | |||
1877 | NL80211_ATTR_OPMODE_NOTIF, | ||
1878 | |||
1879 | NL80211_ATTR_VENDOR_ID, | ||
1880 | NL80211_ATTR_VENDOR_SUBCMD, | ||
1881 | NL80211_ATTR_VENDOR_DATA, | ||
1882 | NL80211_ATTR_VENDOR_EVENTS, | ||
1883 | |||
1884 | NL80211_ATTR_QOS_MAP, | ||
1885 | |||
1827 | /* add attributes here, update the policy in nl80211.c */ | 1886 | /* add attributes here, update the policy in nl80211.c */ |
1828 | 1887 | ||
1829 | __NL80211_ATTR_AFTER_LAST, | 1888 | __NL80211_ATTR_AFTER_LAST, |
@@ -2224,10 +2283,9 @@ enum nl80211_band_attr { | |||
2224 | * @NL80211_FREQUENCY_ATTR_FREQ: Frequency in MHz | 2283 | * @NL80211_FREQUENCY_ATTR_FREQ: Frequency in MHz |
2225 | * @NL80211_FREQUENCY_ATTR_DISABLED: Channel is disabled in current | 2284 | * @NL80211_FREQUENCY_ATTR_DISABLED: Channel is disabled in current |
2226 | * regulatory domain. | 2285 | * regulatory domain. |
2227 | * @NL80211_FREQUENCY_ATTR_PASSIVE_SCAN: Only passive scanning is | 2286 | * @NL80211_FREQUENCY_ATTR_NO_IR: no mechanisms that initiate radiation |
2228 | * permitted on this channel in current regulatory domain. | 2287 | * are permitted on this channel, this includes sending probe |
2229 | * @NL80211_FREQUENCY_ATTR_NO_IBSS: IBSS networks are not permitted | 2288 | * requests, or modes of operation that require beaconing. |
2230 | * on this channel in current regulatory domain. | ||
2231 | * @NL80211_FREQUENCY_ATTR_RADAR: Radar detection is mandatory | 2289 | * @NL80211_FREQUENCY_ATTR_RADAR: Radar detection is mandatory |
2232 | * on this channel in current regulatory domain. | 2290 | * on this channel in current regulatory domain. |
2233 | * @NL80211_FREQUENCY_ATTR_MAX_TX_POWER: Maximum transmission power in mBm | 2291 | * @NL80211_FREQUENCY_ATTR_MAX_TX_POWER: Maximum transmission power in mBm |
@@ -2254,8 +2312,8 @@ enum nl80211_frequency_attr { | |||
2254 | __NL80211_FREQUENCY_ATTR_INVALID, | 2312 | __NL80211_FREQUENCY_ATTR_INVALID, |
2255 | NL80211_FREQUENCY_ATTR_FREQ, | 2313 | NL80211_FREQUENCY_ATTR_FREQ, |
2256 | NL80211_FREQUENCY_ATTR_DISABLED, | 2314 | NL80211_FREQUENCY_ATTR_DISABLED, |
2257 | NL80211_FREQUENCY_ATTR_PASSIVE_SCAN, | 2315 | NL80211_FREQUENCY_ATTR_NO_IR, |
2258 | NL80211_FREQUENCY_ATTR_NO_IBSS, | 2316 | __NL80211_FREQUENCY_ATTR_NO_IBSS, |
2259 | NL80211_FREQUENCY_ATTR_RADAR, | 2317 | NL80211_FREQUENCY_ATTR_RADAR, |
2260 | NL80211_FREQUENCY_ATTR_MAX_TX_POWER, | 2318 | NL80211_FREQUENCY_ATTR_MAX_TX_POWER, |
2261 | NL80211_FREQUENCY_ATTR_DFS_STATE, | 2319 | NL80211_FREQUENCY_ATTR_DFS_STATE, |
@@ -2271,6 +2329,9 @@ enum nl80211_frequency_attr { | |||
2271 | }; | 2329 | }; |
2272 | 2330 | ||
2273 | #define NL80211_FREQUENCY_ATTR_MAX_TX_POWER NL80211_FREQUENCY_ATTR_MAX_TX_POWER | 2331 | #define NL80211_FREQUENCY_ATTR_MAX_TX_POWER NL80211_FREQUENCY_ATTR_MAX_TX_POWER |
2332 | #define NL80211_FREQUENCY_ATTR_PASSIVE_SCAN NL80211_FREQUENCY_ATTR_NO_IR | ||
2333 | #define NL80211_FREQUENCY_ATTR_NO_IBSS NL80211_FREQUENCY_ATTR_NO_IR | ||
2334 | #define NL80211_FREQUENCY_ATTR_NO_IR NL80211_FREQUENCY_ATTR_NO_IR | ||
2274 | 2335 | ||
2275 | /** | 2336 | /** |
2276 | * enum nl80211_bitrate_attr - bitrate attributes | 2337 | * enum nl80211_bitrate_attr - bitrate attributes |
@@ -2413,8 +2474,9 @@ enum nl80211_sched_scan_match_attr { | |||
2413 | * @NL80211_RRF_DFS: DFS support is required to be used | 2474 | * @NL80211_RRF_DFS: DFS support is required to be used |
2414 | * @NL80211_RRF_PTP_ONLY: this is only for Point To Point links | 2475 | * @NL80211_RRF_PTP_ONLY: this is only for Point To Point links |
2415 | * @NL80211_RRF_PTMP_ONLY: this is only for Point To Multi Point links | 2476 | * @NL80211_RRF_PTMP_ONLY: this is only for Point To Multi Point links |
2416 | * @NL80211_RRF_PASSIVE_SCAN: passive scan is required | 2477 | * @NL80211_RRF_NO_IR: no mechanisms that initiate radiation are allowed, |
2417 | * @NL80211_RRF_NO_IBSS: no IBSS is allowed | 2478 | * this includes probe requests or modes of operation that require |
2479 | * beaconing. | ||
2418 | */ | 2480 | */ |
2419 | enum nl80211_reg_rule_flags { | 2481 | enum nl80211_reg_rule_flags { |
2420 | NL80211_RRF_NO_OFDM = 1<<0, | 2482 | NL80211_RRF_NO_OFDM = 1<<0, |
@@ -2424,10 +2486,17 @@ enum nl80211_reg_rule_flags { | |||
2424 | NL80211_RRF_DFS = 1<<4, | 2486 | NL80211_RRF_DFS = 1<<4, |
2425 | NL80211_RRF_PTP_ONLY = 1<<5, | 2487 | NL80211_RRF_PTP_ONLY = 1<<5, |
2426 | NL80211_RRF_PTMP_ONLY = 1<<6, | 2488 | NL80211_RRF_PTMP_ONLY = 1<<6, |
2427 | NL80211_RRF_PASSIVE_SCAN = 1<<7, | 2489 | NL80211_RRF_NO_IR = 1<<7, |
2428 | NL80211_RRF_NO_IBSS = 1<<8, | 2490 | __NL80211_RRF_NO_IBSS = 1<<8, |
2429 | }; | 2491 | }; |
2430 | 2492 | ||
2493 | #define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR | ||
2494 | #define NL80211_RRF_NO_IBSS NL80211_RRF_NO_IR | ||
2495 | #define NL80211_RRF_NO_IR NL80211_RRF_NO_IR | ||
2496 | |||
2497 | /* For backport compatibility with older userspace */ | ||
2498 | #define NL80211_RRF_NO_IR_ALL (NL80211_RRF_NO_IR | __NL80211_RRF_NO_IBSS) | ||
2499 | |||
2431 | /** | 2500 | /** |
2432 | * enum nl80211_dfs_regions - regulatory DFS regions | 2501 | * enum nl80211_dfs_regions - regulatory DFS regions |
2433 | * | 2502 | * |
@@ -3058,21 +3127,35 @@ enum nl80211_key_attributes { | |||
3058 | * in an array of rates as defined in IEEE 802.11 7.3.2.2 (u8 values with | 3127 | * in an array of rates as defined in IEEE 802.11 7.3.2.2 (u8 values with |
3059 | * 1 = 500 kbps) but without the IE length restriction (at most | 3128 | * 1 = 500 kbps) but without the IE length restriction (at most |
3060 | * %NL80211_MAX_SUPP_RATES in a single array). | 3129 | * %NL80211_MAX_SUPP_RATES in a single array). |
3061 | * @NL80211_TXRATE_MCS: HT (MCS) rates allowed for TX rate selection | 3130 | * @NL80211_TXRATE_HT: HT (MCS) rates allowed for TX rate selection |
3062 | * in an array of MCS numbers. | 3131 | * in an array of MCS numbers. |
3132 | * @NL80211_TXRATE_VHT: VHT rates allowed for TX rate selection, | ||
3133 | * see &struct nl80211_txrate_vht | ||
3063 | * @__NL80211_TXRATE_AFTER_LAST: internal | 3134 | * @__NL80211_TXRATE_AFTER_LAST: internal |
3064 | * @NL80211_TXRATE_MAX: highest TX rate attribute | 3135 | * @NL80211_TXRATE_MAX: highest TX rate attribute |
3065 | */ | 3136 | */ |
3066 | enum nl80211_tx_rate_attributes { | 3137 | enum nl80211_tx_rate_attributes { |
3067 | __NL80211_TXRATE_INVALID, | 3138 | __NL80211_TXRATE_INVALID, |
3068 | NL80211_TXRATE_LEGACY, | 3139 | NL80211_TXRATE_LEGACY, |
3069 | NL80211_TXRATE_MCS, | 3140 | NL80211_TXRATE_HT, |
3141 | NL80211_TXRATE_VHT, | ||
3070 | 3142 | ||
3071 | /* keep last */ | 3143 | /* keep last */ |
3072 | __NL80211_TXRATE_AFTER_LAST, | 3144 | __NL80211_TXRATE_AFTER_LAST, |
3073 | NL80211_TXRATE_MAX = __NL80211_TXRATE_AFTER_LAST - 1 | 3145 | NL80211_TXRATE_MAX = __NL80211_TXRATE_AFTER_LAST - 1 |
3074 | }; | 3146 | }; |
3075 | 3147 | ||
3148 | #define NL80211_TXRATE_MCS NL80211_TXRATE_HT | ||
3149 | #define NL80211_VHT_NSS_MAX 8 | ||
3150 | |||
3151 | /** | ||
3152 | * struct nl80211_txrate_vht - VHT MCS/NSS txrate bitmap | ||
3153 | * @mcs: MCS bitmap table for each NSS (array index 0 for 1 stream, etc.) | ||
3154 | */ | ||
3155 | struct nl80211_txrate_vht { | ||
3156 | __u16 mcs[NL80211_VHT_NSS_MAX]; | ||
3157 | }; | ||
3158 | |||
3076 | /** | 3159 | /** |
3077 | * enum nl80211_band - Frequency band | 3160 | * enum nl80211_band - Frequency band |
3078 | * @NL80211_BAND_2GHZ: 2.4 GHz ISM band | 3161 | * @NL80211_BAND_2GHZ: 2.4 GHz ISM band |
@@ -3934,4 +4017,24 @@ enum nl80211_rxmgmt_flags { | |||
3934 | NL80211_RXMGMT_FLAG_ANSWERED = 1 << 0, | 4017 | NL80211_RXMGMT_FLAG_ANSWERED = 1 << 0, |
3935 | }; | 4018 | }; |
3936 | 4019 | ||
4020 | /* | ||
4021 | * If this flag is unset, the lower 24 bits are an OUI, if set | ||
4022 | * a Linux nl80211 vendor ID is used (no such IDs are allocated | ||
4023 | * yet, so that's not valid so far) | ||
4024 | */ | ||
4025 | #define NL80211_VENDOR_ID_IS_LINUX 0x80000000 | ||
4026 | |||
4027 | /** | ||
4028 | * struct nl80211_vendor_cmd_info - vendor command data | ||
4029 | * @vendor_id: If the %NL80211_VENDOR_ID_IS_LINUX flag is clear, then the | ||
4030 | * value is a 24-bit OUI; if it is set then a separately allocated ID | ||
4031 | * may be used, but no such IDs are allocated yet. New IDs should be | ||
4032 | * added to this file when needed. | ||
4033 | * @subcmd: sub-command ID for the command | ||
4034 | */ | ||
4035 | struct nl80211_vendor_cmd_info { | ||
4036 | __u32 vendor_id; | ||
4037 | __u32 subcmd; | ||
4038 | }; | ||
4039 | |||
3937 | #endif /* __LINUX_NL80211_H */ | 4040 | #endif /* __LINUX_NL80211_H */ |
diff --git a/include/uapi/linux/openvswitch.h b/include/uapi/linux/openvswitch.h index d120f9fe0017..970553cbbc8e 100644 --- a/include/uapi/linux/openvswitch.h +++ b/include/uapi/linux/openvswitch.h | |||
@@ -40,7 +40,15 @@ struct ovs_header { | |||
40 | 40 | ||
41 | #define OVS_DATAPATH_FAMILY "ovs_datapath" | 41 | #define OVS_DATAPATH_FAMILY "ovs_datapath" |
42 | #define OVS_DATAPATH_MCGROUP "ovs_datapath" | 42 | #define OVS_DATAPATH_MCGROUP "ovs_datapath" |
43 | #define OVS_DATAPATH_VERSION 0x1 | 43 | |
44 | /* V2: | ||
45 | * - API users are expected to provide OVS_DP_ATTR_USER_FEATURES | ||
46 | * when creating the datapath. | ||
47 | */ | ||
48 | #define OVS_DATAPATH_VERSION 2 | ||
49 | |||
50 | /* First OVS datapath version to support features */ | ||
51 | #define OVS_DP_VER_FEATURES 2 | ||
44 | 52 | ||
45 | enum ovs_datapath_cmd { | 53 | enum ovs_datapath_cmd { |
46 | OVS_DP_CMD_UNSPEC, | 54 | OVS_DP_CMD_UNSPEC, |
@@ -75,6 +83,7 @@ enum ovs_datapath_attr { | |||
75 | OVS_DP_ATTR_UPCALL_PID, /* Netlink PID to receive upcalls */ | 83 | OVS_DP_ATTR_UPCALL_PID, /* Netlink PID to receive upcalls */ |
76 | OVS_DP_ATTR_STATS, /* struct ovs_dp_stats */ | 84 | OVS_DP_ATTR_STATS, /* struct ovs_dp_stats */ |
77 | OVS_DP_ATTR_MEGAFLOW_STATS, /* struct ovs_dp_megaflow_stats */ | 85 | OVS_DP_ATTR_MEGAFLOW_STATS, /* struct ovs_dp_megaflow_stats */ |
86 | OVS_DP_ATTR_USER_FEATURES, /* OVS_DP_F_* */ | ||
78 | __OVS_DP_ATTR_MAX | 87 | __OVS_DP_ATTR_MAX |
79 | }; | 88 | }; |
80 | 89 | ||
@@ -106,6 +115,9 @@ struct ovs_vport_stats { | |||
106 | __u64 tx_dropped; /* no space available in linux */ | 115 | __u64 tx_dropped; /* no space available in linux */ |
107 | }; | 116 | }; |
108 | 117 | ||
118 | /* Allow last Netlink attribute to be unaligned */ | ||
119 | #define OVS_DP_F_UNALIGNED (1 << 0) | ||
120 | |||
109 | /* Fixed logical ports. */ | 121 | /* Fixed logical ports. */ |
110 | #define OVSP_LOCAL ((__u32)0) | 122 | #define OVSP_LOCAL ((__u32)0) |
111 | 123 | ||
diff --git a/include/uapi/linux/packet_diag.h b/include/uapi/linux/packet_diag.h index b2cc0cd9c4d9..d08c63f3dd6f 100644 --- a/include/uapi/linux/packet_diag.h +++ b/include/uapi/linux/packet_diag.h | |||
@@ -29,6 +29,7 @@ struct packet_diag_msg { | |||
29 | }; | 29 | }; |
30 | 30 | ||
31 | enum { | 31 | enum { |
32 | /* PACKET_DIAG_NONE, standard nl API requires this attribute! */ | ||
32 | PACKET_DIAG_INFO, | 33 | PACKET_DIAG_INFO, |
33 | PACKET_DIAG_MCLIST, | 34 | PACKET_DIAG_MCLIST, |
34 | PACKET_DIAG_RX_RING, | 35 | PACKET_DIAG_RX_RING, |
diff --git a/include/uapi/linux/pci_regs.h b/include/uapi/linux/pci_regs.h index 4a98e85438a7..30db069bce62 100644 --- a/include/uapi/linux/pci_regs.h +++ b/include/uapi/linux/pci_regs.h | |||
@@ -489,7 +489,12 @@ | |||
489 | #define PCI_EXP_LNKSTA_CLS 0x000f /* Current Link Speed */ | 489 | #define PCI_EXP_LNKSTA_CLS 0x000f /* Current Link Speed */ |
490 | #define PCI_EXP_LNKSTA_CLS_2_5GB 0x0001 /* Current Link Speed 2.5GT/s */ | 490 | #define PCI_EXP_LNKSTA_CLS_2_5GB 0x0001 /* Current Link Speed 2.5GT/s */ |
491 | #define PCI_EXP_LNKSTA_CLS_5_0GB 0x0002 /* Current Link Speed 5.0GT/s */ | 491 | #define PCI_EXP_LNKSTA_CLS_5_0GB 0x0002 /* Current Link Speed 5.0GT/s */ |
492 | #define PCI_EXP_LNKSTA_CLS_8_0GB 0x0003 /* Current Link Speed 8.0GT/s */ | ||
492 | #define PCI_EXP_LNKSTA_NLW 0x03f0 /* Negotiated Link Width */ | 493 | #define PCI_EXP_LNKSTA_NLW 0x03f0 /* Negotiated Link Width */ |
494 | #define PCI_EXP_LNKSTA_NLW_X1 0x0010 /* Current Link Width x1 */ | ||
495 | #define PCI_EXP_LNKSTA_NLW_X2 0x0020 /* Current Link Width x2 */ | ||
496 | #define PCI_EXP_LNKSTA_NLW_X4 0x0040 /* Current Link Width x4 */ | ||
497 | #define PCI_EXP_LNKSTA_NLW_X8 0x0080 /* Current Link Width x8 */ | ||
493 | #define PCI_EXP_LNKSTA_NLW_SHIFT 4 /* start of NLW mask in link status */ | 498 | #define PCI_EXP_LNKSTA_NLW_SHIFT 4 /* start of NLW mask in link status */ |
494 | #define PCI_EXP_LNKSTA_LT 0x0800 /* Link Training */ | 499 | #define PCI_EXP_LNKSTA_LT 0x0800 /* Link Training */ |
495 | #define PCI_EXP_LNKSTA_SLC 0x1000 /* Slot Clock Configuration */ | 500 | #define PCI_EXP_LNKSTA_SLC 0x1000 /* Slot Clock Configuration */ |
@@ -518,8 +523,16 @@ | |||
518 | #define PCI_EXP_SLTCTL_CCIE 0x0010 /* Command Completed Interrupt Enable */ | 523 | #define PCI_EXP_SLTCTL_CCIE 0x0010 /* Command Completed Interrupt Enable */ |
519 | #define PCI_EXP_SLTCTL_HPIE 0x0020 /* Hot-Plug Interrupt Enable */ | 524 | #define PCI_EXP_SLTCTL_HPIE 0x0020 /* Hot-Plug Interrupt Enable */ |
520 | #define PCI_EXP_SLTCTL_AIC 0x00c0 /* Attention Indicator Control */ | 525 | #define PCI_EXP_SLTCTL_AIC 0x00c0 /* Attention Indicator Control */ |
526 | #define PCI_EXP_SLTCTL_ATTN_IND_ON 0x0040 /* Attention Indicator on */ | ||
527 | #define PCI_EXP_SLTCTL_ATTN_IND_BLINK 0x0080 /* Attention Indicator blinking */ | ||
528 | #define PCI_EXP_SLTCTL_ATTN_IND_OFF 0x00c0 /* Attention Indicator off */ | ||
521 | #define PCI_EXP_SLTCTL_PIC 0x0300 /* Power Indicator Control */ | 529 | #define PCI_EXP_SLTCTL_PIC 0x0300 /* Power Indicator Control */ |
530 | #define PCI_EXP_SLTCTL_PWR_IND_ON 0x0100 /* Power Indicator on */ | ||
531 | #define PCI_EXP_SLTCTL_PWR_IND_BLINK 0x0200 /* Power Indicator blinking */ | ||
532 | #define PCI_EXP_SLTCTL_PWR_IND_OFF 0x0300 /* Power Indicator off */ | ||
522 | #define PCI_EXP_SLTCTL_PCC 0x0400 /* Power Controller Control */ | 533 | #define PCI_EXP_SLTCTL_PCC 0x0400 /* Power Controller Control */ |
534 | #define PCI_EXP_SLTCTL_PWR_ON 0x0000 /* Power On */ | ||
535 | #define PCI_EXP_SLTCTL_PWR_OFF 0x0400 /* Power Off */ | ||
523 | #define PCI_EXP_SLTCTL_EIC 0x0800 /* Electromechanical Interlock Control */ | 536 | #define PCI_EXP_SLTCTL_EIC 0x0800 /* Electromechanical Interlock Control */ |
524 | #define PCI_EXP_SLTCTL_DLLSCE 0x1000 /* Data Link Layer State Changed Enable */ | 537 | #define PCI_EXP_SLTCTL_DLLSCE 0x1000 /* Data Link Layer State Changed Enable */ |
525 | #define PCI_EXP_SLTSTA 26 /* Slot Status */ | 538 | #define PCI_EXP_SLTSTA 26 /* Slot Status */ |
@@ -677,17 +690,34 @@ | |||
677 | #define PCI_ERR_ROOT_ERR_SRC 52 /* Error Source Identification */ | 690 | #define PCI_ERR_ROOT_ERR_SRC 52 /* Error Source Identification */ |
678 | 691 | ||
679 | /* Virtual Channel */ | 692 | /* Virtual Channel */ |
680 | #define PCI_VC_PORT_REG1 4 | 693 | #define PCI_VC_PORT_CAP1 4 |
681 | #define PCI_VC_REG1_EVCC 0x7 /* extended VC count */ | 694 | #define PCI_VC_CAP1_EVCC 0x00000007 /* extended VC count */ |
682 | #define PCI_VC_PORT_REG2 8 | 695 | #define PCI_VC_CAP1_LPEVCC 0x00000070 /* low prio extended VC count */ |
683 | #define PCI_VC_REG2_32_PHASE 0x2 | 696 | #define PCI_VC_CAP1_ARB_SIZE 0x00000c00 |
684 | #define PCI_VC_REG2_64_PHASE 0x4 | 697 | #define PCI_VC_PORT_CAP2 8 |
685 | #define PCI_VC_REG2_128_PHASE 0x8 | 698 | #define PCI_VC_CAP2_32_PHASE 0x00000002 |
699 | #define PCI_VC_CAP2_64_PHASE 0x00000004 | ||
700 | #define PCI_VC_CAP2_128_PHASE 0x00000008 | ||
701 | #define PCI_VC_CAP2_ARB_OFF 0xff000000 | ||
686 | #define PCI_VC_PORT_CTRL 12 | 702 | #define PCI_VC_PORT_CTRL 12 |
703 | #define PCI_VC_PORT_CTRL_LOAD_TABLE 0x00000001 | ||
687 | #define PCI_VC_PORT_STATUS 14 | 704 | #define PCI_VC_PORT_STATUS 14 |
705 | #define PCI_VC_PORT_STATUS_TABLE 0x00000001 | ||
688 | #define PCI_VC_RES_CAP 16 | 706 | #define PCI_VC_RES_CAP 16 |
707 | #define PCI_VC_RES_CAP_32_PHASE 0x00000002 | ||
708 | #define PCI_VC_RES_CAP_64_PHASE 0x00000004 | ||
709 | #define PCI_VC_RES_CAP_128_PHASE 0x00000008 | ||
710 | #define PCI_VC_RES_CAP_128_PHASE_TB 0x00000010 | ||
711 | #define PCI_VC_RES_CAP_256_PHASE 0x00000020 | ||
712 | #define PCI_VC_RES_CAP_ARB_OFF 0xff000000 | ||
689 | #define PCI_VC_RES_CTRL 20 | 713 | #define PCI_VC_RES_CTRL 20 |
714 | #define PCI_VC_RES_CTRL_LOAD_TABLE 0x00010000 | ||
715 | #define PCI_VC_RES_CTRL_ARB_SELECT 0x000e0000 | ||
716 | #define PCI_VC_RES_CTRL_ID 0x07000000 | ||
717 | #define PCI_VC_RES_CTRL_ENABLE 0x80000000 | ||
690 | #define PCI_VC_RES_STATUS 26 | 718 | #define PCI_VC_RES_STATUS 26 |
719 | #define PCI_VC_RES_STATUS_TABLE 0x00000001 | ||
720 | #define PCI_VC_RES_STATUS_NEGO 0x00000002 | ||
691 | #define PCI_CAP_VC_BASE_SIZEOF 0x10 | 721 | #define PCI_CAP_VC_BASE_SIZEOF 0x10 |
692 | #define PCI_CAP_VC_PER_VC_SIZEOF 0x0C | 722 | #define PCI_CAP_VC_PER_VC_SIZEOF 0x0C |
693 | 723 | ||
diff --git a/include/uapi/linux/perf_event.h b/include/uapi/linux/perf_event.h index e1802d6153ae..853bc1ccb395 100644 --- a/include/uapi/linux/perf_event.h +++ b/include/uapi/linux/perf_event.h | |||
@@ -679,6 +679,7 @@ enum perf_event_type { | |||
679 | * | 679 | * |
680 | * { u64 weight; } && PERF_SAMPLE_WEIGHT | 680 | * { u64 weight; } && PERF_SAMPLE_WEIGHT |
681 | * { u64 data_src; } && PERF_SAMPLE_DATA_SRC | 681 | * { u64 data_src; } && PERF_SAMPLE_DATA_SRC |
682 | * { u64 transaction; } && PERF_SAMPLE_TRANSACTION | ||
682 | * }; | 683 | * }; |
683 | */ | 684 | */ |
684 | PERF_RECORD_SAMPLE = 9, | 685 | PERF_RECORD_SAMPLE = 9, |
@@ -724,6 +725,7 @@ enum perf_callchain_context { | |||
724 | #define PERF_FLAG_FD_NO_GROUP (1U << 0) | 725 | #define PERF_FLAG_FD_NO_GROUP (1U << 0) |
725 | #define PERF_FLAG_FD_OUTPUT (1U << 1) | 726 | #define PERF_FLAG_FD_OUTPUT (1U << 1) |
726 | #define PERF_FLAG_PID_CGROUP (1U << 2) /* pid=cgroup id, per-cpu mode only */ | 727 | #define PERF_FLAG_PID_CGROUP (1U << 2) /* pid=cgroup id, per-cpu mode only */ |
728 | #define PERF_FLAG_FD_CLOEXEC (1U << 3) /* O_CLOEXEC */ | ||
727 | 729 | ||
728 | union perf_mem_data_src { | 730 | union perf_mem_data_src { |
729 | __u64 val; | 731 | __u64 val; |
@@ -786,7 +788,7 @@ union perf_mem_data_src { | |||
786 | #define PERF_MEM_TLB_SHIFT 26 | 788 | #define PERF_MEM_TLB_SHIFT 26 |
787 | 789 | ||
788 | #define PERF_MEM_S(a, s) \ | 790 | #define PERF_MEM_S(a, s) \ |
789 | (((u64)PERF_MEM_##a##_##s) << PERF_MEM_##a##_SHIFT) | 791 | (((__u64)PERF_MEM_##a##_##s) << PERF_MEM_##a##_SHIFT) |
790 | 792 | ||
791 | /* | 793 | /* |
792 | * single taken branch record layout: | 794 | * single taken branch record layout: |
diff --git a/include/uapi/linux/pkt_sched.h b/include/uapi/linux/pkt_sched.h index a806687ad98f..d62316baae94 100644 --- a/include/uapi/linux/pkt_sched.h +++ b/include/uapi/linux/pkt_sched.h | |||
@@ -173,6 +173,8 @@ enum { | |||
173 | TCA_TBF_PTAB, | 173 | TCA_TBF_PTAB, |
174 | TCA_TBF_RATE64, | 174 | TCA_TBF_RATE64, |
175 | TCA_TBF_PRATE64, | 175 | TCA_TBF_PRATE64, |
176 | TCA_TBF_BURST, | ||
177 | TCA_TBF_PBURST, | ||
176 | __TCA_TBF_MAX, | 178 | __TCA_TBF_MAX, |
177 | }; | 179 | }; |
178 | 180 | ||
@@ -523,6 +525,7 @@ enum { | |||
523 | TCA_NETEM_LOSS, | 525 | TCA_NETEM_LOSS, |
524 | TCA_NETEM_RATE, | 526 | TCA_NETEM_RATE, |
525 | TCA_NETEM_ECN, | 527 | TCA_NETEM_ECN, |
528 | TCA_NETEM_RATE64, | ||
526 | __TCA_NETEM_MAX, | 529 | __TCA_NETEM_MAX, |
527 | }; | 530 | }; |
528 | 531 | ||
@@ -790,4 +793,54 @@ struct tc_fq_qd_stats { | |||
790 | __u32 throttled_flows; | 793 | __u32 throttled_flows; |
791 | __u32 pad; | 794 | __u32 pad; |
792 | }; | 795 | }; |
796 | |||
797 | /* Heavy-Hitter Filter */ | ||
798 | |||
799 | enum { | ||
800 | TCA_HHF_UNSPEC, | ||
801 | TCA_HHF_BACKLOG_LIMIT, | ||
802 | TCA_HHF_QUANTUM, | ||
803 | TCA_HHF_HH_FLOWS_LIMIT, | ||
804 | TCA_HHF_RESET_TIMEOUT, | ||
805 | TCA_HHF_ADMIT_BYTES, | ||
806 | TCA_HHF_EVICT_TIMEOUT, | ||
807 | TCA_HHF_NON_HH_WEIGHT, | ||
808 | __TCA_HHF_MAX | ||
809 | }; | ||
810 | |||
811 | #define TCA_HHF_MAX (__TCA_HHF_MAX - 1) | ||
812 | |||
813 | struct tc_hhf_xstats { | ||
814 | __u32 drop_overlimit; /* number of times max qdisc packet limit | ||
815 | * was hit | ||
816 | */ | ||
817 | __u32 hh_overlimit; /* number of times max heavy-hitters was hit */ | ||
818 | __u32 hh_tot_count; /* number of captured heavy-hitters so far */ | ||
819 | __u32 hh_cur_count; /* number of current heavy-hitters */ | ||
820 | }; | ||
821 | |||
822 | /* PIE */ | ||
823 | enum { | ||
824 | TCA_PIE_UNSPEC, | ||
825 | TCA_PIE_TARGET, | ||
826 | TCA_PIE_LIMIT, | ||
827 | TCA_PIE_TUPDATE, | ||
828 | TCA_PIE_ALPHA, | ||
829 | TCA_PIE_BETA, | ||
830 | TCA_PIE_ECN, | ||
831 | TCA_PIE_BYTEMODE, | ||
832 | __TCA_PIE_MAX | ||
833 | }; | ||
834 | #define TCA_PIE_MAX (__TCA_PIE_MAX - 1) | ||
835 | |||
836 | struct tc_pie_xstats { | ||
837 | __u32 prob; /* current probability */ | ||
838 | __u32 delay; /* current delay in ms */ | ||
839 | __u32 avg_dq_rate; /* current average dq_rate in bits/pie_time */ | ||
840 | __u32 packets_in; /* total number of packets enqueued */ | ||
841 | __u32 dropped; /* packets dropped due to pie_action */ | ||
842 | __u32 overlimit; /* dropped due to lack of space in queue */ | ||
843 | __u32 maxq; /* maximum queue size */ | ||
844 | __u32 ecn_mark; /* packets marked with ecn*/ | ||
845 | }; | ||
793 | #endif | 846 | #endif |
diff --git a/include/uapi/linux/ppp-ioctl.h b/include/uapi/linux/ppp-ioctl.h index 2d9a8859550a..63a23a3b8bb7 100644 --- a/include/uapi/linux/ppp-ioctl.h +++ b/include/uapi/linux/ppp-ioctl.h | |||
@@ -12,6 +12,7 @@ | |||
12 | 12 | ||
13 | #include <linux/types.h> | 13 | #include <linux/types.h> |
14 | #include <linux/compiler.h> | 14 | #include <linux/compiler.h> |
15 | #include <linux/ppp_defs.h> | ||
15 | 16 | ||
16 | /* | 17 | /* |
17 | * Bit definitions for flags argument to PPPIOCGFLAGS/PPPIOCSFLAGS. | 18 | * Bit definitions for flags argument to PPPIOCGFLAGS/PPPIOCSFLAGS. |
diff --git a/include/uapi/linux/raid/md_p.h b/include/uapi/linux/raid/md_p.h index f7cf7f351144..49f4210d4394 100644 --- a/include/uapi/linux/raid/md_p.h +++ b/include/uapi/linux/raid/md_p.h | |||
@@ -292,6 +292,9 @@ struct mdp_superblock_1 { | |||
292 | * backwards anyway. | 292 | * backwards anyway. |
293 | */ | 293 | */ |
294 | #define MD_FEATURE_NEW_OFFSET 64 /* new_offset must be honoured */ | 294 | #define MD_FEATURE_NEW_OFFSET 64 /* new_offset must be honoured */ |
295 | #define MD_FEATURE_RECOVERY_BITMAP 128 /* recovery that is happening | ||
296 | * is guided by bitmap. | ||
297 | */ | ||
295 | #define MD_FEATURE_ALL (MD_FEATURE_BITMAP_OFFSET \ | 298 | #define MD_FEATURE_ALL (MD_FEATURE_BITMAP_OFFSET \ |
296 | |MD_FEATURE_RECOVERY_OFFSET \ | 299 | |MD_FEATURE_RECOVERY_OFFSET \ |
297 | |MD_FEATURE_RESHAPE_ACTIVE \ | 300 | |MD_FEATURE_RESHAPE_ACTIVE \ |
@@ -299,6 +302,7 @@ struct mdp_superblock_1 { | |||
299 | |MD_FEATURE_REPLACEMENT \ | 302 | |MD_FEATURE_REPLACEMENT \ |
300 | |MD_FEATURE_RESHAPE_BACKWARDS \ | 303 | |MD_FEATURE_RESHAPE_BACKWARDS \ |
301 | |MD_FEATURE_NEW_OFFSET \ | 304 | |MD_FEATURE_NEW_OFFSET \ |
305 | |MD_FEATURE_RECOVERY_BITMAP \ | ||
302 | ) | 306 | ) |
303 | 307 | ||
304 | #endif | 308 | #endif |
diff --git a/include/uapi/linux/resource.h b/include/uapi/linux/resource.h index e0ed28477f48..36fb3b5fb181 100644 --- a/include/uapi/linux/resource.h +++ b/include/uapi/linux/resource.h | |||
@@ -23,25 +23,25 @@ | |||
23 | struct rusage { | 23 | struct rusage { |
24 | struct timeval ru_utime; /* user time used */ | 24 | struct timeval ru_utime; /* user time used */ |
25 | struct timeval ru_stime; /* system time used */ | 25 | struct timeval ru_stime; /* system time used */ |
26 | long ru_maxrss; /* maximum resident set size */ | 26 | __kernel_long_t ru_maxrss; /* maximum resident set size */ |
27 | long ru_ixrss; /* integral shared memory size */ | 27 | __kernel_long_t ru_ixrss; /* integral shared memory size */ |
28 | long ru_idrss; /* integral unshared data size */ | 28 | __kernel_long_t ru_idrss; /* integral unshared data size */ |
29 | long ru_isrss; /* integral unshared stack size */ | 29 | __kernel_long_t ru_isrss; /* integral unshared stack size */ |
30 | long ru_minflt; /* page reclaims */ | 30 | __kernel_long_t ru_minflt; /* page reclaims */ |
31 | long ru_majflt; /* page faults */ | 31 | __kernel_long_t ru_majflt; /* page faults */ |
32 | long ru_nswap; /* swaps */ | 32 | __kernel_long_t ru_nswap; /* swaps */ |
33 | long ru_inblock; /* block input operations */ | 33 | __kernel_long_t ru_inblock; /* block input operations */ |
34 | long ru_oublock; /* block output operations */ | 34 | __kernel_long_t ru_oublock; /* block output operations */ |
35 | long ru_msgsnd; /* messages sent */ | 35 | __kernel_long_t ru_msgsnd; /* messages sent */ |
36 | long ru_msgrcv; /* messages received */ | 36 | __kernel_long_t ru_msgrcv; /* messages received */ |
37 | long ru_nsignals; /* signals received */ | 37 | __kernel_long_t ru_nsignals; /* signals received */ |
38 | long ru_nvcsw; /* voluntary context switches */ | 38 | __kernel_long_t ru_nvcsw; /* voluntary context switches */ |
39 | long ru_nivcsw; /* involuntary " */ | 39 | __kernel_long_t ru_nivcsw; /* involuntary " */ |
40 | }; | 40 | }; |
41 | 41 | ||
42 | struct rlimit { | 42 | struct rlimit { |
43 | unsigned long rlim_cur; | 43 | __kernel_ulong_t rlim_cur; |
44 | unsigned long rlim_max; | 44 | __kernel_ulong_t rlim_max; |
45 | }; | 45 | }; |
46 | 46 | ||
47 | #define RLIM64_INFINITY (~0ULL) | 47 | #define RLIM64_INFINITY (~0ULL) |
diff --git a/include/uapi/linux/sched.h b/include/uapi/linux/sched.h index 5a0f945927ac..34f9d7387d13 100644 --- a/include/uapi/linux/sched.h +++ b/include/uapi/linux/sched.h | |||
@@ -39,8 +39,14 @@ | |||
39 | #define SCHED_BATCH 3 | 39 | #define SCHED_BATCH 3 |
40 | /* SCHED_ISO: reserved but not implemented yet */ | 40 | /* SCHED_ISO: reserved but not implemented yet */ |
41 | #define SCHED_IDLE 5 | 41 | #define SCHED_IDLE 5 |
42 | #define SCHED_DEADLINE 6 | ||
43 | |||
42 | /* Can be ORed in to make sure the process is reverted back to SCHED_NORMAL on fork */ | 44 | /* Can be ORed in to make sure the process is reverted back to SCHED_NORMAL on fork */ |
43 | #define SCHED_RESET_ON_FORK 0x40000000 | 45 | #define SCHED_RESET_ON_FORK 0x40000000 |
44 | 46 | ||
47 | /* | ||
48 | * For the sched_{set,get}attr() calls | ||
49 | */ | ||
50 | #define SCHED_FLAG_RESET_ON_FORK 0x01 | ||
45 | 51 | ||
46 | #endif /* _UAPI_LINUX_SCHED_H */ | 52 | #endif /* _UAPI_LINUX_SCHED_H */ |
diff --git a/include/uapi/linux/sctp.h b/include/uapi/linux/sctp.h index ca451e99b28b..266022a2be4a 100644 --- a/include/uapi/linux/sctp.h +++ b/include/uapi/linux/sctp.h | |||
@@ -22,9 +22,8 @@ | |||
22 | * See the GNU General Public License for more details. | 22 | * See the GNU General Public License for more details. |
23 | * | 23 | * |
24 | * You should have received a copy of the GNU General Public License | 24 | * You should have received a copy of the GNU General Public License |
25 | * along with GNU CC; see the file COPYING. If not, write to | 25 | * along with GNU CC; see the file COPYING. If not, see |
26 | * the Free Software Foundation, 59 Temple Place - Suite 330, | 26 | * <http://www.gnu.org/licenses/>. |
27 | * Boston, MA 02111-1307, USA. | ||
28 | * | 27 | * |
29 | * Please send any bug reports or fixes you make to the | 28 | * Please send any bug reports or fixes you make to the |
30 | * email address(es): | 29 | * email address(es): |
diff --git a/include/uapi/linux/shm.h b/include/uapi/linux/shm.h index ec36fa1a83a4..78b69413f582 100644 --- a/include/uapi/linux/shm.h +++ b/include/uapi/linux/shm.h | |||
@@ -68,11 +68,11 @@ struct shminfo { | |||
68 | 68 | ||
69 | struct shm_info { | 69 | struct shm_info { |
70 | int used_ids; | 70 | int used_ids; |
71 | unsigned long shm_tot; /* total allocated shm */ | 71 | __kernel_ulong_t shm_tot; /* total allocated shm */ |
72 | unsigned long shm_rss; /* total resident shm */ | 72 | __kernel_ulong_t shm_rss; /* total resident shm */ |
73 | unsigned long shm_swp; /* total swapped shm */ | 73 | __kernel_ulong_t shm_swp; /* total swapped shm */ |
74 | unsigned long swap_attempts; | 74 | __kernel_ulong_t swap_attempts; |
75 | unsigned long swap_successes; | 75 | __kernel_ulong_t swap_successes; |
76 | }; | 76 | }; |
77 | 77 | ||
78 | 78 | ||
diff --git a/include/uapi/linux/snmp.h b/include/uapi/linux/snmp.h index 1bdb4a39d1e1..bbaba22f2d1b 100644 --- a/include/uapi/linux/snmp.h +++ b/include/uapi/linux/snmp.h | |||
@@ -258,6 +258,7 @@ enum | |||
258 | LINUX_MIB_TCPFASTOPENCOOKIEREQD, /* TCPFastOpenCookieReqd */ | 258 | LINUX_MIB_TCPFASTOPENCOOKIEREQD, /* TCPFastOpenCookieReqd */ |
259 | LINUX_MIB_TCPSPURIOUS_RTX_HOSTQUEUES, /* TCPSpuriousRtxHostQueues */ | 259 | LINUX_MIB_TCPSPURIOUS_RTX_HOSTQUEUES, /* TCPSpuriousRtxHostQueues */ |
260 | LINUX_MIB_BUSYPOLLRXPACKETS, /* BusyPollRxPackets */ | 260 | LINUX_MIB_BUSYPOLLRXPACKETS, /* BusyPollRxPackets */ |
261 | LINUX_MIB_TCPAUTOCORKING, /* TCPAutoCorking */ | ||
261 | __LINUX_MIB_MAX | 262 | __LINUX_MIB_MAX |
262 | }; | 263 | }; |
263 | 264 | ||
diff --git a/include/uapi/linux/sockios.h b/include/uapi/linux/sockios.h index 7997a506ad41..e888b1aed69f 100644 --- a/include/uapi/linux/sockios.h +++ b/include/uapi/linux/sockios.h | |||
@@ -125,7 +125,8 @@ | |||
125 | #define SIOCBRDELIF 0x89a3 /* remove interface from bridge */ | 125 | #define SIOCBRDELIF 0x89a3 /* remove interface from bridge */ |
126 | 126 | ||
127 | /* hardware time stamping: parameters in linux/net_tstamp.h */ | 127 | /* hardware time stamping: parameters in linux/net_tstamp.h */ |
128 | #define SIOCSHWTSTAMP 0x89b0 | 128 | #define SIOCSHWTSTAMP 0x89b0 /* set and get config */ |
129 | #define SIOCGHWTSTAMP 0x89b1 /* get config */ | ||
129 | 130 | ||
130 | /* Device private ioctl calls */ | 131 | /* Device private ioctl calls */ |
131 | 132 | ||
diff --git a/include/uapi/linux/tc_act/tc_ipt.h b/include/uapi/linux/tc_act/tc_ipt.h index a2335563d21f..130aaadf6fac 100644 --- a/include/uapi/linux/tc_act/tc_ipt.h +++ b/include/uapi/linux/tc_act/tc_ipt.h | |||
@@ -4,6 +4,7 @@ | |||
4 | #include <linux/pkt_cls.h> | 4 | #include <linux/pkt_cls.h> |
5 | 5 | ||
6 | #define TCA_ACT_IPT 6 | 6 | #define TCA_ACT_IPT 6 |
7 | #define TCA_ACT_XT 10 | ||
7 | 8 | ||
8 | enum { | 9 | enum { |
9 | TCA_IPT_UNSPEC, | 10 | TCA_IPT_UNSPEC, |
diff --git a/include/uapi/linux/tcp_metrics.h b/include/uapi/linux/tcp_metrics.h index cb5157b55f32..54a37b13f2c4 100644 --- a/include/uapi/linux/tcp_metrics.h +++ b/include/uapi/linux/tcp_metrics.h | |||
@@ -35,6 +35,8 @@ enum { | |||
35 | TCP_METRICS_ATTR_FOPEN_SYN_DROPS, /* u16, count of drops */ | 35 | TCP_METRICS_ATTR_FOPEN_SYN_DROPS, /* u16, count of drops */ |
36 | TCP_METRICS_ATTR_FOPEN_SYN_DROP_TS, /* msecs age */ | 36 | TCP_METRICS_ATTR_FOPEN_SYN_DROP_TS, /* msecs age */ |
37 | TCP_METRICS_ATTR_FOPEN_COOKIE, /* binary */ | 37 | TCP_METRICS_ATTR_FOPEN_COOKIE, /* binary */ |
38 | TCP_METRICS_ATTR_SADDR_IPV4, /* u32 */ | ||
39 | TCP_METRICS_ATTR_SADDR_IPV6, /* binary */ | ||
38 | 40 | ||
39 | __TCP_METRICS_ATTR_MAX, | 41 | __TCP_METRICS_ATTR_MAX, |
40 | }; | 42 | }; |
diff --git a/include/uapi/linux/timex.h b/include/uapi/linux/timex.h index a7ea81f13711..92685d826444 100644 --- a/include/uapi/linux/timex.h +++ b/include/uapi/linux/timex.h | |||
@@ -63,27 +63,27 @@ | |||
63 | */ | 63 | */ |
64 | struct timex { | 64 | struct timex { |
65 | unsigned int modes; /* mode selector */ | 65 | unsigned int modes; /* mode selector */ |
66 | long offset; /* time offset (usec) */ | 66 | __kernel_long_t offset; /* time offset (usec) */ |
67 | long freq; /* frequency offset (scaled ppm) */ | 67 | __kernel_long_t freq; /* frequency offset (scaled ppm) */ |
68 | long maxerror; /* maximum error (usec) */ | 68 | __kernel_long_t maxerror;/* maximum error (usec) */ |
69 | long esterror; /* estimated error (usec) */ | 69 | __kernel_long_t esterror;/* estimated error (usec) */ |
70 | int status; /* clock command/status */ | 70 | int status; /* clock command/status */ |
71 | long constant; /* pll time constant */ | 71 | __kernel_long_t constant;/* pll time constant */ |
72 | long precision; /* clock precision (usec) (read only) */ | 72 | __kernel_long_t precision;/* clock precision (usec) (read only) */ |
73 | long tolerance; /* clock frequency tolerance (ppm) | 73 | __kernel_long_t tolerance;/* clock frequency tolerance (ppm) |
74 | * (read only) | 74 | * (read only) |
75 | */ | 75 | */ |
76 | struct timeval time; /* (read only, except for ADJ_SETOFFSET) */ | 76 | struct timeval time; /* (read only, except for ADJ_SETOFFSET) */ |
77 | long tick; /* (modified) usecs between clock ticks */ | 77 | __kernel_long_t tick; /* (modified) usecs between clock ticks */ |
78 | 78 | ||
79 | long ppsfreq; /* pps frequency (scaled ppm) (ro) */ | 79 | __kernel_long_t ppsfreq;/* pps frequency (scaled ppm) (ro) */ |
80 | long jitter; /* pps jitter (us) (ro) */ | 80 | __kernel_long_t jitter; /* pps jitter (us) (ro) */ |
81 | int shift; /* interval duration (s) (shift) (ro) */ | 81 | int shift; /* interval duration (s) (shift) (ro) */ |
82 | long stabil; /* pps stability (scaled ppm) (ro) */ | 82 | __kernel_long_t stabil; /* pps stability (scaled ppm) (ro) */ |
83 | long jitcnt; /* jitter limit exceeded (ro) */ | 83 | __kernel_long_t jitcnt; /* jitter limit exceeded (ro) */ |
84 | long calcnt; /* calibration intervals (ro) */ | 84 | __kernel_long_t calcnt; /* calibration intervals (ro) */ |
85 | long errcnt; /* calibration errors (ro) */ | 85 | __kernel_long_t errcnt; /* calibration errors (ro) */ |
86 | long stbcnt; /* stability limit exceeded (ro) */ | 86 | __kernel_long_t stbcnt; /* stability limit exceeded (ro) */ |
87 | 87 | ||
88 | int tai; /* TAI offset (ro) */ | 88 | int tai; /* TAI offset (ro) */ |
89 | 89 | ||
diff --git a/include/uapi/linux/unix_diag.h b/include/uapi/linux/unix_diag.h index b9e2a6a7446f..1eb0b8dd1830 100644 --- a/include/uapi/linux/unix_diag.h +++ b/include/uapi/linux/unix_diag.h | |||
@@ -31,6 +31,7 @@ struct unix_diag_msg { | |||
31 | }; | 31 | }; |
32 | 32 | ||
33 | enum { | 33 | enum { |
34 | /* UNIX_DIAG_NONE, standard nl API requires this attribute! */ | ||
34 | UNIX_DIAG_NAME, | 35 | UNIX_DIAG_NAME, |
35 | UNIX_DIAG_VFS, | 36 | UNIX_DIAG_VFS, |
36 | UNIX_DIAG_PEER, | 37 | UNIX_DIAG_PEER, |
diff --git a/include/uapi/linux/xattr.h b/include/uapi/linux/xattr.h index e4629b93bdd6..40bbc04b6f81 100644 --- a/include/uapi/linux/xattr.h +++ b/include/uapi/linux/xattr.h | |||
@@ -20,6 +20,9 @@ | |||
20 | #define XATTR_MAC_OSX_PREFIX "osx." | 20 | #define XATTR_MAC_OSX_PREFIX "osx." |
21 | #define XATTR_MAC_OSX_PREFIX_LEN (sizeof(XATTR_MAC_OSX_PREFIX) - 1) | 21 | #define XATTR_MAC_OSX_PREFIX_LEN (sizeof(XATTR_MAC_OSX_PREFIX) - 1) |
22 | 22 | ||
23 | #define XATTR_BTRFS_PREFIX "btrfs." | ||
24 | #define XATTR_BTRFS_PREFIX_LEN (sizeof(XATTR_BTRFS_PREFIX) - 1) | ||
25 | |||
23 | #define XATTR_SECURITY_PREFIX "security." | 26 | #define XATTR_SECURITY_PREFIX "security." |
24 | #define XATTR_SECURITY_PREFIX_LEN (sizeof(XATTR_SECURITY_PREFIX) - 1) | 27 | #define XATTR_SECURITY_PREFIX_LEN (sizeof(XATTR_SECURITY_PREFIX) - 1) |
25 | 28 | ||
diff --git a/include/uapi/linux/zorro.h b/include/uapi/linux/zorro.h new file mode 100644 index 000000000000..59d021b242ed --- /dev/null +++ b/include/uapi/linux/zorro.h | |||
@@ -0,0 +1,113 @@ | |||
1 | /* | ||
2 | * linux/zorro.h -- Amiga AutoConfig (Zorro) Bus Definitions | ||
3 | * | ||
4 | * Copyright (C) 1995--2003 Geert Uytterhoeven | ||
5 | * | ||
6 | * This file is subject to the terms and conditions of the GNU General Public | ||
7 | * License. See the file COPYING in the main directory of this archive | ||
8 | * for more details. | ||
9 | */ | ||
10 | |||
11 | #ifndef _UAPI_LINUX_ZORRO_H | ||
12 | #define _UAPI_LINUX_ZORRO_H | ||
13 | |||
14 | #include <linux/types.h> | ||
15 | |||
16 | |||
17 | /* | ||
18 | * Each Zorro board has a 32-bit ID of the form | ||
19 | * | ||
20 | * mmmmmmmmmmmmmmmmppppppppeeeeeeee | ||
21 | * | ||
22 | * with | ||
23 | * | ||
24 | * mmmmmmmmmmmmmmmm 16-bit Manufacturer ID (assigned by CBM (sigh)) | ||
25 | * pppppppp 8-bit Product ID (assigned by manufacturer) | ||
26 | * eeeeeeee 8-bit Extended Product ID (currently only used | ||
27 | * for some GVP boards) | ||
28 | */ | ||
29 | |||
30 | |||
31 | #define ZORRO_MANUF(id) ((id) >> 16) | ||
32 | #define ZORRO_PROD(id) (((id) >> 8) & 0xff) | ||
33 | #define ZORRO_EPC(id) ((id) & 0xff) | ||
34 | |||
35 | #define ZORRO_ID(manuf, prod, epc) \ | ||
36 | ((ZORRO_MANUF_##manuf << 16) | ((prod) << 8) | (epc)) | ||
37 | |||
38 | typedef __u32 zorro_id; | ||
39 | |||
40 | |||
41 | /* Include the ID list */ | ||
42 | #include <linux/zorro_ids.h> | ||
43 | |||
44 | |||
45 | /* | ||
46 | * GVP identifies most of its products through the 'extended product code' | ||
47 | * (epc). The epc has to be ANDed with the GVP_PRODMASK before the | ||
48 | * identification. | ||
49 | */ | ||
50 | |||
51 | #define GVP_PRODMASK (0xf8) | ||
52 | #define GVP_SCSICLKMASK (0x01) | ||
53 | |||
54 | enum GVP_flags { | ||
55 | GVP_IO = 0x01, | ||
56 | GVP_ACCEL = 0x02, | ||
57 | GVP_SCSI = 0x04, | ||
58 | GVP_24BITDMA = 0x08, | ||
59 | GVP_25BITDMA = 0x10, | ||
60 | GVP_NOBANK = 0x20, | ||
61 | GVP_14MHZ = 0x40, | ||
62 | }; | ||
63 | |||
64 | |||
65 | struct Node { | ||
66 | __be32 ln_Succ; /* Pointer to next (successor) */ | ||
67 | __be32 ln_Pred; /* Pointer to previous (predecessor) */ | ||
68 | __u8 ln_Type; | ||
69 | __s8 ln_Pri; /* Priority, for sorting */ | ||
70 | __be32 ln_Name; /* ID string, null terminated */ | ||
71 | } __packed; | ||
72 | |||
73 | struct ExpansionRom { | ||
74 | /* -First 16 bytes of the expansion ROM */ | ||
75 | __u8 er_Type; /* Board type, size and flags */ | ||
76 | __u8 er_Product; /* Product number, assigned by manufacturer */ | ||
77 | __u8 er_Flags; /* Flags */ | ||
78 | __u8 er_Reserved03; /* Must be zero ($ff inverted) */ | ||
79 | __be16 er_Manufacturer; /* Unique ID, ASSIGNED BY COMMODORE-AMIGA! */ | ||
80 | __be32 er_SerialNumber; /* Available for use by manufacturer */ | ||
81 | __be16 er_InitDiagVec; /* Offset to optional "DiagArea" structure */ | ||
82 | __u8 er_Reserved0c; | ||
83 | __u8 er_Reserved0d; | ||
84 | __u8 er_Reserved0e; | ||
85 | __u8 er_Reserved0f; | ||
86 | } __packed; | ||
87 | |||
88 | /* er_Type board type bits */ | ||
89 | #define ERT_TYPEMASK 0xc0 | ||
90 | #define ERT_ZORROII 0xc0 | ||
91 | #define ERT_ZORROIII 0x80 | ||
92 | |||
93 | /* other bits defined in er_Type */ | ||
94 | #define ERTB_MEMLIST 5 /* Link RAM into free memory list */ | ||
95 | #define ERTF_MEMLIST (1<<5) | ||
96 | |||
97 | struct ConfigDev { | ||
98 | struct Node cd_Node; | ||
99 | __u8 cd_Flags; /* (read/write) */ | ||
100 | __u8 cd_Pad; /* reserved */ | ||
101 | struct ExpansionRom cd_Rom; /* copy of board's expansion ROM */ | ||
102 | __be32 cd_BoardAddr; /* where in memory the board was placed */ | ||
103 | __be32 cd_BoardSize; /* size of board in bytes */ | ||
104 | __be16 cd_SlotAddr; /* which slot number (PRIVATE) */ | ||
105 | __be16 cd_SlotSize; /* number of slots (PRIVATE) */ | ||
106 | __be32 cd_Driver; /* pointer to node of driver */ | ||
107 | __be32 cd_NextCD; /* linked list of drivers to config */ | ||
108 | __be32 cd_Unused[4]; /* for whatever the driver wants */ | ||
109 | } __packed; | ||
110 | |||
111 | #define ZORRO_NUM_AUTO 16 | ||
112 | |||
113 | #endif /* _UAPI_LINUX_ZORRO_H */ | ||
diff --git a/include/uapi/linux/zorro_ids.h b/include/uapi/linux/zorro_ids.h new file mode 100644 index 000000000000..74bc53bcfdcf --- /dev/null +++ b/include/uapi/linux/zorro_ids.h | |||
@@ -0,0 +1,552 @@ | |||
1 | /* | ||
2 | * Zorro board IDs | ||
3 | * | ||
4 | * Please keep sorted. | ||
5 | */ | ||
6 | |||
7 | |||
8 | #define ZORRO_MANUF_PACIFIC_PERIPHERALS 0x00D3 | ||
9 | #define ZORRO_PROD_PACIFIC_PERIPHERALS_SE_2000_A500 ZORRO_ID(PACIFIC_PERIPHERALS, 0x00, 0) | ||
10 | #define ZORRO_PROD_PACIFIC_PERIPHERALS_SCSI ZORRO_ID(PACIFIC_PERIPHERALS, 0x0A, 0) | ||
11 | |||
12 | #define ZORRO_MANUF_MACROSYSTEMS_USA_2 0x0100 | ||
13 | #define ZORRO_PROD_MACROSYSTEMS_WARP_ENGINE ZORRO_ID(MACROSYSTEMS_USA_2, 0x13, 0) | ||
14 | |||
15 | #define ZORRO_MANUF_KUPKE_1 0x00DD | ||
16 | #define ZORRO_PROD_KUPKE_GOLEM_RAM_BOX_2MB ZORRO_ID(KUPKE_1, 0x00, 0) | ||
17 | |||
18 | #define ZORRO_MANUF_MEMPHIS 0x0100 | ||
19 | #define ZORRO_PROD_MEMPHIS_STORMBRINGER ZORRO_ID(MEMPHIS, 0x00, 0) | ||
20 | |||
21 | #define ZORRO_MANUF_3_STATE 0x0200 | ||
22 | #define ZORRO_PROD_3_STATE_MEGAMIX_2000 ZORRO_ID(3_STATE, 0x02, 0) | ||
23 | |||
24 | #define ZORRO_MANUF_COMMODORE_BRAUNSCHWEIG 0x0201 | ||
25 | #define ZORRO_PROD_CBM_A2088_A2286 ZORRO_ID(COMMODORE_BRAUNSCHWEIG, 0x01, 0) | ||
26 | #define ZORRO_PROD_CBM_A2286 ZORRO_ID(COMMODORE_BRAUNSCHWEIG, 0x02, 0) | ||
27 | #define ZORRO_PROD_CBM_A4091_1 ZORRO_ID(COMMODORE_BRAUNSCHWEIG, 0x54, 0) | ||
28 | #define ZORRO_PROD_CBM_A2386SX_1 ZORRO_ID(COMMODORE_BRAUNSCHWEIG, 0x67, 0) | ||
29 | |||
30 | #define ZORRO_MANUF_COMMODORE_WEST_CHESTER_1 0x0202 | ||
31 | #define ZORRO_PROD_CBM_A2090A ZORRO_ID(COMMODORE_WEST_CHESTER_1, 0x01, 0) | ||
32 | #define ZORRO_PROD_CBM_A590_A2091_1 ZORRO_ID(COMMODORE_WEST_CHESTER_1, 0x02, 0) | ||
33 | #define ZORRO_PROD_CBM_A590_A2091_2 ZORRO_ID(COMMODORE_WEST_CHESTER_1, 0x03, 0) | ||
34 | #define ZORRO_PROD_CBM_A2090B ZORRO_ID(COMMODORE_WEST_CHESTER_1, 0x04, 0) | ||
35 | #define ZORRO_PROD_CBM_A2060 ZORRO_ID(COMMODORE_WEST_CHESTER_1, 0x09, 0) | ||
36 | #define ZORRO_PROD_CBM_A590_A2052_A2058_A2091 ZORRO_ID(COMMODORE_WEST_CHESTER_1, 0x0A, 0) | ||
37 | #define ZORRO_PROD_CBM_A560_RAM ZORRO_ID(COMMODORE_WEST_CHESTER_1, 0x20, 0) | ||
38 | #define ZORRO_PROD_CBM_A2232_PROTOTYPE ZORRO_ID(COMMODORE_WEST_CHESTER_1, 0x45, 0) | ||
39 | #define ZORRO_PROD_CBM_A2232 ZORRO_ID(COMMODORE_WEST_CHESTER_1, 0x46, 0) | ||
40 | #define ZORRO_PROD_CBM_A2620 ZORRO_ID(COMMODORE_WEST_CHESTER_1, 0x50, 0) | ||
41 | #define ZORRO_PROD_CBM_A2630 ZORRO_ID(COMMODORE_WEST_CHESTER_1, 0x51, 0) | ||
42 | #define ZORRO_PROD_CBM_A4091_2 ZORRO_ID(COMMODORE_WEST_CHESTER_1, 0x54, 0) | ||
43 | #define ZORRO_PROD_CBM_A2065_1 ZORRO_ID(COMMODORE_WEST_CHESTER_1, 0x5A, 0) | ||
44 | #define ZORRO_PROD_CBM_ROMULATOR ZORRO_ID(COMMODORE_WEST_CHESTER_1, 0x60, 0) | ||
45 | #define ZORRO_PROD_CBM_A3000_TEST_FIXTURE ZORRO_ID(COMMODORE_WEST_CHESTER_1, 0x61, 0) | ||
46 | #define ZORRO_PROD_CBM_A2386SX_2 ZORRO_ID(COMMODORE_WEST_CHESTER_1, 0x67, 0) | ||
47 | #define ZORRO_PROD_CBM_A2065_2 ZORRO_ID(COMMODORE_WEST_CHESTER_1, 0x70, 0) | ||
48 | |||
49 | #define ZORRO_MANUF_COMMODORE_WEST_CHESTER_2 0x0203 | ||
50 | #define ZORRO_PROD_CBM_A2090A_CM ZORRO_ID(COMMODORE_WEST_CHESTER_2, 0x03, 0) | ||
51 | |||
52 | #define ZORRO_MANUF_PROGRESSIVE_PERIPHERALS_AND_SYSTEMS_2 0x02F4 | ||
53 | #define ZORRO_PROD_PPS_EXP8000 ZORRO_ID(PROGRESSIVE_PERIPHERALS_AND_SYSTEMS_2, 0x02, 0) | ||
54 | |||
55 | #define ZORRO_MANUF_KOLFF_COMPUTER_SUPPLIES 0x02FF | ||
56 | #define ZORRO_PROD_KCS_POWER_PC_BOARD ZORRO_ID(KOLFF_COMPUTER_SUPPLIES, 0x00, 0) | ||
57 | |||
58 | #define ZORRO_MANUF_CARDCO_1 0x03EC | ||
59 | #define ZORRO_PROD_CARDCO_KRONOS_2000_1 ZORRO_ID(CARDCO_1, 0x04, 0) | ||
60 | #define ZORRO_PROD_CARDCO_A1000_1 ZORRO_ID(CARDCO_1, 0x0C, 0) | ||
61 | #define ZORRO_PROD_CARDCO_ESCORT ZORRO_ID(CARDCO_1, 0x0E, 0) | ||
62 | #define ZORRO_PROD_CARDCO_A2410 ZORRO_ID(CARDCO_1, 0xF5, 0) | ||
63 | |||
64 | #define ZORRO_MANUF_A_SQUARED 0x03ED | ||
65 | #define ZORRO_PROD_A_SQUARED_LIVE_2000 ZORRO_ID(A_SQUARED, 0x01, 0) | ||
66 | |||
67 | #define ZORRO_MANUF_COMSPEC_COMMUNICATIONS 0x03EE | ||
68 | #define ZORRO_PROD_COMSPEC_COMMUNICATIONS_AX2000 ZORRO_ID(COMSPEC_COMMUNICATIONS, 0x01, 0) | ||
69 | |||
70 | #define ZORRO_MANUF_ANAKIN_RESEARCH 0x03F1 | ||
71 | #define ZORRO_PROD_ANAKIN_RESEARCH_EASYL ZORRO_ID(ANAKIN_RESEARCH, 0x01, 0) | ||
72 | |||
73 | #define ZORRO_MANUF_MICROBOTICS 0x03F2 | ||
74 | #define ZORRO_PROD_MICROBOTICS_STARBOARD_II ZORRO_ID(MICROBOTICS, 0x00, 0) | ||
75 | #define ZORRO_PROD_MICROBOTICS_STARDRIVE ZORRO_ID(MICROBOTICS, 0x02, 0) | ||
76 | #define ZORRO_PROD_MICROBOTICS_8_UP_A ZORRO_ID(MICROBOTICS, 0x03, 0) | ||
77 | #define ZORRO_PROD_MICROBOTICS_8_UP_Z ZORRO_ID(MICROBOTICS, 0x04, 0) | ||
78 | #define ZORRO_PROD_MICROBOTICS_DELTA_RAM ZORRO_ID(MICROBOTICS, 0x20, 0) | ||
79 | #define ZORRO_PROD_MICROBOTICS_8_STAR_RAM ZORRO_ID(MICROBOTICS, 0x40, 0) | ||
80 | #define ZORRO_PROD_MICROBOTICS_8_STAR ZORRO_ID(MICROBOTICS, 0x41, 0) | ||
81 | #define ZORRO_PROD_MICROBOTICS_VXL_RAM_32 ZORRO_ID(MICROBOTICS, 0x44, 0) | ||
82 | #define ZORRO_PROD_MICROBOTICS_VXL_68030 ZORRO_ID(MICROBOTICS, 0x45, 0) | ||
83 | #define ZORRO_PROD_MICROBOTICS_DELTA ZORRO_ID(MICROBOTICS, 0x60, 0) | ||
84 | #define ZORRO_PROD_MICROBOTICS_MBX_1200_1200Z_RAM ZORRO_ID(MICROBOTICS, 0x81, 0) | ||
85 | #define ZORRO_PROD_MICROBOTICS_HARDFRAME_2000_1 ZORRO_ID(MICROBOTICS, 0x96, 0) | ||
86 | #define ZORRO_PROD_MICROBOTICS_HARDFRAME_2000_2 ZORRO_ID(MICROBOTICS, 0x9E, 0) | ||
87 | #define ZORRO_PROD_MICROBOTICS_MBX_1200_1200Z ZORRO_ID(MICROBOTICS, 0xC1, 0) | ||
88 | |||
89 | #define ZORRO_MANUF_ACCESS_ASSOCIATES_ALEGRA 0x03F4 | ||
90 | |||
91 | #define ZORRO_MANUF_EXPANSION_TECHNOLOGIES 0x03F6 | ||
92 | |||
93 | #define ZORRO_MANUF_ASDG 0x03FF | ||
94 | #define ZORRO_PROD_ASDG_MEMORY_1 ZORRO_ID(ASDG, 0x01, 0) | ||
95 | #define ZORRO_PROD_ASDG_MEMORY_2 ZORRO_ID(ASDG, 0x02, 0) | ||
96 | #define ZORRO_PROD_ASDG_EB920_LAN_ROVER ZORRO_ID(ASDG, 0xFE, 0) | ||
97 | #define ZORRO_PROD_ASDG_GPIB_DUALIEEE488_TWIN_X ZORRO_ID(ASDG, 0xFF, 0) | ||
98 | |||
99 | #define ZORRO_MANUF_IMTRONICS_1 0x0404 | ||
100 | #define ZORRO_PROD_IMTRONICS_HURRICANE_2800_1 ZORRO_ID(IMTRONICS_1, 0x39, 0) | ||
101 | #define ZORRO_PROD_IMTRONICS_HURRICANE_2800_2 ZORRO_ID(IMTRONICS_1, 0x57, 0) | ||
102 | |||
103 | #define ZORRO_MANUF_CBM_UNIVERSITY_OF_LOWELL 0x0406 | ||
104 | #define ZORRO_PROD_CBM_A2410 ZORRO_ID(CBM_UNIVERSITY_OF_LOWELL, 0x00, 0) | ||
105 | |||
106 | #define ZORRO_MANUF_AMERISTAR 0x041D | ||
107 | #define ZORRO_PROD_AMERISTAR_A2065 ZORRO_ID(AMERISTAR, 0x01, 0) | ||
108 | #define ZORRO_PROD_AMERISTAR_A560 ZORRO_ID(AMERISTAR, 0x09, 0) | ||
109 | #define ZORRO_PROD_AMERISTAR_A4066 ZORRO_ID(AMERISTAR, 0x0A, 0) | ||
110 | |||
111 | #define ZORRO_MANUF_SUPRA 0x0420 | ||
112 | #define ZORRO_PROD_SUPRA_SUPRADRIVE_4x4 ZORRO_ID(SUPRA, 0x01, 0) | ||
113 | #define ZORRO_PROD_SUPRA_1000_RAM ZORRO_ID(SUPRA, 0x02, 0) | ||
114 | #define ZORRO_PROD_SUPRA_2000_DMA ZORRO_ID(SUPRA, 0x03, 0) | ||
115 | #define ZORRO_PROD_SUPRA_500 ZORRO_ID(SUPRA, 0x05, 0) | ||
116 | #define ZORRO_PROD_SUPRA_500_SCSI ZORRO_ID(SUPRA, 0x08, 0) | ||
117 | #define ZORRO_PROD_SUPRA_500XP_2000_RAM ZORRO_ID(SUPRA, 0x09, 0) | ||
118 | #define ZORRO_PROD_SUPRA_500RX_2000_RAM ZORRO_ID(SUPRA, 0x0A, 0) | ||
119 | #define ZORRO_PROD_SUPRA_2400ZI ZORRO_ID(SUPRA, 0x0B, 0) | ||
120 | #define ZORRO_PROD_SUPRA_500XP_SUPRADRIVE_WORDSYNC ZORRO_ID(SUPRA, 0x0C, 0) | ||
121 | #define ZORRO_PROD_SUPRA_SUPRADRIVE_WORDSYNC_II ZORRO_ID(SUPRA, 0x0D, 0) | ||
122 | #define ZORRO_PROD_SUPRA_2400ZIPLUS ZORRO_ID(SUPRA, 0x10, 0) | ||
123 | |||
124 | #define ZORRO_MANUF_COMPUTER_SYSTEMS_ASSOCIATES 0x0422 | ||
125 | #define ZORRO_PROD_CSA_MAGNUM ZORRO_ID(COMPUTER_SYSTEMS_ASSOCIATES, 0x11, 0) | ||
126 | #define ZORRO_PROD_CSA_12_GAUGE ZORRO_ID(COMPUTER_SYSTEMS_ASSOCIATES, 0x15, 0) | ||
127 | |||
128 | #define ZORRO_MANUF_MARC_MICHAEL_GROTH 0x0439 | ||
129 | |||
130 | #define ZORRO_MANUF_M_TECH 0x0502 | ||
131 | #define ZORRO_PROD_MTEC_AT500_1 ZORRO_ID(M_TECH, 0x03, 0) | ||
132 | |||
133 | #define ZORRO_MANUF_GREAT_VALLEY_PRODUCTS_1 0x06E1 | ||
134 | #define ZORRO_PROD_GVP_IMPACT_SERIES_I ZORRO_ID(GREAT_VALLEY_PRODUCTS_1, 0x08, 0) | ||
135 | |||
136 | #define ZORRO_MANUF_BYTEBOX 0x07DA | ||
137 | #define ZORRO_PROD_BYTEBOX_A500 ZORRO_ID(BYTEBOX, 0x00, 0) | ||
138 | |||
139 | #define ZORRO_MANUF_DKB_POWER_COMPUTING 0x07DC | ||
140 | #define ZORRO_PROD_DKB_POWER_COMPUTING_SECUREKEY ZORRO_ID(DKB_POWER_COMPUTING, 0x09, 0) | ||
141 | #define ZORRO_PROD_DKB_POWER_COMPUTING_DKM_3128 ZORRO_ID(DKB_POWER_COMPUTING, 0x0E, 0) | ||
142 | #define ZORRO_PROD_DKB_POWER_COMPUTING_RAPID_FIRE ZORRO_ID(DKB_POWER_COMPUTING, 0x0F, 0) | ||
143 | #define ZORRO_PROD_DKB_POWER_COMPUTING_DKM_1202 ZORRO_ID(DKB_POWER_COMPUTING, 0x10, 0) | ||
144 | #define ZORRO_PROD_DKB_POWER_COMPUTING_COBRA_VIPER_II_68EC030 ZORRO_ID(DKB_POWER_COMPUTING, 0x12, 0) | ||
145 | #define ZORRO_PROD_DKB_POWER_COMPUTING_WILDFIRE_060_1 ZORRO_ID(DKB_POWER_COMPUTING, 0x17, 0) | ||
146 | #define ZORRO_PROD_DKB_POWER_COMPUTING_WILDFIRE_060_2 ZORRO_ID(DKB_POWER_COMPUTING, 0xFF, 0) | ||
147 | |||
148 | #define ZORRO_MANUF_GREAT_VALLEY_PRODUCTS_2 0x07E1 | ||
149 | #define ZORRO_PROD_GVP_IMPACT_SERIES_I_4K ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x01, 0) | ||
150 | #define ZORRO_PROD_GVP_IMPACT_SERIES_I_16K_2 ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x02, 0) | ||
151 | #define ZORRO_PROD_GVP_IMPACT_SERIES_I_16K_3 ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x03, 0) | ||
152 | #define ZORRO_PROD_GVP_IMPACT_3001_IDE_1 ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x08, 0) | ||
153 | #define ZORRO_PROD_GVP_IMPACT_3001_RAM ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x09, 0) | ||
154 | #define ZORRO_PROD_GVP_IMPACT_SERIES_II_RAM_1 ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0A, 0) | ||
155 | #define ZORRO_PROD_GVP_EPC_BASE ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0B, 0) | ||
156 | #define ZORRO_PROD_GVP_GFORCE_040_1 ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0B, 0x20) | ||
157 | #define ZORRO_PROD_GVP_GFORCE_040_SCSI_1 ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0B, 0x30) | ||
158 | #define ZORRO_PROD_GVP_A1291 ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0B, 0x40) | ||
159 | #define ZORRO_PROD_GVP_COMBO_030_R4 ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0B, 0x60) | ||
160 | #define ZORRO_PROD_GVP_COMBO_030_R4_SCSI ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0B, 0x70) | ||
161 | #define ZORRO_PROD_GVP_PHONEPAK ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0B, 0x78) | ||
162 | #define ZORRO_PROD_GVP_IO_EXTENDER ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0B, 0x98) | ||
163 | #define ZORRO_PROD_GVP_GFORCE_030 ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0B, 0xa0) | ||
164 | #define ZORRO_PROD_GVP_GFORCE_030_SCSI ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0B, 0xb0) | ||
165 | #define ZORRO_PROD_GVP_A530 ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0B, 0xc0) | ||
166 | #define ZORRO_PROD_GVP_A530_SCSI ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0B, 0xd0) | ||
167 | #define ZORRO_PROD_GVP_COMBO_030_R3 ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0B, 0xe0) | ||
168 | #define ZORRO_PROD_GVP_COMBO_030_R3_SCSI ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0B, 0xf0) | ||
169 | #define ZORRO_PROD_GVP_SERIES_II ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0B, 0xf8) | ||
170 | #define ZORRO_PROD_GVP_IMPACT_3001_IDE_2 ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0D, 0) | ||
171 | /*#define ZORRO_PROD_GVP_A2000_030 ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0D, 0)*/ | ||
172 | /*#define ZORRO_PROD_GVP_GFORCE_040_SCSI_2 ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0D, 0)*/ | ||
173 | #define ZORRO_PROD_GVP_GFORCE_040_060 ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x16, 0) | ||
174 | #define ZORRO_PROD_GVP_IMPACT_VISION_24 ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x20, 0) | ||
175 | #define ZORRO_PROD_GVP_GFORCE_040_2 ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0xFF, 0) | ||
176 | |||
177 | #define ZORRO_MANUF_CALIFORNIA_ACCESS_SYNERGY 0x07E5 | ||
178 | #define ZORRO_PROD_CALIFORNIA_ACCESS_SYNERGY_MALIBU ZORRO_ID(CALIFORNIA_ACCESS_SYNERGY, 0x01, 0) | ||
179 | |||
180 | #define ZORRO_MANUF_XETEC 0x07E6 | ||
181 | #define ZORRO_PROD_XETEC_FASTCARD ZORRO_ID(XETEC, 0x01, 0) | ||
182 | #define ZORRO_PROD_XETEC_FASTCARD_RAM ZORRO_ID(XETEC, 0x02, 0) | ||
183 | #define ZORRO_PROD_XETEC_FASTCARD_PLUS ZORRO_ID(XETEC, 0x03, 0) | ||
184 | |||
185 | #define ZORRO_MANUF_PROGRESSIVE_PERIPHERALS_AND_SYSTEMS 0x07EA | ||
186 | #define ZORRO_PROD_PPS_MERCURY ZORRO_ID(PROGRESSIVE_PERIPHERALS_AND_SYSTEMS, 0x00, 0) | ||
187 | #define ZORRO_PROD_PPS_A3000_68040 ZORRO_ID(PROGRESSIVE_PERIPHERALS_AND_SYSTEMS, 0x01, 0) | ||
188 | #define ZORRO_PROD_PPS_A2000_68040 ZORRO_ID(PROGRESSIVE_PERIPHERALS_AND_SYSTEMS, 0x69, 0) | ||
189 | #define ZORRO_PROD_PPS_ZEUS ZORRO_ID(PROGRESSIVE_PERIPHERALS_AND_SYSTEMS, 0x96, 0) | ||
190 | #define ZORRO_PROD_PPS_A500_68040 ZORRO_ID(PROGRESSIVE_PERIPHERALS_AND_SYSTEMS, 0xBB, 0) | ||
191 | |||
192 | #define ZORRO_MANUF_XEBEC 0x07EC | ||
193 | |||
194 | #define ZORRO_MANUF_SPIRIT_TECHNOLOGY 0x07F2 | ||
195 | #define ZORRO_PROD_SPIRIT_TECHNOLOGY_INSIDER_IN1000 ZORRO_ID(SPIRIT_TECHNOLOGY, 0x01, 0) | ||
196 | #define ZORRO_PROD_SPIRIT_TECHNOLOGY_INSIDER_IN500 ZORRO_ID(SPIRIT_TECHNOLOGY, 0x02, 0) | ||
197 | #define ZORRO_PROD_SPIRIT_TECHNOLOGY_SIN500 ZORRO_ID(SPIRIT_TECHNOLOGY, 0x03, 0) | ||
198 | #define ZORRO_PROD_SPIRIT_TECHNOLOGY_HDA_506 ZORRO_ID(SPIRIT_TECHNOLOGY, 0x04, 0) | ||
199 | #define ZORRO_PROD_SPIRIT_TECHNOLOGY_AX_S ZORRO_ID(SPIRIT_TECHNOLOGY, 0x05, 0) | ||
200 | #define ZORRO_PROD_SPIRIT_TECHNOLOGY_OCTABYTE ZORRO_ID(SPIRIT_TECHNOLOGY, 0x06, 0) | ||
201 | #define ZORRO_PROD_SPIRIT_TECHNOLOGY_INMATE ZORRO_ID(SPIRIT_TECHNOLOGY, 0x08, 0) | ||
202 | |||
203 | #define ZORRO_MANUF_SPIRIT_TECHNOLOGY_2 0x07F3 | ||
204 | |||
205 | #define ZORRO_MANUF_BSC_ALFADATA_1 0x07FE | ||
206 | #define ZORRO_PROD_BSC_ALF_3_1 ZORRO_ID(BSC_ALFADATA_1, 0x03, 0) | ||
207 | |||
208 | #define ZORRO_MANUF_BSC_ALFADATA_2 0x0801 | ||
209 | #define ZORRO_PROD_BSC_ALF_2_1 ZORRO_ID(BSC_ALFADATA_2, 0x01, 0) | ||
210 | #define ZORRO_PROD_BSC_ALF_2_2 ZORRO_ID(BSC_ALFADATA_2, 0x02, 0) | ||
211 | #define ZORRO_PROD_BSC_ALF_3_2 ZORRO_ID(BSC_ALFADATA_2, 0x03, 0) | ||
212 | |||
213 | #define ZORRO_MANUF_CARDCO_2 0x0802 | ||
214 | #define ZORRO_PROD_CARDCO_KRONOS_2000_2 ZORRO_ID(CARDCO_2, 0x04, 0) | ||
215 | #define ZORRO_PROD_CARDCO_A1000_2 ZORRO_ID(CARDCO_2, 0x0C, 0) | ||
216 | |||
217 | #define ZORRO_MANUF_JOCHHEIM 0x0804 | ||
218 | #define ZORRO_PROD_JOCHHEIM_RAM ZORRO_ID(JOCHHEIM, 0x01, 0) | ||
219 | |||
220 | #define ZORRO_MANUF_CHECKPOINT_TECHNOLOGIES 0x0807 | ||
221 | #define ZORRO_PROD_CHECKPOINT_TECHNOLOGIES_SERIAL_SOLUTION ZORRO_ID(CHECKPOINT_TECHNOLOGIES, 0x00, 0) | ||
222 | |||
223 | #define ZORRO_MANUF_EDOTRONIK 0x0810 | ||
224 | #define ZORRO_PROD_EDOTRONIK_IEEE_488 ZORRO_ID(EDOTRONIK, 0x01, 0) | ||
225 | #define ZORRO_PROD_EDOTRONIK_8032 ZORRO_ID(EDOTRONIK, 0x02, 0) | ||
226 | #define ZORRO_PROD_EDOTRONIK_MULTISERIAL ZORRO_ID(EDOTRONIK, 0x03, 0) | ||
227 | #define ZORRO_PROD_EDOTRONIK_VIDEODIGITIZER ZORRO_ID(EDOTRONIK, 0x04, 0) | ||
228 | #define ZORRO_PROD_EDOTRONIK_PARALLEL_IO ZORRO_ID(EDOTRONIK, 0x05, 0) | ||
229 | #define ZORRO_PROD_EDOTRONIK_PIC_PROTOYPING ZORRO_ID(EDOTRONIK, 0x06, 0) | ||
230 | #define ZORRO_PROD_EDOTRONIK_ADC ZORRO_ID(EDOTRONIK, 0x07, 0) | ||
231 | #define ZORRO_PROD_EDOTRONIK_VME ZORRO_ID(EDOTRONIK, 0x08, 0) | ||
232 | #define ZORRO_PROD_EDOTRONIK_DSP96000 ZORRO_ID(EDOTRONIK, 0x09, 0) | ||
233 | |||
234 | #define ZORRO_MANUF_NES_INC 0x0813 | ||
235 | #define ZORRO_PROD_NES_INC_RAM ZORRO_ID(NES_INC, 0x00, 0) | ||
236 | |||
237 | #define ZORRO_MANUF_ICD 0x0817 | ||
238 | #define ZORRO_PROD_ICD_ADVANTAGE_2000_SCSI ZORRO_ID(ICD, 0x01, 0) | ||
239 | #define ZORRO_PROD_ICD_ADVANTAGE_IDE ZORRO_ID(ICD, 0x03, 0) | ||
240 | #define ZORRO_PROD_ICD_ADVANTAGE_2080_RAM ZORRO_ID(ICD, 0x04, 0) | ||
241 | |||
242 | #define ZORRO_MANUF_KUPKE_2 0x0819 | ||
243 | #define ZORRO_PROD_KUPKE_OMTI ZORRO_ID(KUPKE_2, 0x01, 0) | ||
244 | #define ZORRO_PROD_KUPKE_SCSI_II ZORRO_ID(KUPKE_2, 0x02, 0) | ||
245 | #define ZORRO_PROD_KUPKE_GOLEM_BOX ZORRO_ID(KUPKE_2, 0x03, 0) | ||
246 | #define ZORRO_PROD_KUPKE_030_882 ZORRO_ID(KUPKE_2, 0x04, 0) | ||
247 | #define ZORRO_PROD_KUPKE_SCSI_AT ZORRO_ID(KUPKE_2, 0x05, 0) | ||
248 | |||
249 | #define ZORRO_MANUF_GREAT_VALLEY_PRODUCTS_3 0x081D | ||
250 | #define ZORRO_PROD_GVP_A2000_RAM8 ZORRO_ID(GREAT_VALLEY_PRODUCTS_3, 0x09, 0) | ||
251 | #define ZORRO_PROD_GVP_IMPACT_SERIES_II_RAM_2 ZORRO_ID(GREAT_VALLEY_PRODUCTS_3, 0x0A, 0) | ||
252 | |||
253 | #define ZORRO_MANUF_INTERWORKS_NETWORK 0x081E | ||
254 | |||
255 | #define ZORRO_MANUF_HARDITAL_SYNTHESIS 0x0820 | ||
256 | #define ZORRO_PROD_HARDITAL_SYNTHESIS_TQM_68030_68882 ZORRO_ID(HARDITAL_SYNTHESIS, 0x14, 0) | ||
257 | |||
258 | #define ZORRO_MANUF_APPLIED_ENGINEERING 0x0828 | ||
259 | #define ZORRO_PROD_APPLIED_ENGINEERING_DL2000 ZORRO_ID(APPLIED_ENGINEERING, 0x10, 0) | ||
260 | #define ZORRO_PROD_APPLIED_ENGINEERING_RAM_WORKS ZORRO_ID(APPLIED_ENGINEERING, 0xE0, 0) | ||
261 | |||
262 | #define ZORRO_MANUF_BSC_ALFADATA_3 0x082C | ||
263 | #define ZORRO_PROD_BSC_OKTAGON_2008 ZORRO_ID(BSC_ALFADATA_3, 0x05, 0) | ||
264 | #define ZORRO_PROD_BSC_TANDEM_AT_2008_508 ZORRO_ID(BSC_ALFADATA_3, 0x06, 0) | ||
265 | #define ZORRO_PROD_BSC_ALFA_RAM_1200 ZORRO_ID(BSC_ALFADATA_3, 0x07, 0) | ||
266 | #define ZORRO_PROD_BSC_OKTAGON_2008_RAM ZORRO_ID(BSC_ALFADATA_3, 0x08, 0) | ||
267 | #define ZORRO_PROD_BSC_MULTIFACE_I ZORRO_ID(BSC_ALFADATA_3, 0x10, 0) | ||
268 | #define ZORRO_PROD_BSC_MULTIFACE_II ZORRO_ID(BSC_ALFADATA_3, 0x11, 0) | ||
269 | #define ZORRO_PROD_BSC_MULTIFACE_III ZORRO_ID(BSC_ALFADATA_3, 0x12, 0) | ||
270 | #define ZORRO_PROD_BSC_FRAMEMASTER_II ZORRO_ID(BSC_ALFADATA_3, 0x20, 0) | ||
271 | #define ZORRO_PROD_BSC_GRAFFITI_RAM ZORRO_ID(BSC_ALFADATA_3, 0x21, 0) | ||
272 | #define ZORRO_PROD_BSC_GRAFFITI_REG ZORRO_ID(BSC_ALFADATA_3, 0x22, 0) | ||
273 | #define ZORRO_PROD_BSC_ISDN_MASTERCARD ZORRO_ID(BSC_ALFADATA_3, 0x40, 0) | ||
274 | #define ZORRO_PROD_BSC_ISDN_MASTERCARD_II ZORRO_ID(BSC_ALFADATA_3, 0x41, 0) | ||
275 | |||
276 | #define ZORRO_MANUF_PHOENIX 0x0835 | ||
277 | #define ZORRO_PROD_PHOENIX_ST506 ZORRO_ID(PHOENIX, 0x21, 0) | ||
278 | #define ZORRO_PROD_PHOENIX_SCSI ZORRO_ID(PHOENIX, 0x22, 0) | ||
279 | #define ZORRO_PROD_PHOENIX_RAM ZORRO_ID(PHOENIX, 0xBE, 0) | ||
280 | |||
281 | #define ZORRO_MANUF_ADVANCED_STORAGE_SYSTEMS 0x0836 | ||
282 | #define ZORRO_PROD_ADVANCED_STORAGE_SYSTEMS_NEXUS ZORRO_ID(ADVANCED_STORAGE_SYSTEMS, 0x01, 0) | ||
283 | #define ZORRO_PROD_ADVANCED_STORAGE_SYSTEMS_NEXUS_RAM ZORRO_ID(ADVANCED_STORAGE_SYSTEMS, 0x08, 0) | ||
284 | |||
285 | #define ZORRO_MANUF_IMPULSE 0x0838 | ||
286 | #define ZORRO_PROD_IMPULSE_FIRECRACKER_24 ZORRO_ID(IMPULSE, 0x00, 0) | ||
287 | |||
288 | #define ZORRO_MANUF_IVS 0x0840 | ||
289 | #define ZORRO_PROD_IVS_GRANDSLAM_PIC_2 ZORRO_ID(IVS, 0x02, 0) | ||
290 | #define ZORRO_PROD_IVS_GRANDSLAM_PIC_1 ZORRO_ID(IVS, 0x04, 0) | ||
291 | #define ZORRO_PROD_IVS_OVERDRIVE ZORRO_ID(IVS, 0x10, 0) | ||
292 | #define ZORRO_PROD_IVS_TRUMPCARD_CLASSIC ZORRO_ID(IVS, 0x30, 0) | ||
293 | #define ZORRO_PROD_IVS_TRUMPCARD_PRO_GRANDSLAM ZORRO_ID(IVS, 0x34, 0) | ||
294 | #define ZORRO_PROD_IVS_META_4 ZORRO_ID(IVS, 0x40, 0) | ||
295 | #define ZORRO_PROD_IVS_WAVETOOLS ZORRO_ID(IVS, 0xBF, 0) | ||
296 | #define ZORRO_PROD_IVS_VECTOR_1 ZORRO_ID(IVS, 0xF3, 0) | ||
297 | #define ZORRO_PROD_IVS_VECTOR_2 ZORRO_ID(IVS, 0xF4, 0) | ||
298 | |||
299 | #define ZORRO_MANUF_VECTOR_1 0x0841 | ||
300 | #define ZORRO_PROD_VECTOR_CONNECTION_1 ZORRO_ID(VECTOR_1, 0xE3, 0) | ||
301 | |||
302 | #define ZORRO_MANUF_XPERT_PRODEV 0x0845 | ||
303 | #define ZORRO_PROD_XPERT_PRODEV_VISIONA_RAM ZORRO_ID(XPERT_PRODEV, 0x01, 0) | ||
304 | #define ZORRO_PROD_XPERT_PRODEV_VISIONA_REG ZORRO_ID(XPERT_PRODEV, 0x02, 0) | ||
305 | #define ZORRO_PROD_XPERT_PRODEV_MERLIN_RAM ZORRO_ID(XPERT_PRODEV, 0x03, 0) | ||
306 | #define ZORRO_PROD_XPERT_PRODEV_MERLIN_REG_1 ZORRO_ID(XPERT_PRODEV, 0x04, 0) | ||
307 | #define ZORRO_PROD_XPERT_PRODEV_MERLIN_REG_2 ZORRO_ID(XPERT_PRODEV, 0xC9, 0) | ||
308 | |||
309 | #define ZORRO_MANUF_HYDRA_SYSTEMS 0x0849 | ||
310 | #define ZORRO_PROD_HYDRA_SYSTEMS_AMIGANET ZORRO_ID(HYDRA_SYSTEMS, 0x01, 0) | ||
311 | |||
312 | #define ZORRO_MANUF_SUNRIZE_INDUSTRIES 0x084F | ||
313 | #define ZORRO_PROD_SUNRIZE_INDUSTRIES_AD1012 ZORRO_ID(SUNRIZE_INDUSTRIES, 0x01, 0) | ||
314 | #define ZORRO_PROD_SUNRIZE_INDUSTRIES_AD516 ZORRO_ID(SUNRIZE_INDUSTRIES, 0x02, 0) | ||
315 | #define ZORRO_PROD_SUNRIZE_INDUSTRIES_DD512 ZORRO_ID(SUNRIZE_INDUSTRIES, 0x03, 0) | ||
316 | |||
317 | #define ZORRO_MANUF_TRICERATOPS 0x0850 | ||
318 | #define ZORRO_PROD_TRICERATOPS_MULTI_IO ZORRO_ID(TRICERATOPS, 0x01, 0) | ||
319 | |||
320 | #define ZORRO_MANUF_APPLIED_MAGIC 0x0851 | ||
321 | #define ZORRO_PROD_APPLIED_MAGIC_DMI_RESOLVER ZORRO_ID(APPLIED_MAGIC, 0x01, 0) | ||
322 | #define ZORRO_PROD_APPLIED_MAGIC_DIGITAL_BROADCASTER ZORRO_ID(APPLIED_MAGIC, 0x06, 0) | ||
323 | |||
324 | #define ZORRO_MANUF_GFX_BASE 0x085E | ||
325 | #define ZORRO_PROD_GFX_BASE_GDA_1_VRAM ZORRO_ID(GFX_BASE, 0x00, 0) | ||
326 | #define ZORRO_PROD_GFX_BASE_GDA_1 ZORRO_ID(GFX_BASE, 0x01, 0) | ||
327 | |||
328 | #define ZORRO_MANUF_ROCTEC 0x0860 | ||
329 | #define ZORRO_PROD_ROCTEC_RH_800C ZORRO_ID(ROCTEC, 0x01, 0) | ||
330 | #define ZORRO_PROD_ROCTEC_RH_800C_RAM ZORRO_ID(ROCTEC, 0x01, 0) | ||
331 | |||
332 | #define ZORRO_MANUF_KATO 0x0861 | ||
333 | #define ZORRO_PROD_KATO_MELODY ZORRO_ID(KATO, 0x80, 0) | ||
334 | /* ID clash!! */ | ||
335 | #define ZORRO_MANUF_HELFRICH_1 0x0861 | ||
336 | #define ZORRO_PROD_HELFRICH_RAINBOW_II ZORRO_ID(HELFRICH_1, 0x20, 0) | ||
337 | #define ZORRO_PROD_HELFRICH_RAINBOW_III ZORRO_ID(HELFRICH_1, 0x21, 0) | ||
338 | |||
339 | #define ZORRO_MANUF_ATLANTIS 0x0862 | ||
340 | |||
341 | #define ZORRO_MANUF_PROTAR 0x0864 | ||
342 | |||
343 | #define ZORRO_MANUF_ACS 0x0865 | ||
344 | |||
345 | #define ZORRO_MANUF_SOFTWARE_RESULTS_ENTERPRISES 0x0866 | ||
346 | #define ZORRO_PROD_SOFTWARE_RESULTS_ENTERPRISES_GOLDEN_GATE_2_BUS_PLUS ZORRO_ID(SOFTWARE_RESULTS_ENTERPRISES, 0x01, 0) | ||
347 | |||
348 | #define ZORRO_MANUF_MASOBOSHI 0x086D | ||
349 | #define ZORRO_PROD_MASOBOSHI_MASTER_CARD_SC201 ZORRO_ID(MASOBOSHI, 0x03, 0) | ||
350 | #define ZORRO_PROD_MASOBOSHI_MASTER_CARD_MC702 ZORRO_ID(MASOBOSHI, 0x04, 0) | ||
351 | #define ZORRO_PROD_MASOBOSHI_MVD_819 ZORRO_ID(MASOBOSHI, 0x07, 0) | ||
352 | |||
353 | #define ZORRO_MANUF_MAINHATTAN_DATA 0x086F | ||
354 | #define ZORRO_PROD_MAINHATTAN_DATA_IDE ZORRO_ID(MAINHATTAN_DATA, 0x01, 0) | ||
355 | |||
356 | #define ZORRO_MANUF_VILLAGE_TRONIC 0x0877 | ||
357 | #define ZORRO_PROD_VILLAGE_TRONIC_DOMINO_RAM ZORRO_ID(VILLAGE_TRONIC, 0x01, 0) | ||
358 | #define ZORRO_PROD_VILLAGE_TRONIC_DOMINO_REG ZORRO_ID(VILLAGE_TRONIC, 0x02, 0) | ||
359 | #define ZORRO_PROD_VILLAGE_TRONIC_DOMINO_16M_PROTOTYPE ZORRO_ID(VILLAGE_TRONIC, 0x03, 0) | ||
360 | #define ZORRO_PROD_VILLAGE_TRONIC_PICASSO_II_II_PLUS_RAM ZORRO_ID(VILLAGE_TRONIC, 0x0B, 0) | ||
361 | #define ZORRO_PROD_VILLAGE_TRONIC_PICASSO_II_II_PLUS_REG ZORRO_ID(VILLAGE_TRONIC, 0x0C, 0) | ||
362 | #define ZORRO_PROD_VILLAGE_TRONIC_PICASSO_II_II_PLUS_SEGMENTED_MODE ZORRO_ID(VILLAGE_TRONIC, 0x0D, 0) | ||
363 | #define ZORRO_PROD_VILLAGE_TRONIC_PICASSO_IV_Z2_RAM1 ZORRO_ID(VILLAGE_TRONIC, 0x15, 0) | ||
364 | #define ZORRO_PROD_VILLAGE_TRONIC_PICASSO_IV_Z2_RAM2 ZORRO_ID(VILLAGE_TRONIC, 0x16, 0) | ||
365 | #define ZORRO_PROD_VILLAGE_TRONIC_PICASSO_IV_Z2_REG ZORRO_ID(VILLAGE_TRONIC, 0x17, 0) | ||
366 | #define ZORRO_PROD_VILLAGE_TRONIC_PICASSO_IV_Z3 ZORRO_ID(VILLAGE_TRONIC, 0x18, 0) | ||
367 | #define ZORRO_PROD_VILLAGE_TRONIC_ARIADNE ZORRO_ID(VILLAGE_TRONIC, 0xC9, 0) | ||
368 | #define ZORRO_PROD_VILLAGE_TRONIC_ARIADNE2 ZORRO_ID(VILLAGE_TRONIC, 0xCA, 0) | ||
369 | |||
370 | #define ZORRO_MANUF_UTILITIES_UNLIMITED 0x087B | ||
371 | #define ZORRO_PROD_UTILITIES_UNLIMITED_EMPLANT_DELUXE ZORRO_ID(UTILITIES_UNLIMITED, 0x15, 0) | ||
372 | #define ZORRO_PROD_UTILITIES_UNLIMITED_EMPLANT_DELUXE2 ZORRO_ID(UTILITIES_UNLIMITED, 0x20, 0) | ||
373 | |||
374 | #define ZORRO_MANUF_AMITRIX 0x0880 | ||
375 | #define ZORRO_PROD_AMITRIX_MULTI_IO ZORRO_ID(AMITRIX, 0x01, 0) | ||
376 | #define ZORRO_PROD_AMITRIX_CD_RAM ZORRO_ID(AMITRIX, 0x02, 0) | ||
377 | |||
378 | #define ZORRO_MANUF_ARMAX 0x0885 | ||
379 | #define ZORRO_PROD_ARMAX_OMNIBUS ZORRO_ID(ARMAX, 0x00, 0) | ||
380 | |||
381 | #define ZORRO_MANUF_ZEUS 0x088D | ||
382 | #define ZORRO_PROD_ZEUS_SPIDER ZORRO_ID(ZEUS, 0x04, 0) | ||
383 | |||
384 | #define ZORRO_MANUF_NEWTEK 0x088F | ||
385 | #define ZORRO_PROD_NEWTEK_VIDEOTOASTER ZORRO_ID(NEWTEK, 0x00, 0) | ||
386 | |||
387 | #define ZORRO_MANUF_M_TECH_GERMANY 0x0890 | ||
388 | #define ZORRO_PROD_MTEC_AT500_2 ZORRO_ID(M_TECH_GERMANY, 0x01, 0) | ||
389 | #define ZORRO_PROD_MTEC_68030 ZORRO_ID(M_TECH_GERMANY, 0x03, 0) | ||
390 | #define ZORRO_PROD_MTEC_68020I ZORRO_ID(M_TECH_GERMANY, 0x06, 0) | ||
391 | #define ZORRO_PROD_MTEC_A1200_T68030_RTC ZORRO_ID(M_TECH_GERMANY, 0x20, 0) | ||
392 | #define ZORRO_PROD_MTEC_VIPER_MK_V_E_MATRIX_530 ZORRO_ID(M_TECH_GERMANY, 0x21, 0) | ||
393 | #define ZORRO_PROD_MTEC_8_MB_RAM ZORRO_ID(M_TECH_GERMANY, 0x22, 0) | ||
394 | #define ZORRO_PROD_MTEC_VIPER_MK_V_E_MATRIX_530_SCSI_IDE ZORRO_ID(M_TECH_GERMANY, 0x24, 0) | ||
395 | |||
396 | #define ZORRO_MANUF_GREAT_VALLEY_PRODUCTS_4 0x0891 | ||
397 | #define ZORRO_PROD_GVP_EGS_28_24_SPECTRUM_RAM ZORRO_ID(GREAT_VALLEY_PRODUCTS_4, 0x01, 0) | ||
398 | #define ZORRO_PROD_GVP_EGS_28_24_SPECTRUM_REG ZORRO_ID(GREAT_VALLEY_PRODUCTS_4, 0x02, 0) | ||
399 | |||
400 | #define ZORRO_MANUF_APOLLO_1 0x0892 | ||
401 | #define ZORRO_PROD_APOLLO_A1200 ZORRO_ID(APOLLO_1, 0x01, 0) | ||
402 | |||
403 | #define ZORRO_MANUF_HELFRICH_2 0x0893 | ||
404 | #define ZORRO_PROD_HELFRICH_PICCOLO_RAM ZORRO_ID(HELFRICH_2, 0x05, 0) | ||
405 | #define ZORRO_PROD_HELFRICH_PICCOLO_REG ZORRO_ID(HELFRICH_2, 0x06, 0) | ||
406 | #define ZORRO_PROD_HELFRICH_PEGGY_PLUS_MPEG ZORRO_ID(HELFRICH_2, 0x07, 0) | ||
407 | #define ZORRO_PROD_HELFRICH_VIDEOCRUNCHER ZORRO_ID(HELFRICH_2, 0x08, 0) | ||
408 | #define ZORRO_PROD_HELFRICH_SD64_RAM ZORRO_ID(HELFRICH_2, 0x0A, 0) | ||
409 | #define ZORRO_PROD_HELFRICH_SD64_REG ZORRO_ID(HELFRICH_2, 0x0B, 0) | ||
410 | |||
411 | #define ZORRO_MANUF_MACROSYSTEMS_USA 0x089B | ||
412 | #define ZORRO_PROD_MACROSYSTEMS_WARP_ENGINE_40xx ZORRO_ID(MACROSYSTEMS_USA, 0x13, 0) | ||
413 | |||
414 | #define ZORRO_MANUF_ELBOX_COMPUTER 0x089E | ||
415 | #define ZORRO_PROD_ELBOX_COMPUTER_1200_4 ZORRO_ID(ELBOX_COMPUTER, 0x06, 0) | ||
416 | |||
417 | #define ZORRO_MANUF_HARMS_PROFESSIONAL 0x0A00 | ||
418 | #define ZORRO_PROD_HARMS_PROFESSIONAL_030_PLUS ZORRO_ID(HARMS_PROFESSIONAL, 0x10, 0) | ||
419 | #define ZORRO_PROD_HARMS_PROFESSIONAL_3500 ZORRO_ID(HARMS_PROFESSIONAL, 0xD0, 0) | ||
420 | |||
421 | #define ZORRO_MANUF_MICRONIK 0x0A50 | ||
422 | #define ZORRO_PROD_MICRONIK_RCA_120 ZORRO_ID(MICRONIK, 0x0A, 0) | ||
423 | |||
424 | #define ZORRO_MANUF_MICRONIK2 0x0F0F | ||
425 | #define ZORRO_PROD_MICRONIK2_Z3I ZORRO_ID(MICRONIK2, 0x01, 0) | ||
426 | |||
427 | #define ZORRO_MANUF_MEGAMICRO 0x1000 | ||
428 | #define ZORRO_PROD_MEGAMICRO_SCRAM_500 ZORRO_ID(MEGAMICRO, 0x03, 0) | ||
429 | #define ZORRO_PROD_MEGAMICRO_SCRAM_500_RAM ZORRO_ID(MEGAMICRO, 0x04, 0) | ||
430 | |||
431 | #define ZORRO_MANUF_IMTRONICS_2 0x1028 | ||
432 | #define ZORRO_PROD_IMTRONICS_HURRICANE_2800_3 ZORRO_ID(IMTRONICS_2, 0x39, 0) | ||
433 | #define ZORRO_PROD_IMTRONICS_HURRICANE_2800_4 ZORRO_ID(IMTRONICS_2, 0x57, 0) | ||
434 | |||
435 | /* unofficial ID */ | ||
436 | #define ZORRO_MANUF_INDIVIDUAL_COMPUTERS 0x1212 | ||
437 | #define ZORRO_PROD_INDIVIDUAL_COMPUTERS_BUDDHA ZORRO_ID(INDIVIDUAL_COMPUTERS, 0x00, 0) | ||
438 | #define ZORRO_PROD_INDIVIDUAL_COMPUTERS_X_SURF ZORRO_ID(INDIVIDUAL_COMPUTERS, 0x17, 0) | ||
439 | #define ZORRO_PROD_INDIVIDUAL_COMPUTERS_CATWEASEL ZORRO_ID(INDIVIDUAL_COMPUTERS, 0x2A, 0) | ||
440 | |||
441 | #define ZORRO_MANUF_KUPKE_3 0x1248 | ||
442 | #define ZORRO_PROD_KUPKE_GOLEM_HD_3000 ZORRO_ID(KUPKE_3, 0x01, 0) | ||
443 | |||
444 | #define ZORRO_MANUF_ITH 0x1388 | ||
445 | #define ZORRO_PROD_ITH_ISDN_MASTER_II ZORRO_ID(ITH, 0x01, 0) | ||
446 | |||
447 | #define ZORRO_MANUF_VMC 0x1389 | ||
448 | #define ZORRO_PROD_VMC_ISDN_BLASTER_Z2 ZORRO_ID(VMC, 0x01, 0) | ||
449 | #define ZORRO_PROD_VMC_HYPERCOM_4 ZORRO_ID(VMC, 0x02, 0) | ||
450 | |||
451 | #define ZORRO_MANUF_INFORMATION 0x157C | ||
452 | #define ZORRO_PROD_INFORMATION_ISDN_ENGINE_I ZORRO_ID(INFORMATION, 0x64, 0) | ||
453 | |||
454 | #define ZORRO_MANUF_VORTEX 0x2017 | ||
455 | #define ZORRO_PROD_VORTEX_GOLDEN_GATE_80386SX ZORRO_ID(VORTEX, 0x07, 0) | ||
456 | #define ZORRO_PROD_VORTEX_GOLDEN_GATE_RAM ZORRO_ID(VORTEX, 0x08, 0) | ||
457 | #define ZORRO_PROD_VORTEX_GOLDEN_GATE_80486 ZORRO_ID(VORTEX, 0x09, 0) | ||
458 | |||
459 | #define ZORRO_MANUF_EXPANSION_SYSTEMS 0x2062 | ||
460 | #define ZORRO_PROD_EXPANSION_SYSTEMS_DATAFLYER_4000SX ZORRO_ID(EXPANSION_SYSTEMS, 0x01, 0) | ||
461 | #define ZORRO_PROD_EXPANSION_SYSTEMS_DATAFLYER_4000SX_RAM ZORRO_ID(EXPANSION_SYSTEMS, 0x02, 0) | ||
462 | |||
463 | #define ZORRO_MANUF_READYSOFT 0x2100 | ||
464 | #define ZORRO_PROD_READYSOFT_AMAX_II_IV ZORRO_ID(READYSOFT, 0x01, 0) | ||
465 | |||
466 | #define ZORRO_MANUF_PHASE5 0x2140 | ||
467 | #define ZORRO_PROD_PHASE5_BLIZZARD_RAM ZORRO_ID(PHASE5, 0x01, 0) | ||
468 | #define ZORRO_PROD_PHASE5_BLIZZARD ZORRO_ID(PHASE5, 0x02, 0) | ||
469 | #define ZORRO_PROD_PHASE5_BLIZZARD_1220_IV ZORRO_ID(PHASE5, 0x06, 0) | ||
470 | #define ZORRO_PROD_PHASE5_FASTLANE_Z3_RAM ZORRO_ID(PHASE5, 0x0A, 0) | ||
471 | #define ZORRO_PROD_PHASE5_BLIZZARD_1230_II_FASTLANE_Z3_CYBERSCSI_CYBERSTORM060 ZORRO_ID(PHASE5, 0x0B, 0) | ||
472 | #define ZORRO_PROD_PHASE5_BLIZZARD_1220_CYBERSTORM ZORRO_ID(PHASE5, 0x0C, 0) | ||
473 | #define ZORRO_PROD_PHASE5_BLIZZARD_1230 ZORRO_ID(PHASE5, 0x0D, 0) | ||
474 | #define ZORRO_PROD_PHASE5_BLIZZARD_1230_IV_1260 ZORRO_ID(PHASE5, 0x11, 0) | ||
475 | #define ZORRO_PROD_PHASE5_BLIZZARD_2060 ZORRO_ID(PHASE5, 0x18, 0) | ||
476 | #define ZORRO_PROD_PHASE5_CYBERSTORM_MK_II ZORRO_ID(PHASE5, 0x19, 0) | ||
477 | #define ZORRO_PROD_PHASE5_CYBERVISION64 ZORRO_ID(PHASE5, 0x22, 0) | ||
478 | #define ZORRO_PROD_PHASE5_CYBERVISION64_3D_PROTOTYPE ZORRO_ID(PHASE5, 0x32, 0) | ||
479 | #define ZORRO_PROD_PHASE5_CYBERVISION64_3D ZORRO_ID(PHASE5, 0x43, 0) | ||
480 | #define ZORRO_PROD_PHASE5_CYBERSTORM_MK_III ZORRO_ID(PHASE5, 0x64, 0) | ||
481 | #define ZORRO_PROD_PHASE5_BLIZZARD_603E_PLUS ZORRO_ID(PHASE5, 0x6e, 0) | ||
482 | |||
483 | #define ZORRO_MANUF_DPS 0x2169 | ||
484 | #define ZORRO_PROD_DPS_PERSONAL_ANIMATION_RECORDER ZORRO_ID(DPS, 0x01, 0) | ||
485 | |||
486 | #define ZORRO_MANUF_APOLLO_2 0x2200 | ||
487 | #define ZORRO_PROD_APOLLO_A620_68020_1 ZORRO_ID(APOLLO_2, 0x00, 0) | ||
488 | #define ZORRO_PROD_APOLLO_A620_68020_2 ZORRO_ID(APOLLO_2, 0x01, 0) | ||
489 | |||
490 | #define ZORRO_MANUF_APOLLO_3 0x2222 | ||
491 | #define ZORRO_PROD_APOLLO_AT_APOLLO ZORRO_ID(APOLLO_3, 0x22, 0) | ||
492 | #define ZORRO_PROD_APOLLO_1230_1240_1260_2030_4040_4060 ZORRO_ID(APOLLO_3, 0x23, 0) | ||
493 | |||
494 | #define ZORRO_MANUF_PETSOFF_LP 0x38A5 | ||
495 | #define ZORRO_PROD_PETSOFF_LP_DELFINA ZORRO_ID(PETSOFF_LP, 0x00, 0) | ||
496 | #define ZORRO_PROD_PETSOFF_LP_DELFINA_LITE ZORRO_ID(PETSOFF_LP, 0x01, 0) | ||
497 | |||
498 | #define ZORRO_MANUF_UWE_GERLACH 0x3FF7 | ||
499 | #define ZORRO_PROD_UWE_GERLACH_RAM_ROM ZORRO_ID(UWE_GERLACH, 0xd4, 0) | ||
500 | |||
501 | #define ZORRO_MANUF_ACT 0x4231 | ||
502 | #define ZORRO_PROD_ACT_PRELUDE ZORRO_ID(ACT, 0x01, 0) | ||
503 | |||
504 | #define ZORRO_MANUF_MACROSYSTEMS_GERMANY 0x4754 | ||
505 | #define ZORRO_PROD_MACROSYSTEMS_MAESTRO ZORRO_ID(MACROSYSTEMS_GERMANY, 0x03, 0) | ||
506 | #define ZORRO_PROD_MACROSYSTEMS_VLAB ZORRO_ID(MACROSYSTEMS_GERMANY, 0x04, 0) | ||
507 | #define ZORRO_PROD_MACROSYSTEMS_MAESTRO_PRO ZORRO_ID(MACROSYSTEMS_GERMANY, 0x05, 0) | ||
508 | #define ZORRO_PROD_MACROSYSTEMS_RETINA ZORRO_ID(MACROSYSTEMS_GERMANY, 0x06, 0) | ||
509 | #define ZORRO_PROD_MACROSYSTEMS_MULTI_EVOLUTION ZORRO_ID(MACROSYSTEMS_GERMANY, 0x08, 0) | ||
510 | #define ZORRO_PROD_MACROSYSTEMS_TOCCATA ZORRO_ID(MACROSYSTEMS_GERMANY, 0x0C, 0) | ||
511 | #define ZORRO_PROD_MACROSYSTEMS_RETINA_Z3 ZORRO_ID(MACROSYSTEMS_GERMANY, 0x10, 0) | ||
512 | #define ZORRO_PROD_MACROSYSTEMS_VLAB_MOTION ZORRO_ID(MACROSYSTEMS_GERMANY, 0x12, 0) | ||
513 | #define ZORRO_PROD_MACROSYSTEMS_ALTAIS ZORRO_ID(MACROSYSTEMS_GERMANY, 0x13, 0) | ||
514 | #define ZORRO_PROD_MACROSYSTEMS_FALCON_040 ZORRO_ID(MACROSYSTEMS_GERMANY, 0xFD, 0) | ||
515 | |||
516 | #define ZORRO_MANUF_COMBITEC 0x6766 | ||
517 | |||
518 | #define ZORRO_MANUF_SKI_PERIPHERALS 0x8000 | ||
519 | #define ZORRO_PROD_SKI_PERIPHERALS_MAST_FIREBALL ZORRO_ID(SKI_PERIPHERALS, 0x08, 0) | ||
520 | #define ZORRO_PROD_SKI_PERIPHERALS_SCSI_DUAL_SERIAL ZORRO_ID(SKI_PERIPHERALS, 0x80, 0) | ||
521 | |||
522 | #define ZORRO_MANUF_REIS_WARE_2 0xA9AD | ||
523 | #define ZORRO_PROD_REIS_WARE_SCAN_KING ZORRO_ID(REIS_WARE_2, 0x11, 0) | ||
524 | |||
525 | #define ZORRO_MANUF_CAMERON 0xAA01 | ||
526 | #define ZORRO_PROD_CAMERON_PERSONAL_A4 ZORRO_ID(CAMERON, 0x10, 0) | ||
527 | |||
528 | #define ZORRO_MANUF_REIS_WARE 0xAA11 | ||
529 | #define ZORRO_PROD_REIS_WARE_HANDYSCANNER ZORRO_ID(REIS_WARE, 0x11, 0) | ||
530 | |||
531 | #define ZORRO_MANUF_PHOENIX_2 0xB5A8 | ||
532 | #define ZORRO_PROD_PHOENIX_ST506_2 ZORRO_ID(PHOENIX_2, 0x21, 0) | ||
533 | #define ZORRO_PROD_PHOENIX_SCSI_2 ZORRO_ID(PHOENIX_2, 0x22, 0) | ||
534 | #define ZORRO_PROD_PHOENIX_RAM_2 ZORRO_ID(PHOENIX_2, 0xBE, 0) | ||
535 | |||
536 | #define ZORRO_MANUF_COMBITEC_2 0xC008 | ||
537 | #define ZORRO_PROD_COMBITEC_HD ZORRO_ID(COMBITEC_2, 0x2A, 0) | ||
538 | #define ZORRO_PROD_COMBITEC_SRAM ZORRO_ID(COMBITEC_2, 0x2B, 0) | ||
539 | |||
540 | |||
541 | /* | ||
542 | * Test and illegal Manufacturer IDs. | ||
543 | */ | ||
544 | |||
545 | #define ZORRO_MANUF_HACKER 0x07DB | ||
546 | #define ZORRO_PROD_GENERAL_PROTOTYPE ZORRO_ID(HACKER, 0x00, 0) | ||
547 | #define ZORRO_PROD_HACKER_SCSI ZORRO_ID(HACKER, 0x01, 0) | ||
548 | #define ZORRO_PROD_RESOURCE_MANAGEMENT_FORCE_QUICKNET_QN2000 ZORRO_ID(HACKER, 0x02, 0) | ||
549 | #define ZORRO_PROD_VECTOR_CONNECTION_2 ZORRO_ID(HACKER, 0xE0, 0) | ||
550 | #define ZORRO_PROD_VECTOR_CONNECTION_3 ZORRO_ID(HACKER, 0xE1, 0) | ||
551 | #define ZORRO_PROD_VECTOR_CONNECTION_4 ZORRO_ID(HACKER, 0xE2, 0) | ||
552 | #define ZORRO_PROD_VECTOR_CONNECTION_5 ZORRO_ID(HACKER, 0xE3, 0) | ||
diff --git a/include/uapi/sound/compress_offload.h b/include/uapi/sound/compress_offload.h index d630163b9a2e..5759810e1c1b 100644 --- a/include/uapi/sound/compress_offload.h +++ b/include/uapi/sound/compress_offload.h | |||
@@ -30,7 +30,7 @@ | |||
30 | #include <sound/compress_params.h> | 30 | #include <sound/compress_params.h> |
31 | 31 | ||
32 | 32 | ||
33 | #define SNDRV_COMPRESS_VERSION SNDRV_PROTOCOL_VERSION(0, 1, 1) | 33 | #define SNDRV_COMPRESS_VERSION SNDRV_PROTOCOL_VERSION(0, 1, 2) |
34 | /** | 34 | /** |
35 | * struct snd_compressed_buffer: compressed buffer | 35 | * struct snd_compressed_buffer: compressed buffer |
36 | * @fragment_size: size of buffer fragment in bytes | 36 | * @fragment_size: size of buffer fragment in bytes |
@@ -67,8 +67,8 @@ struct snd_compr_params { | |||
67 | struct snd_compr_tstamp { | 67 | struct snd_compr_tstamp { |
68 | __u32 byte_offset; | 68 | __u32 byte_offset; |
69 | __u32 copied_total; | 69 | __u32 copied_total; |
70 | snd_pcm_uframes_t pcm_frames; | 70 | __u32 pcm_frames; |
71 | snd_pcm_uframes_t pcm_io_frames; | 71 | __u32 pcm_io_frames; |
72 | __u32 sampling_rate; | 72 | __u32 sampling_rate; |
73 | }; | 73 | }; |
74 | 74 | ||
diff --git a/include/uapi/sound/compress_params.h b/include/uapi/sound/compress_params.h index 602dc6c45d1a..165e7059de75 100644 --- a/include/uapi/sound/compress_params.h +++ b/include/uapi/sound/compress_params.h | |||
@@ -57,6 +57,7 @@ | |||
57 | #define MAX_NUM_CODECS 32 | 57 | #define MAX_NUM_CODECS 32 |
58 | #define MAX_NUM_CODEC_DESCRIPTORS 32 | 58 | #define MAX_NUM_CODEC_DESCRIPTORS 32 |
59 | #define MAX_NUM_BITRATES 32 | 59 | #define MAX_NUM_BITRATES 32 |
60 | #define MAX_NUM_SAMPLE_RATES 32 | ||
60 | 61 | ||
61 | /* Codecs are listed linearly to allow for extensibility */ | 62 | /* Codecs are listed linearly to allow for extensibility */ |
62 | #define SND_AUDIOCODEC_PCM ((__u32) 0x00000001) | 63 | #define SND_AUDIOCODEC_PCM ((__u32) 0x00000001) |
@@ -324,7 +325,8 @@ union snd_codec_options { | |||
324 | 325 | ||
325 | /** struct snd_codec_desc - description of codec capabilities | 326 | /** struct snd_codec_desc - description of codec capabilities |
326 | * @max_ch: Maximum number of audio channels | 327 | * @max_ch: Maximum number of audio channels |
327 | * @sample_rates: Sampling rates in Hz, use SNDRV_PCM_RATE_xxx for this | 328 | * @sample_rates: Sampling rates in Hz, use values like 48000 for this |
329 | * @num_sample_rates: Number of valid values in sample_rates array | ||
328 | * @bit_rate: Indexed array containing supported bit rates | 330 | * @bit_rate: Indexed array containing supported bit rates |
329 | * @num_bitrates: Number of valid values in bit_rate array | 331 | * @num_bitrates: Number of valid values in bit_rate array |
330 | * @rate_control: value is specified by SND_RATECONTROLMODE defines. | 332 | * @rate_control: value is specified by SND_RATECONTROLMODE defines. |
@@ -346,7 +348,8 @@ union snd_codec_options { | |||
346 | 348 | ||
347 | struct snd_codec_desc { | 349 | struct snd_codec_desc { |
348 | __u32 max_ch; | 350 | __u32 max_ch; |
349 | __u32 sample_rates; | 351 | __u32 sample_rates[MAX_NUM_SAMPLE_RATES]; |
352 | __u32 num_sample_rates; | ||
350 | __u32 bit_rate[MAX_NUM_BITRATES]; | 353 | __u32 bit_rate[MAX_NUM_BITRATES]; |
351 | __u32 num_bitrates; | 354 | __u32 num_bitrates; |
352 | __u32 rate_control; | 355 | __u32 rate_control; |
@@ -364,7 +367,8 @@ struct snd_codec_desc { | |||
364 | * @ch_out: Number of output channels. In case of contradiction between | 367 | * @ch_out: Number of output channels. In case of contradiction between |
365 | * this field and the channelMode field, the channelMode field | 368 | * this field and the channelMode field, the channelMode field |
366 | * overrides. | 369 | * overrides. |
367 | * @sample_rate: Audio sample rate of input data | 370 | * @sample_rate: Audio sample rate of input data in Hz, use values like 48000 |
371 | * for this. | ||
368 | * @bit_rate: Bitrate of encoded data. May be ignored by decoders | 372 | * @bit_rate: Bitrate of encoded data. May be ignored by decoders |
369 | * @rate_control: Encoding rate control. See SND_RATECONTROLMODE defines. | 373 | * @rate_control: Encoding rate control. See SND_RATECONTROLMODE defines. |
370 | * Encoders may rely on profiles for quality levels. | 374 | * Encoders may rely on profiles for quality levels. |