History

Merge tag 'v4.20-rc1' into patchwork

Linux 4.20-rc1 * tag 'v4.20-rc1': (836 commits) Linux 4.20-rc1 sched/topology: Fix off by one bug memory_hotplug: cond_resched in __remove_pages bfs: add sanity check at bfs_fill_super() kernel/sysctl.c: remove duplicated include kernel/kexec_file.c: remove some duplicated includes mm, thp: consolidate THP gfp handling into alloc_hugepage_direct_gfpmask ocfs2: fix clusters leak in ocfs2_defrag_extent() ocfs2: dlmglue: clean up timestamp handling ocfs2: don't put and assigning null to bh allocated outside ocfs2: fix a misuse a of brelse after failing ocfs2_check_dir_entry ocfs2: don't use iocb when EIOCBQUEUED returns ocfs2: without quota support, avoid calling quota recovery ocfs2: remove ocfs2_is_o2cb_active() mm: thp: relax __GFP_THISNODE for MADV_HUGEPAGE mappings include/linux/notifier.h: SRCU: fix ctags mm: handle no memcg case in memcg_kmem_charge() properly ARM: dts: stm32: update HASH1 dmas property on stm32mp157c ARM: orion: avoid VLA in orion_mpp_conf iov_iter: Fix 9p virtio breakage ...

Mauro Carvalho Chehab committed 8 years ago

Commit 215237a2 parents df18bfd 65102231051 files · +46126 −12479Browse files

Showing the changes to include/uapi/linux (6 of 1051 files). Show all

Unified · Split

6 files
  1. include/uapi/linux/elf-em.h +1 −0
  2. include/uapi/linux/fuse.h +72 −47
  3. include/uapi/linux/keyctl.h +30 −0
  4. include/uapi/linux/perf_event.h +2 −0
  5. include/uapi/linux/vfio.h +50 −0
  6. include/uapi/linux/virtio_balloon.h +8 −0
include/uapi/linux/elf-em.h+1−0
@@ -41,6 +41,7 @@ · 40 unmodified lines
4141 #define EM_TILEPRO 188 /* Tilera TILEPro */
4242 #define EM_MICROBLAZE 189 /* Xilinx MicroBlaze */
4343 #define EM_TILEGX 191 /* Tilera TILE-Gx */
44+#define EM_RISCV 243 /* RISC-V */
4445 #define EM_BPF 247 /* Linux BPF - in-kernel virtual machine */
4546 #define EM_FRV 0x5441 /* Fujitsu FR-V */
4647
include/uapi/linux/fuse.h+72−47
@@ -116,6 +116,12 @@ · 115 unmodified lines
116116 *
117117 * 7.27
118118 * - add FUSE_ABORT_ERROR
119+ *
120+ * 7.28
121+ * - add FUSE_COPY_FILE_RANGE
122+ * - add FOPEN_CACHE_DIR
123+ * - add FUSE_MAX_PAGES, add max_pages to init_out
124+ * - add FUSE_CACHE_SYMLINKS
119125 */
120126
121127 #ifndef _LINUX_FUSE_H
@@ -151,7 +157,7 @@ · 29 unmodified lines
151157 #define FUSE_KERNEL_VERSION 7
152158
153159 /** Minor version number of this interface */
154−#define FUSE_KERNEL_MINOR_VERSION 27
160+#define FUSE_KERNEL_MINOR_VERSION 28
155161
156162 /** The node ID of the root inode */
157163 #define FUSE_ROOT_ID 1
@@ -219,10 +225,12 @@ struct fuse_file_lock { · 61 unmodified lines
219225 * FOPEN_DIRECT_IO: bypass page cache for this open file
220226 * FOPEN_KEEP_CACHE: don't invalidate the data cache on open
221227 * FOPEN_NONSEEKABLE: the file is not seekable
228+ * FOPEN_CACHE_DIR: allow caching this directory
222229 */
223230 #define FOPEN_DIRECT_IO (1 << 0)
224231 #define FOPEN_KEEP_CACHE (1 << 1)
225232 #define FOPEN_NONSEEKABLE (1 << 2)
233+#define FOPEN_CACHE_DIR (1 << 3)
226234
227235 /**
228236 * INIT request/reply flags
@@ -249,6 +257,8 @@ struct fuse_file_lock { · 20 unmodified lines
249257 * FUSE_HANDLE_KILLPRIV: fs handles killing suid/sgid/cap on write/chown/trunc
250258 * FUSE_POSIX_ACL: filesystem supports posix acls
251259 * FUSE_ABORT_ERROR: reading the device after abort returns ECONNABORTED
260+ * FUSE_MAX_PAGES: init_out.max_pages contains the max number of req pages
261+ * FUSE_CACHE_SYMLINKS: cache READLINK responses
252262 */
253263 #define FUSE_ASYNC_READ (1 << 0)
254264 #define FUSE_POSIX_LOCKS (1 << 1)
@@ -272,6 +282,8 @@ struct fuse_file_lock { · 17 unmodified lines
272282 #define FUSE_HANDLE_KILLPRIV (1 << 19)
273283 #define FUSE_POSIX_ACL (1 << 20)
274284 #define FUSE_ABORT_ERROR (1 << 21)
285+#define FUSE_MAX_PAGES (1 << 22)
286+#define FUSE_CACHE_SYMLINKS (1 << 23)
275287
276288 /**
277289 * CUSE INIT request/reply flags
@@ -337,53 +349,54 @@ struct fuse_file_lock { · 59 unmodified lines
337349 #define FUSE_POLL_SCHEDULE_NOTIFY (1 << 0)
338350
339351 enum fuse_opcode {
340− FUSE_LOOKUP = 1,
341− FUSE_FORGET = 2, /* no reply */
342− FUSE_GETATTR = 3,
343− FUSE_SETATTR = 4,
344− FUSE_READLINK = 5,
345− FUSE_SYMLINK = 6,
346− FUSE_MKNOD = 8,
347− FUSE_MKDIR = 9,
348− FUSE_UNLINK = 10,
349− FUSE_RMDIR = 11,
350− FUSE_RENAME = 12,
351− FUSE_LINK = 13,
352− FUSE_OPEN = 14,
353− FUSE_READ = 15,
354− FUSE_WRITE = 16,
355− FUSE_STATFS = 17,
356− FUSE_RELEASE = 18,
357− FUSE_FSYNC = 20,
358− FUSE_SETXATTR = 21,
359− FUSE_GETXATTR = 22,
360− FUSE_LISTXATTR = 23,
361− FUSE_REMOVEXATTR = 24,
362− FUSE_FLUSH = 25,
363− FUSE_INIT = 26,
364− FUSE_OPENDIR = 27,
365− FUSE_READDIR = 28,
366− FUSE_RELEASEDIR = 29,
367− FUSE_FSYNCDIR = 30,
368− FUSE_GETLK = 31,
369− FUSE_SETLK = 32,
370− FUSE_SETLKW = 33,
371− FUSE_ACCESS = 34,
372− FUSE_CREATE = 35,
373− FUSE_INTERRUPT = 36,
374− FUSE_BMAP = 37,
375− FUSE_DESTROY = 38,
376− FUSE_IOCTL = 39,
377− FUSE_POLL = 40,
378− FUSE_NOTIFY_REPLY = 41,
379− FUSE_BATCH_FORGET = 42,
380− FUSE_FALLOCATE = 43,
381− FUSE_READDIRPLUS = 44,
382− FUSE_RENAME2 = 45,
383− FUSE_LSEEK = 46,
352+ FUSE_LOOKUP = 1,
353+ FUSE_FORGET = 2, /* no reply */
354+ FUSE_GETATTR = 3,
355+ FUSE_SETATTR = 4,
356+ FUSE_READLINK = 5,
357+ FUSE_SYMLINK = 6,
358+ FUSE_MKNOD = 8,
359+ FUSE_MKDIR = 9,
360+ FUSE_UNLINK = 10,
361+ FUSE_RMDIR = 11,
362+ FUSE_RENAME = 12,
363+ FUSE_LINK = 13,
364+ FUSE_OPEN = 14,
365+ FUSE_READ = 15,
366+ FUSE_WRITE = 16,
367+ FUSE_STATFS = 17,
368+ FUSE_RELEASE = 18,
369+ FUSE_FSYNC = 20,
370+ FUSE_SETXATTR = 21,
371+ FUSE_GETXATTR = 22,
372+ FUSE_LISTXATTR = 23,
373+ FUSE_REMOVEXATTR = 24,
374+ FUSE_FLUSH = 25,
375+ FUSE_INIT = 26,
376+ FUSE_OPENDIR = 27,
377+ FUSE_READDIR = 28,
378+ FUSE_RELEASEDIR = 29,
379+ FUSE_FSYNCDIR = 30,
380+ FUSE_GETLK = 31,
381+ FUSE_SETLK = 32,
382+ FUSE_SETLKW = 33,
383+ FUSE_ACCESS = 34,
384+ FUSE_CREATE = 35,
385+ FUSE_INTERRUPT = 36,
386+ FUSE_BMAP = 37,
387+ FUSE_DESTROY = 38,
388+ FUSE_IOCTL = 39,
389+ FUSE_POLL = 40,
390+ FUSE_NOTIFY_REPLY = 41,
391+ FUSE_BATCH_FORGET = 42,
392+ FUSE_FALLOCATE = 43,
393+ FUSE_READDIRPLUS = 44,
394+ FUSE_RENAME2 = 45,
395+ FUSE_LSEEK = 46,
396+ FUSE_COPY_FILE_RANGE = 47,
384397
385398 /* CUSE specific operations */
386− CUSE_INIT = 4096,
399+ CUSE_INIT = 4096,
387400 };
388401
389402 enum fuse_notify_code {
@@ -610,7 +623,9 @@ struct fuse_init_out { · 220 unmodified lines
610623 uint16_t congestion_threshold;
611624 uint32_t max_write;
612625 uint32_t time_gran;
613− uint32_t unused[9];
626+ uint16_t max_pages;
627+ uint16_t padding;
628+ uint32_t unused[8];
614629 };
615630
616631 #define CUSE_INIT_INFO_MAX 4096
@@ -792,4 +807,14 @@ struct fuse_lseek_out { · 175 unmodified lines
792807 uint64_t offset;
793808 };
794809
810+struct fuse_copy_file_range_in {
811+ uint64_t fh_in;
812+ uint64_t off_in;
813+ uint64_t nodeid_out;
814+ uint64_t fh_out;
815+ uint64_t off_out;
816+ uint64_t len;
817+ uint64_t flags;
818+};
819+
795820 #endif /* _LINUX_FUSE_H */
include/uapi/linux/keyctl.h+30−0
@@ -61,6 +61,11 @@ · 60 unmodified lines
6161 #define KEYCTL_INVALIDATE 21 /* invalidate a key */
6262 #define KEYCTL_GET_PERSISTENT 22 /* get a user's persistent keyring */
6363 #define KEYCTL_DH_COMPUTE 23 /* Compute Diffie-Hellman values */
64+#define KEYCTL_PKEY_QUERY 24 /* Query public key parameters */
65+#define KEYCTL_PKEY_ENCRYPT 25 /* Encrypt a blob using a public key */
66+#define KEYCTL_PKEY_DECRYPT 26 /* Decrypt a blob using a public key */
67+#define KEYCTL_PKEY_SIGN 27 /* Create a public key signature */
68+#define KEYCTL_PKEY_VERIFY 28 /* Verify a public key signature */
6469 #define KEYCTL_RESTRICT_KEYRING 29 /* Restrict keys allowed to link to a keyring */
6570
6671 /* keyctl structures */
@@ -82,4 +87,29 @@ struct keyctl_kdf_params { · 15 unmodified lines
8287 __u32 __spare[8];
8388 };
8489
90+#define KEYCTL_SUPPORTS_ENCRYPT 0x01
91+#define KEYCTL_SUPPORTS_DECRYPT 0x02
92+#define KEYCTL_SUPPORTS_SIGN 0x04
93+#define KEYCTL_SUPPORTS_VERIFY 0x08
94+
95+struct keyctl_pkey_query {
96+ __u32 supported_ops; /* Which ops are supported */
97+ __u32 key_size; /* Size of the key in bits */
98+ __u16 max_data_size; /* Maximum size of raw data to sign in bytes */
99+ __u16 max_sig_size; /* Maximum size of signature in bytes */
100+ __u16 max_enc_size; /* Maximum size of encrypted blob in bytes */
101+ __u16 max_dec_size; /* Maximum size of decrypted blob in bytes */
102+ __u32 __spare[10];
103+};
104+
105+struct keyctl_pkey_params {
106+ __s32 key_id; /* Serial no. of public key to use */
107+ __u32 in_len; /* Input data size */
108+ union {
109+ __u32 out_len; /* Output buffer size (encrypt/decrypt/sign) */
110+ __u32 in2_len; /* 2nd input data size (verify) */
111+ };
112+ __u32 __spare[7];
113+};
114+
85115 #endif /* _LINUX_KEYCTL_H */
include/uapi/linux/perf_event.h+2−0
@@ -646,10 +646,12 @@ struct perf_event_mmap_page { · 645 unmodified lines
646646 *
647647 * PERF_RECORD_MISC_MMAP_DATA - PERF_RECORD_MMAP* events
648648 * PERF_RECORD_MISC_COMM_EXEC - PERF_RECORD_COMM event
649+ * PERF_RECORD_MISC_FORK_EXEC - PERF_RECORD_FORK event (perf internal)
649650 * PERF_RECORD_MISC_SWITCH_OUT - PERF_RECORD_SWITCH* events
650651 */
651652 #define PERF_RECORD_MISC_MMAP_DATA (1 << 13)
652653 #define PERF_RECORD_MISC_COMM_EXEC (1 << 13)
654+#define PERF_RECORD_MISC_FORK_EXEC (1 << 13)
653655 #define PERF_RECORD_MISC_SWITCH_OUT (1 << 13)
654656 /*
655657 * These PERF_RECORD_MISC_* flags below are safely reused
include/uapi/linux/vfio.h+50−0
@@ -303,6 +303,56 @@ struct vfio_region_info_cap_type { · 302 unmodified lines
303303 #define VFIO_REGION_SUBTYPE_INTEL_IGD_HOST_CFG (2)
304304 #define VFIO_REGION_SUBTYPE_INTEL_IGD_LPC_CFG (3)
305305
306+#define VFIO_REGION_TYPE_GFX (1)
307+#define VFIO_REGION_SUBTYPE_GFX_EDID (1)
308+
309+/**
310+ * struct vfio_region_gfx_edid - EDID region layout.
311+ *
312+ * Set display link state and EDID blob.
313+ *
314+ * The EDID blob has monitor information such as brand, name, serial
315+ * number, physical size, supported video modes and more.
316+ *
317+ * This special region allows userspace (typically qemu) set a virtual
318+ * EDID for the virtual monitor, which allows a flexible display
319+ * configuration.
320+ *
321+ * For the edid blob spec look here:
322+ * https://en.wikipedia.org/wiki/Extended_Display_Identification_Data
323+ *
324+ * On linux systems you can find the EDID blob in sysfs:
325+ * /sys/class/drm/${card}/${connector}/edid
326+ *
327+ * You can use the edid-decode ulility (comes with xorg-x11-utils) to
328+ * decode the EDID blob.
329+ *
330+ * @edid_offset: location of the edid blob, relative to the
331+ * start of the region (readonly).
332+ * @edid_max_size: max size of the edid blob (readonly).
333+ * @edid_size: actual edid size (read/write).
334+ * @link_state: display link state (read/write).
335+ * VFIO_DEVICE_GFX_LINK_STATE_UP: Monitor is turned on.
336+ * VFIO_DEVICE_GFX_LINK_STATE_DOWN: Monitor is turned off.
337+ * @max_xres: max display width (0 == no limitation, readonly).
338+ * @max_yres: max display height (0 == no limitation, readonly).
339+ *
340+ * EDID update protocol:
341+ * (1) set link-state to down.
342+ * (2) update edid blob and size.
343+ * (3) set link-state to up.
344+ */
345+struct vfio_region_gfx_edid {
346+ __u32 edid_offset;
347+ __u32 edid_max_size;
348+ __u32 edid_size;
349+ __u32 max_xres;
350+ __u32 max_yres;
351+ __u32 link_state;
352+#define VFIO_DEVICE_GFX_LINK_STATE_UP 1
353+#define VFIO_DEVICE_GFX_LINK_STATE_DOWN 2
354+};
355+
306356 /*
307357 * The MSIX mappable capability informs that MSIX data of a BAR can be mmapped
308358 * which allows direct access to non-MSIX registers which happened to be within
include/uapi/linux/virtio_balloon.h+8−0
@@ -34,15 +34,23 @@ · 33 unmodified lines
3434 #define VIRTIO_BALLOON_F_MUST_TELL_HOST 0 /* Tell before reclaiming pages */
3535 #define VIRTIO_BALLOON_F_STATS_VQ 1 /* Memory Stats virtqueue */
3636 #define VIRTIO_BALLOON_F_DEFLATE_ON_OOM 2 /* Deflate balloon on OOM */
37+#define VIRTIO_BALLOON_F_FREE_PAGE_HINT 3 /* VQ to report free pages */
38+#define VIRTIO_BALLOON_F_PAGE_POISON 4 /* Guest is using page poisoning */
3739
3840 /* Size of a PFN in the balloon interface. */
3941 #define VIRTIO_BALLOON_PFN_SHIFT 12
4042
43+#define VIRTIO_BALLOON_CMD_ID_STOP 0
44+#define VIRTIO_BALLOON_CMD_ID_DONE 1
4145 struct virtio_balloon_config {
4246 /* Number of pages host wants Guest to give up. */
4347 __u32 num_pages;
4448 /* Number of pages we've actually got in balloon. */
4549 __u32 actual;
50+ /* Free page report command id, readonly by guest */
51+ __u32 free_page_report_cmd_id;
52+ /* Stores PAGE_POISON if page poisoning is in use */
53+ __u32 poison_val;
4654 };
4755
4856 #define VIRTIO_BALLOON_S_SWAP_IN 0 /* Amount of memory swapped in */

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t