aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-generic
diff options
context:
space:
mode:
authorJeff Garzik <jgarzik@pobox.com>2005-09-08 05:37:58 -0400
committerJeff Garzik <jgarzik@pobox.com>2005-09-08 05:37:58 -0400
commit5a2cec83a9bb1b4295aa8ab728fcb8ca1811a33c (patch)
tree2f83dc6949763e77cf6422e696dc6146684dcf4e /include/asm-generic
parentf2c853bca542f5ac0b036377637192a74f2091c2 (diff)
parentcaf39e87cc1182f7dae84eefc43ca14d54c78ef9 (diff)
Merge /spare/repo/linux-2.6/
Diffstat (limited to 'include/asm-generic')
-rw-r--r--include/asm-generic/fcntl.h149
-rw-r--r--include/asm-generic/hdreg.h8
-rw-r--r--include/asm-generic/sections.h1
-rw-r--r--include/asm-generic/unaligned.h12
-rw-r--r--include/asm-generic/vmlinux.lds.h6
5 files changed, 162 insertions, 14 deletions
diff --git a/include/asm-generic/fcntl.h b/include/asm-generic/fcntl.h
new file mode 100644
index 000000000000..b663520dcdc4
--- /dev/null
+++ b/include/asm-generic/fcntl.h
@@ -0,0 +1,149 @@
1#ifndef _ASM_GENERIC_FCNTL_H
2#define _ASM_GENERIC_FCNTL_H
3
4#include <linux/config.h>
5#include <linux/types.h>
6
7/* open/fcntl - O_SYNC is only implemented on blocks devices and on files
8 located on an ext2 file system */
9#define O_ACCMODE 00000003
10#define O_RDONLY 00000000
11#define O_WRONLY 00000001
12#define O_RDWR 00000002
13#ifndef O_CREAT
14#define O_CREAT 00000100 /* not fcntl */
15#endif
16#ifndef O_EXCL
17#define O_EXCL 00000200 /* not fcntl */
18#endif
19#ifndef O_NOCTTY
20#define O_NOCTTY 00000400 /* not fcntl */
21#endif
22#ifndef O_TRUNC
23#define O_TRUNC 00001000 /* not fcntl */
24#endif
25#ifndef O_APPEND
26#define O_APPEND 00002000
27#endif
28#ifndef O_NONBLOCK
29#define O_NONBLOCK 00004000
30#endif
31#ifndef O_SYNC
32#define O_SYNC 00010000
33#endif
34#ifndef FASYNC
35#define FASYNC 00020000 /* fcntl, for BSD compatibility */
36#endif
37#ifndef O_DIRECT
38#define O_DIRECT 00040000 /* direct disk access hint */
39#endif
40#ifndef O_LARGEFILE
41#define O_LARGEFILE 00100000
42#endif
43#ifndef O_DIRECTORY
44#define O_DIRECTORY 00200000 /* must be a directory */
45#endif
46#ifndef O_NOFOLLOW
47#define O_NOFOLLOW 00400000 /* don't follow links */
48#endif
49#ifndef O_NOATIME
50#define O_NOATIME 01000000
51#endif
52#ifndef O_NDELAY
53#define O_NDELAY O_NONBLOCK
54#endif
55
56#define F_DUPFD 0 /* dup */
57#define F_GETFD 1 /* get close_on_exec */
58#define F_SETFD 2 /* set/clear close_on_exec */
59#define F_GETFL 3 /* get file->f_flags */
60#define F_SETFL 4 /* set file->f_flags */
61#ifndef F_GETLK
62#define F_GETLK 5
63#define F_SETLK 6
64#define F_SETLKW 7
65#endif
66#ifndef F_SETOWN
67#define F_SETOWN 8 /* for sockets. */
68#define F_GETOWN 9 /* for sockets. */
69#endif
70#ifndef F_SETSIG
71#define F_SETSIG 10 /* for sockets. */
72#define F_GETSIG 11 /* for sockets. */
73#endif
74
75/* for F_[GET|SET]FL */
76#define FD_CLOEXEC 1 /* actually anything with low bit set goes */
77
78/* for posix fcntl() and lockf() */
79#ifndef F_RDLCK
80#define F_RDLCK 0
81#define F_WRLCK 1
82#define F_UNLCK 2
83#endif
84
85/* for old implementation of bsd flock () */
86#ifndef F_EXLCK
87#define F_EXLCK 4 /* or 3 */
88#define F_SHLCK 8 /* or 4 */
89#endif
90
91/* for leases */
92#ifndef F_INPROGRESS
93#define F_INPROGRESS 16
94#endif
95
96/* operations for bsd flock(), also used by the kernel implementation */
97#define LOCK_SH 1 /* shared lock */
98#define LOCK_EX 2 /* exclusive lock */
99#define LOCK_NB 4 /* or'd with one of the above to prevent
100 blocking */
101#define LOCK_UN 8 /* remove lock */
102
103#define LOCK_MAND 32 /* This is a mandatory flock ... */
104#define LOCK_READ 64 /* which allows concurrent read operations */
105#define LOCK_WRITE 128 /* which allows concurrent write operations */
106#define LOCK_RW 192 /* which allows concurrent read & write ops */
107
108#define F_LINUX_SPECIFIC_BASE 1024
109
110#ifndef HAVE_ARCH_STRUCT_FLOCK
111#ifndef __ARCH_FLOCK_PAD
112#define __ARCH_FLOCK_PAD
113#endif
114
115struct flock {
116 short l_type;
117 short l_whence;
118 off_t l_start;
119 off_t l_len;
120 pid_t l_pid;
121 __ARCH_FLOCK_PAD
122};
123#endif
124
125#ifndef CONFIG_64BIT
126
127#ifndef F_GETLK64
128#define F_GETLK64 12 /* using 'struct flock64' */
129#define F_SETLK64 13
130#define F_SETLKW64 14
131#endif
132
133#ifndef HAVE_ARCH_STRUCT_FLOCK64
134#ifndef __ARCH_FLOCK64_PAD
135#define __ARCH_FLOCK64_PAD
136#endif
137
138struct flock64 {
139 short l_type;
140 short l_whence;
141 loff_t l_start;
142 loff_t l_len;
143 pid_t l_pid;
144 __ARCH_FLOCK64_PAD
145};
146#endif
147#endif /* !CONFIG_64BIT */
148
149#endif /* _ASM_GENERIC_FCNTL_H */
diff --git a/include/asm-generic/hdreg.h b/include/asm-generic/hdreg.h
deleted file mode 100644
index 7051fba8bcf9..000000000000
--- a/include/asm-generic/hdreg.h
+++ /dev/null
@@ -1,8 +0,0 @@
1#warning <asm/hdreg.h> is obsolete, please do not use it
2
3#ifndef __ASM_GENERIC_HDREG_H
4#define __ASM_GENERIC_HDREG_H
5
6typedef unsigned long ide_ioreg_t;
7
8#endif /* __ASM_GENERIC_HDREG_H */
diff --git a/include/asm-generic/sections.h b/include/asm-generic/sections.h
index 450eae22c39a..886dbd116899 100644
--- a/include/asm-generic/sections.h
+++ b/include/asm-generic/sections.h
@@ -12,5 +12,6 @@ extern char _sextratext[] __attribute__((weak));
12extern char _eextratext[] __attribute__((weak)); 12extern char _eextratext[] __attribute__((weak));
13extern char _end[]; 13extern char _end[];
14extern char __per_cpu_start[], __per_cpu_end[]; 14extern char __per_cpu_start[], __per_cpu_end[];
15extern char __kprobes_text_start[], __kprobes_text_end[];
15 16
16#endif /* _ASM_GENERIC_SECTIONS_H_ */ 17#endif /* _ASM_GENERIC_SECTIONS_H_ */
diff --git a/include/asm-generic/unaligned.h b/include/asm-generic/unaligned.h
index 6c90f0f36eec..4dc8ddb401c1 100644
--- a/include/asm-generic/unaligned.h
+++ b/include/asm-generic/unaligned.h
@@ -16,9 +16,9 @@
16 * The main single-value unaligned transfer routines. 16 * The main single-value unaligned transfer routines.
17 */ 17 */
18#define get_unaligned(ptr) \ 18#define get_unaligned(ptr) \
19 ((__typeof__(*(ptr)))__get_unaligned((ptr), sizeof(*(ptr)))) 19 __get_unaligned((ptr), sizeof(*(ptr)))
20#define put_unaligned(x,ptr) \ 20#define put_unaligned(x,ptr) \
21 __put_unaligned((unsigned long)(x), (ptr), sizeof(*(ptr))) 21 __put_unaligned((__u64)(x), (ptr), sizeof(*(ptr)))
22 22
23/* 23/*
24 * This function doesn't actually exist. The idea is that when 24 * This function doesn't actually exist. The idea is that when
@@ -36,19 +36,19 @@ struct __una_u16 { __u16 x __attribute__((packed)); };
36 * Elemental unaligned loads 36 * Elemental unaligned loads
37 */ 37 */
38 38
39static inline unsigned long __uldq(const __u64 *addr) 39static inline __u64 __uldq(const __u64 *addr)
40{ 40{
41 const struct __una_u64 *ptr = (const struct __una_u64 *) addr; 41 const struct __una_u64 *ptr = (const struct __una_u64 *) addr;
42 return ptr->x; 42 return ptr->x;
43} 43}
44 44
45static inline unsigned long __uldl(const __u32 *addr) 45static inline __u32 __uldl(const __u32 *addr)
46{ 46{
47 const struct __una_u32 *ptr = (const struct __una_u32 *) addr; 47 const struct __una_u32 *ptr = (const struct __una_u32 *) addr;
48 return ptr->x; 48 return ptr->x;
49} 49}
50 50
51static inline unsigned long __uldw(const __u16 *addr) 51static inline __u16 __uldw(const __u16 *addr)
52{ 52{
53 const struct __una_u16 *ptr = (const struct __una_u16 *) addr; 53 const struct __una_u16 *ptr = (const struct __una_u16 *) addr;
54 return ptr->x; 54 return ptr->x;
@@ -78,7 +78,7 @@ static inline void __ustw(__u16 val, __u16 *addr)
78 78
79#define __get_unaligned(ptr, size) ({ \ 79#define __get_unaligned(ptr, size) ({ \
80 const void *__gu_p = ptr; \ 80 const void *__gu_p = ptr; \
81 unsigned long val; \ 81 __typeof__(*(ptr)) val; \
82 switch (size) { \ 82 switch (size) { \
83 case 1: \ 83 case 1: \
84 val = *(const __u8 *)__gu_p; \ 84 val = *(const __u8 *)__gu_p; \
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
index 3fa94288aa93..6f857be2b644 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -97,3 +97,9 @@
97 VMLINUX_SYMBOL(__lock_text_start) = .; \ 97 VMLINUX_SYMBOL(__lock_text_start) = .; \
98 *(.spinlock.text) \ 98 *(.spinlock.text) \
99 VMLINUX_SYMBOL(__lock_text_end) = .; 99 VMLINUX_SYMBOL(__lock_text_end) = .;
100
101#define KPROBES_TEXT \
102 ALIGN_FUNCTION(); \
103 VMLINUX_SYMBOL(__kprobes_text_start) = .; \
104 *(.kprobes.text) \
105 VMLINUX_SYMBOL(__kprobes_text_end) = .;