aboutsummaryrefslogtreecommitdiffstats
path: root/arch/hexagon/include/uapi/asm
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2012-10-25 15:20:36 -0400
committerTakashi Iwai <tiwai@suse.de>2012-10-25 15:20:36 -0400
commitc64064ce9376a404e0888ca4a2985c8a4c16cec3 (patch)
treef34d3b84ca970fdb381dad9a195c1367ce5d10f4 /arch/hexagon/include/uapi/asm
parent21b3de881b38a84002c07b1b4bfb91892644e83f (diff)
parent456ba5a7802e58eccb5aa9751b3ab515ef99b9ca (diff)
Merge tag 'asoc-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
ASoC: Fixes for v3.7 A couple of driver fixes, one that improves the interoperability of WM8994 with controllers that are sensitive to extra BCLK cycles and some build break fixes for ux500.
Diffstat (limited to 'arch/hexagon/include/uapi/asm')
-rw-r--r--arch/hexagon/include/uapi/asm/Kbuild12
-rw-r--r--arch/hexagon/include/uapi/asm/bitsperlong.h26
-rw-r--r--arch/hexagon/include/uapi/asm/byteorder.h28
-rw-r--r--arch/hexagon/include/uapi/asm/kvm_para.h1
-rw-r--r--arch/hexagon/include/uapi/asm/param.h26
-rw-r--r--arch/hexagon/include/uapi/asm/ptrace.h35
-rw-r--r--arch/hexagon/include/uapi/asm/registers.h221
-rw-r--r--arch/hexagon/include/uapi/asm/setup.h29
-rw-r--r--arch/hexagon/include/uapi/asm/sigcontext.h33
-rw-r--r--arch/hexagon/include/uapi/asm/signal.h26
-rw-r--r--arch/hexagon/include/uapi/asm/swab.h24
-rw-r--r--arch/hexagon/include/uapi/asm/unistd.h31
-rw-r--r--arch/hexagon/include/uapi/asm/user.h63
13 files changed, 555 insertions, 0 deletions
diff --git a/arch/hexagon/include/uapi/asm/Kbuild b/arch/hexagon/include/uapi/asm/Kbuild
index baebb3da1d44..c31706c38631 100644
--- a/arch/hexagon/include/uapi/asm/Kbuild
+++ b/arch/hexagon/include/uapi/asm/Kbuild
@@ -1,3 +1,15 @@
1# UAPI Header export list 1# UAPI Header export list
2include include/uapi/asm-generic/Kbuild.asm 2include include/uapi/asm-generic/Kbuild.asm
3 3
4header-y += bitsperlong.h
5header-y += byteorder.h
6header-y += kvm_para.h
7header-y += param.h
8header-y += ptrace.h
9header-y += registers.h
10header-y += setup.h
11header-y += sigcontext.h
12header-y += signal.h
13header-y += swab.h
14header-y += unistd.h
15header-y += user.h
diff --git a/arch/hexagon/include/uapi/asm/bitsperlong.h b/arch/hexagon/include/uapi/asm/bitsperlong.h
new file mode 100644
index 000000000000..4a658151383d
--- /dev/null
+++ b/arch/hexagon/include/uapi/asm/bitsperlong.h
@@ -0,0 +1,26 @@
1/*
2 * Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 and
6 * only version 2 as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
16 * 02110-1301, USA.
17 */
18
19#ifndef __ASM_HEXAGON_BITSPERLONG_H
20#define __ASM_HEXAGON_BITSPERLONG_H
21
22#define __BITS_PER_LONG 32
23
24#include <asm-generic/bitsperlong.h>
25
26#endif
diff --git a/arch/hexagon/include/uapi/asm/byteorder.h b/arch/hexagon/include/uapi/asm/byteorder.h
new file mode 100644
index 000000000000..e31f3f7d9a45
--- /dev/null
+++ b/arch/hexagon/include/uapi/asm/byteorder.h
@@ -0,0 +1,28 @@
1/*
2 * Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 and
6 * only version 2 as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
16 * 02110-1301, USA.
17 */
18
19#ifndef _ASM_BYTEORDER_H
20#define _ASM_BYTEORDER_H
21
22#if defined(__GNUC__) && !defined(__STRICT_ANSI__) || defined(__KERNEL__)
23# define __BYTEORDER_HAS_U64__
24#endif
25
26#include <linux/byteorder/little_endian.h>
27
28#endif /* _ASM_BYTEORDER_H */
diff --git a/arch/hexagon/include/uapi/asm/kvm_para.h b/arch/hexagon/include/uapi/asm/kvm_para.h
new file mode 100644
index 000000000000..14fab8f0b957
--- /dev/null
+++ b/arch/hexagon/include/uapi/asm/kvm_para.h
@@ -0,0 +1 @@
#include <asm-generic/kvm_para.h>
diff --git a/arch/hexagon/include/uapi/asm/param.h b/arch/hexagon/include/uapi/asm/param.h
new file mode 100644
index 000000000000..5cec8c0417fb
--- /dev/null
+++ b/arch/hexagon/include/uapi/asm/param.h
@@ -0,0 +1,26 @@
1/*
2 * Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 and
6 * only version 2 as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
16 * 02110-1301, USA.
17 */
18
19#ifndef _ASM_PARAM_H
20#define _ASM_PARAM_H
21
22#define EXEC_PAGESIZE 16384
23
24#include <asm-generic/param.h>
25
26#endif
diff --git a/arch/hexagon/include/uapi/asm/ptrace.h b/arch/hexagon/include/uapi/asm/ptrace.h
new file mode 100644
index 000000000000..8ef784047a74
--- /dev/null
+++ b/arch/hexagon/include/uapi/asm/ptrace.h
@@ -0,0 +1,35 @@
1/*
2 * Ptrace definitions for the Hexagon architecture
3 *
4 * Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 and
8 * only version 2 as published by the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
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
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
18 * 02110-1301, USA.
19 */
20
21#ifndef _ASM_PTRACE_H
22#define _ASM_PTRACE_H
23
24#include <asm/registers.h>
25
26#define instruction_pointer(regs) pt_elr(regs)
27#define user_stack_pointer(regs) ((regs)->r29)
28
29#define profile_pc(regs) instruction_pointer(regs)
30
31/* kprobe-based event tracer support */
32extern int regs_query_register_offset(const char *name);
33extern const char *regs_query_register_name(unsigned int offset);
34
35#endif
diff --git a/arch/hexagon/include/uapi/asm/registers.h b/arch/hexagon/include/uapi/asm/registers.h
new file mode 100644
index 000000000000..c20406f63b5c
--- /dev/null
+++ b/arch/hexagon/include/uapi/asm/registers.h
@@ -0,0 +1,221 @@
1/*
2 * Register definitions for the Hexagon architecture
3 */
4
5
6#ifndef _ASM_REGISTERS_H
7#define _ASM_REGISTERS_H
8
9#define SP r29
10
11#ifndef __ASSEMBLY__
12
13/* See kernel/entry.S for further documentation. */
14
15/*
16 * Entry code copies the event record out of guest registers into
17 * this structure (which is on the stack).
18 */
19
20struct hvm_event_record {
21 unsigned long vmel; /* Event Linkage (return address) */
22 unsigned long vmest; /* Event context - pre-event SSR values */
23 unsigned long vmpsp; /* Previous stack pointer */
24 unsigned long vmbadva; /* Bad virtual address for addressing events */
25};
26
27struct pt_regs {
28 long restart_r0; /* R0 checkpoint for syscall restart */
29 long syscall_nr; /* Only used in system calls */
30 union {
31 struct {
32 unsigned long usr;
33 unsigned long preds;
34 };
35 long long int predsusr;
36 };
37 union {
38 struct {
39 unsigned long m0;
40 unsigned long m1;
41 };
42 long long int m1m0;
43 };
44 union {
45 struct {
46 unsigned long sa1;
47 unsigned long lc1;
48 };
49 long long int lc1sa1;
50 };
51 union {
52 struct {
53 unsigned long sa0;
54 unsigned long lc0;
55 };
56 long long int lc0sa0;
57 };
58 union {
59 struct {
60 unsigned long gp;
61 unsigned long ugp;
62 };
63 long long int ugpgp;
64 };
65 /*
66 * Be extremely careful with rearranging these, if at all. Some code
67 * assumes the 32 registers exist exactly like this in memory;
68 * e.g. kernel/ptrace.c
69 * e.g. kernel/signal.c (restore_sigcontext)
70 */
71 union {
72 struct {
73 unsigned long r00;
74 unsigned long r01;
75 };
76 long long int r0100;
77 };
78 union {
79 struct {
80 unsigned long r02;
81 unsigned long r03;
82 };
83 long long int r0302;
84 };
85 union {
86 struct {
87 unsigned long r04;
88 unsigned long r05;
89 };
90 long long int r0504;
91 };
92 union {
93 struct {
94 unsigned long r06;
95 unsigned long r07;
96 };
97 long long int r0706;
98 };
99 union {
100 struct {
101 unsigned long r08;
102 unsigned long r09;
103 };
104 long long int r0908;
105 };
106 union {
107 struct {
108 unsigned long r10;
109 unsigned long r11;
110 };
111 long long int r1110;
112 };
113 union {
114 struct {
115 unsigned long r12;
116 unsigned long r13;
117 };
118 long long int r1312;
119 };
120 union {
121 struct {
122 unsigned long r14;
123 unsigned long r15;
124 };
125 long long int r1514;
126 };
127 union {
128 struct {
129 unsigned long r16;
130 unsigned long r17;
131 };
132 long long int r1716;
133 };
134 union {
135 struct {
136 unsigned long r18;
137 unsigned long r19;
138 };
139 long long int r1918;
140 };
141 union {
142 struct {
143 unsigned long r20;
144 unsigned long r21;
145 };
146 long long int r2120;
147 };
148 union {
149 struct {
150 unsigned long r22;
151 unsigned long r23;
152 };
153 long long int r2322;
154 };
155 union {
156 struct {
157 unsigned long r24;
158 unsigned long r25;
159 };
160 long long int r2524;
161 };
162 union {
163 struct {
164 unsigned long r26;
165 unsigned long r27;
166 };
167 long long int r2726;
168 };
169 union {
170 struct {
171 unsigned long r28;
172 unsigned long r29;
173 };
174 long long int r2928;
175 };
176 union {
177 struct {
178 unsigned long r30;
179 unsigned long r31;
180 };
181 long long int r3130;
182 };
183 /* VM dispatch pushes event record onto stack - we can build on it */
184 struct hvm_event_record hvmer;
185};
186
187/* Defines to conveniently access the values */
188
189/*
190 * As of the VM spec 0.5, these registers are now set/retrieved via a
191 * VM call. On the in-bound side, we just fetch the values
192 * at the entry points and stuff them into the old record in pt_regs.
193 * However, on the outbound side, probably at VM rte, we set the
194 * registers back.
195 */
196
197#define pt_elr(regs) ((regs)->hvmer.vmel)
198#define pt_set_elr(regs, val) ((regs)->hvmer.vmel = (val))
199#define pt_cause(regs) ((regs)->hvmer.vmest & (HVM_VMEST_CAUSE_MSK))
200#define user_mode(regs) \
201 (((regs)->hvmer.vmest & (HVM_VMEST_UM_MSK << HVM_VMEST_UM_SFT)) != 0)
202#define ints_enabled(regs) \
203 (((regs)->hvmer.vmest & (HVM_VMEST_IE_MSK << HVM_VMEST_IE_SFT)) != 0)
204#define pt_psp(regs) ((regs)->hvmer.vmpsp)
205#define pt_badva(regs) ((regs)->hvmer.vmbadva)
206
207#define pt_set_rte_sp(regs, sp) do {\
208 pt_psp(regs) = (sp);\
209 (regs)->SP = (unsigned long) &((regs)->hvmer);\
210 } while (0)
211
212#define pt_set_kmode(regs) \
213 (regs)->hvmer.vmest = (HVM_VMEST_IE_MSK << HVM_VMEST_IE_SFT)
214
215#define pt_set_usermode(regs) \
216 (regs)->hvmer.vmest = (HVM_VMEST_UM_MSK << HVM_VMEST_UM_SFT) \
217 | (HVM_VMEST_IE_MSK << HVM_VMEST_IE_SFT)
218
219#endif /* ifndef __ASSEMBLY */
220
221#endif
diff --git a/arch/hexagon/include/uapi/asm/setup.h b/arch/hexagon/include/uapi/asm/setup.h
new file mode 100644
index 000000000000..e48285e4af96
--- /dev/null
+++ b/arch/hexagon/include/uapi/asm/setup.h
@@ -0,0 +1,29 @@
1/*
2 * Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 and
6 * only version 2 as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
16 * 02110-1301, USA.
17 */
18
19#ifndef _ASM_SETUP_H
20#define _ASM_SETUP_H
21
22#include <linux/init.h>
23#include <asm-generic/setup.h>
24
25extern char external_cmdline_buffer;
26
27void __init setup_arch_memory(void);
28
29#endif
diff --git a/arch/hexagon/include/uapi/asm/sigcontext.h b/arch/hexagon/include/uapi/asm/sigcontext.h
new file mode 100644
index 000000000000..b6ba5369ccc6
--- /dev/null
+++ b/arch/hexagon/include/uapi/asm/sigcontext.h
@@ -0,0 +1,33 @@
1/*
2 * Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 and
6 * only version 2 as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
16 * 02110-1301, USA.
17 */
18
19#ifndef _ASM_SIGCONTEXT_H
20#define _ASM_SIGCONTEXT_H
21
22#include <asm/user.h>
23
24/*
25 * Signal context structure - contains all info to do with the state
26 * before the signal handler was invoked. Note: only add new entries
27 * to the end of the structure.
28 */
29struct sigcontext {
30 struct user_regs_struct sc_regs;
31} __aligned(8);
32
33#endif
diff --git a/arch/hexagon/include/uapi/asm/signal.h b/arch/hexagon/include/uapi/asm/signal.h
new file mode 100644
index 000000000000..939556817d34
--- /dev/null
+++ b/arch/hexagon/include/uapi/asm/signal.h
@@ -0,0 +1,26 @@
1/*
2 * Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 and
6 * only version 2 as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
16 * 02110-1301, USA.
17 */
18
19#ifndef _ASM_SIGNAL_H
20#define _ASM_SIGNAL_H
21
22extern unsigned long __rt_sigtramp_template[2];
23
24#include <asm-generic/signal.h>
25
26#endif
diff --git a/arch/hexagon/include/uapi/asm/swab.h b/arch/hexagon/include/uapi/asm/swab.h
new file mode 100644
index 000000000000..9069e9247a2e
--- /dev/null
+++ b/arch/hexagon/include/uapi/asm/swab.h
@@ -0,0 +1,24 @@
1/*
2 * Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 and
6 * only version 2 as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
16 * 02110-1301, USA.
17 */
18
19#ifndef _ASM_SWAB_H
20#define _ASM_SWAB_H
21
22#define __SWAB_64_THRU_32__
23
24#endif
diff --git a/arch/hexagon/include/uapi/asm/unistd.h b/arch/hexagon/include/uapi/asm/unistd.h
new file mode 100644
index 000000000000..81312d6a52e6
--- /dev/null
+++ b/arch/hexagon/include/uapi/asm/unistd.h
@@ -0,0 +1,31 @@
1/*
2 * Syscall support for Hexagon
3 *
4 * Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 and
8 * only version 2 as published by the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
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
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
18 * 02110-1301, USA.
19 */
20
21/*
22 * The kernel pulls this unistd.h in three different ways:
23 * 1. the "normal" way which gets all the __NR defines
24 * 2. with __SYSCALL defined to produce function declarations
25 * 3. with __SYSCALL defined to produce syscall table initialization
26 * See also: syscalltab.c
27 */
28
29#define sys_mmap2 sys_mmap_pgoff
30
31#include <asm-generic/unistd.h>
diff --git a/arch/hexagon/include/uapi/asm/user.h b/arch/hexagon/include/uapi/asm/user.h
new file mode 100644
index 000000000000..cef13ee1413f
--- /dev/null
+++ b/arch/hexagon/include/uapi/asm/user.h
@@ -0,0 +1,63 @@
1#ifndef HEXAGON_ASM_USER_H
2#define HEXAGON_ASM_USER_H
3
4/*
5 * Layout for registers passed in elf core dumps to userspace.
6 *
7 * Basically a rearranged subset of "pt_regs".
8 *
9 * Interested parties: libc, gdb...
10 */
11
12struct user_regs_struct {
13 unsigned long r0;
14 unsigned long r1;
15 unsigned long r2;
16 unsigned long r3;
17 unsigned long r4;
18 unsigned long r5;
19 unsigned long r6;
20 unsigned long r7;
21 unsigned long r8;
22 unsigned long r9;
23 unsigned long r10;
24 unsigned long r11;
25 unsigned long r12;
26 unsigned long r13;
27 unsigned long r14;
28 unsigned long r15;
29 unsigned long r16;
30 unsigned long r17;
31 unsigned long r18;
32 unsigned long r19;
33 unsigned long r20;
34 unsigned long r21;
35 unsigned long r22;
36 unsigned long r23;
37 unsigned long r24;
38 unsigned long r25;
39 unsigned long r26;
40 unsigned long r27;
41 unsigned long r28;
42 unsigned long r29;
43 unsigned long r30;
44 unsigned long r31;
45 unsigned long sa0;
46 unsigned long lc0;
47 unsigned long sa1;
48 unsigned long lc1;
49 unsigned long m0;
50 unsigned long m1;
51 unsigned long usr;
52 unsigned long p3_0;
53 unsigned long gp;
54 unsigned long ugp;
55 unsigned long pc;
56 unsigned long cause;
57 unsigned long badva;
58 unsigned long pad1; /* pad out to 48 words total */
59 unsigned long pad2; /* pad out to 48 words total */
60 unsigned long pad3; /* pad out to 48 words total */
61};
62
63#endif