History

Merge 3.18-rc3 into staging-next

We want the upstream fixes in here as well.

Greg Kroah-Hartman committed 12 years ago

Commit 7cbe0102 parents 9056be3 0df1f24947 files · +19578 −8789Browse files

Showing the changes to include/uapi/linux (7 of 947 files). Show all

Unified · Split

7 files
  1. include/uapi/linux/Kbuild +1 −0
  2. include/uapi/linux/fs.h +1 −0
  3. include/uapi/linux/input.h +7 −0
  4. include/uapi/linux/perf_event.h +7 −7
  5. include/uapi/linux/sched.h +1 −1
  6. include/uapi/linux/target_core_user.h +142 −0
  7. include/uapi/linux/v4l2-dv-timings.h +9 −0
include/uapi/linux/Kbuild+1−0
@@ -375,6 +375,7 @@ header-y += swab.h · 374 unmodified lines
375375 header-y += synclink.h
376376 header-y += sysctl.h
377377 header-y += sysinfo.h
378+header-y += target_core_user.h
378379 header-y += taskstats.h
379380 header-y += tcp.h
380381 header-y += tcp_metrics.h
include/uapi/linux/fs.h+1−0
@@ -37,6 +37,7 @@ · 36 unmodified lines
3737
3838 #define RENAME_NOREPLACE (1 << 0) /* Don't overwrite target */
3939 #define RENAME_EXCHANGE (1 << 1) /* Exchange source and dest */
40+#define RENAME_WHITEOUT (1 << 2) /* Whiteout source */
4041
4142 struct fstrim_range {
4243 __u64 start;
include/uapi/linux/input.h+7−0
@@ -739,6 +739,13 @@ struct input_keymap_entry { · 738 unmodified lines
739739 #define KEY_BRIGHTNESS_MIN 0x250 /* Set Brightness to Minimum */
740740 #define KEY_BRIGHTNESS_MAX 0x251 /* Set Brightness to Maximum */
741741
742+#define KEY_KBDINPUTASSIST_PREV 0x260
743+#define KEY_KBDINPUTASSIST_NEXT 0x261
744+#define KEY_KBDINPUTASSIST_PREVGROUP 0x262
745+#define KEY_KBDINPUTASSIST_NEXTGROUP 0x263
746+#define KEY_KBDINPUTASSIST_ACCEPT 0x264
747+#define KEY_KBDINPUTASSIST_CANCEL 0x265
748+
742749 #define BTN_TRIGGER_HAPPY 0x2c0
743750 #define BTN_TRIGGER_HAPPY1 0x2c0
744751 #define BTN_TRIGGER_HAPPY2 0x2c1
include/uapi/linux/perf_event.h+7−7
@@ -364,7 +364,7 @@ struct perf_event_mmap_page { · 363 unmodified lines
364364 /*
365365 * Bits needed to read the hw events in user-space.
366366 *
367− * u32 seq, time_mult, time_shift, idx, width;
367+ * u32 seq, time_mult, time_shift, index, width;
368368 * u64 count, enabled, running;
369369 * u64 cyc, time_offset;
370370 * s64 pmc = 0;
@@ -383,11 +383,11 @@ struct perf_event_mmap_page { · 12 unmodified lines
383383 * time_shift = pc->time_shift;
384384 * }
385385 *
386− * idx = pc->index;
386+ * index = pc->index;
387387 * count = pc->offset;
388− * if (pc->cap_usr_rdpmc && idx) {
388+ * if (pc->cap_user_rdpmc && index) {
389389 * width = pc->pmc_width;
390− * pmc = rdpmc(idx - 1);
390+ * pmc = rdpmc(index - 1);
391391 * }
392392 *
393393 * barrier();
@@ -415,7 +415,7 @@ struct perf_event_mmap_page { · 21 unmodified lines
415415 };
416416
417417 /*
418− * If cap_usr_rdpmc this field provides the bit-width of the value
418+ * If cap_user_rdpmc this field provides the bit-width of the value
419419 * read using the rdpmc() or equivalent instruction. This can be used
420420 * to sign extend the result like:
421421 *
@@ -439,10 +439,10 @@ struct perf_event_mmap_page { · 17 unmodified lines
439439 *
440440 * Where time_offset,time_mult,time_shift and cyc are read in the
441441 * seqcount loop described above. This delta can then be added to
442− * enabled and possible running (if idx), improving the scaling:
442+ * enabled and possible running (if index), improving the scaling:
443443 *
444444 * enabled += delta;
445− * if (idx)
445+ * if (index)
446446 * running += delta;
447447 *
448448 * quot = count / running;
include/uapi/linux/sched.h+1−1
@@ -13,7 +13,7 @@ · 12 unmodified lines
1313 #define CLONE_VFORK 0x00004000 /* set if the parent wants the child to wake it up on mm_release */
1414 #define CLONE_PARENT 0x00008000 /* set if we want to have the same parent as the cloner */
1515 #define CLONE_THREAD 0x00010000 /* Same thread group? */
16−#define CLONE_NEWNS 0x00020000 /* New namespace group? */
16+#define CLONE_NEWNS 0x00020000 /* New mount namespace group */
1717 #define CLONE_SYSVSEM 0x00040000 /* share system V SEM_UNDO semantics */
1818 #define CLONE_SETTLS 0x00080000 /* create a new TLS for the child */
1919 #define CLONE_PARENT_SETTID 0x00100000 /* set the TID in the parent */
include/uapi/linux/target_core_user.h+142−0
@@ -0,0 +1,142 @@
1+#ifndef __TARGET_CORE_USER_H
2+#define __TARGET_CORE_USER_H
3+
4+/* This header will be used by application too */
5+
6+#include <linux/types.h>
7+#include <linux/uio.h>
8+
9+#ifndef __packed
10+#define __packed __attribute__((packed))
11+#endif
12+
13+#define TCMU_VERSION "1.0"
14+
15+/*
16+ * Ring Design
17+ * -----------
18+ *
19+ * The mmaped area is divided into three parts:
20+ * 1) The mailbox (struct tcmu_mailbox, below)
21+ * 2) The command ring
22+ * 3) Everything beyond the command ring (data)
23+ *
24+ * The mailbox tells userspace the offset of the command ring from the
25+ * start of the shared memory region, and how big the command ring is.
26+ *
27+ * The kernel passes SCSI commands to userspace by putting a struct
28+ * tcmu_cmd_entry in the ring, updating mailbox->cmd_head, and poking
29+ * userspace via uio's interrupt mechanism.
30+ *
31+ * tcmu_cmd_entry contains a header. If the header type is PAD,
32+ * userspace should skip hdr->length bytes (mod cmdr_size) to find the
33+ * next cmd_entry.
34+ *
35+ * Otherwise, the entry will contain offsets into the mmaped area that
36+ * contain the cdb and data buffers -- the latter accessible via the
37+ * iov array. iov addresses are also offsets into the shared area.
38+ *
39+ * When userspace is completed handling the command, set
40+ * entry->rsp.scsi_status, fill in rsp.sense_buffer if appropriate,
41+ * and also set mailbox->cmd_tail equal to the old cmd_tail plus
42+ * hdr->length, mod cmdr_size. If cmd_tail doesn't equal cmd_head, it
43+ * should process the next packet the same way, and so on.
44+ */
45+
46+#define TCMU_MAILBOX_VERSION 1
47+#define ALIGN_SIZE 64 /* Should be enough for most CPUs */
48+
49+struct tcmu_mailbox {
50+ __u16 version;
51+ __u16 flags;
52+ __u32 cmdr_off;
53+ __u32 cmdr_size;
54+
55+ __u32 cmd_head;
56+
57+ /* Updated by user. On its own cacheline */
58+ __u32 cmd_tail __attribute__((__aligned__(ALIGN_SIZE)));
59+
60+} __packed;
61+
62+enum tcmu_opcode {
63+ TCMU_OP_PAD = 0,
64+ TCMU_OP_CMD,
65+};
66+
67+/*
68+ * Only a few opcodes, and length is 8-byte aligned, so use low bits for opcode.
69+ */
70+struct tcmu_cmd_entry_hdr {
71+ __u32 len_op;
72+} __packed;
73+
74+#define TCMU_OP_MASK 0x7
75+
76+static inline enum tcmu_opcode tcmu_hdr_get_op(struct tcmu_cmd_entry_hdr *hdr)
77+{
78+ return hdr->len_op & TCMU_OP_MASK;
79+}
80+
81+static inline void tcmu_hdr_set_op(struct tcmu_cmd_entry_hdr *hdr, enum tcmu_opcode op)
82+{
83+ hdr->len_op &= ~TCMU_OP_MASK;
84+ hdr->len_op |= (op & TCMU_OP_MASK);
85+}
86+
87+static inline __u32 tcmu_hdr_get_len(struct tcmu_cmd_entry_hdr *hdr)
88+{
89+ return hdr->len_op & ~TCMU_OP_MASK;
90+}
91+
92+static inline void tcmu_hdr_set_len(struct tcmu_cmd_entry_hdr *hdr, __u32 len)
93+{
94+ hdr->len_op &= TCMU_OP_MASK;
95+ hdr->len_op |= len;
96+}
97+
98+/* Currently the same as SCSI_SENSE_BUFFERSIZE */
99+#define TCMU_SENSE_BUFFERSIZE 96
100+
101+struct tcmu_cmd_entry {
102+ struct tcmu_cmd_entry_hdr hdr;
103+
104+ uint16_t cmd_id;
105+ uint16_t __pad1;
106+
107+ union {
108+ struct {
109+ uint64_t cdb_off;
110+ uint64_t iov_cnt;
111+ struct iovec iov[0];
112+ } req;
113+ struct {
114+ uint8_t scsi_status;
115+ uint8_t __pad1;
116+ uint16_t __pad2;
117+ uint32_t __pad3;
118+ char sense_buffer[TCMU_SENSE_BUFFERSIZE];
119+ } rsp;
120+ };
121+
122+} __packed;
123+
124+#define TCMU_OP_ALIGN_SIZE sizeof(uint64_t)
125+
126+enum tcmu_genl_cmd {
127+ TCMU_CMD_UNSPEC,
128+ TCMU_CMD_ADDED_DEVICE,
129+ TCMU_CMD_REMOVED_DEVICE,
130+ __TCMU_CMD_MAX,
131+};
132+#define TCMU_CMD_MAX (__TCMU_CMD_MAX - 1)
133+
134+enum tcmu_genl_attr {
135+ TCMU_ATTR_UNSPEC,
136+ TCMU_ATTR_DEVICE,
137+ TCMU_ATTR_MINOR,
138+ __TCMU_ATTR_MAX,
139+};
140+#define TCMU_ATTR_MAX (__TCMU_ATTR_MAX - 1)
141+
142+#endif
include/uapi/linux/v4l2-dv-timings.h+9−0
@@ -21,8 +21,17 @@ · 20 unmodified lines
2121 #ifndef _V4L2_DV_TIMINGS_H
2222 #define _V4L2_DV_TIMINGS_H
2323
24+#if __GNUC__ < 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ < 6))
25+/* Sadly gcc versions older than 4.6 have a bug in how they initialize
26+ anonymous unions where they require additional curly brackets.
27+ This violates the C1x standard. This workaround adds the curly brackets
28+ if needed. */
2429 #define V4L2_INIT_BT_TIMINGS(_width, args...) \
2530 { .bt = { _width , ## args } }
31+#else
32+#define V4L2_INIT_BT_TIMINGS(_width, args...) \
33+ .bt = { _width , ## args }
34+#endif
2635
2736 /* CEA-861-E timings (i.e. standard HDTV timings) */
2837