ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.bz2
[linux-2.6.git] / arch / um / kernel / user_syms.c
1 #include <stdio.h>
2 #include <unistd.h>
3 #include <fcntl.h>
4 #include <dirent.h>
5 #include <errno.h>
6 #include <utime.h>
7 #include <string.h>
8 #include <sys/stat.h>
9 #include <sys/vfs.h>
10 #include <sys/ioctl.h>
11 #include "user_util.h"
12 #include "mem_user.h"
13 #include "uml-config.h"
14
15 /* Had to steal this from linux/module.h because that file can't be included
16  * since this includes various user-level headers.
17  */
18
19 struct module_symbol
20 {
21         unsigned long value;
22         const char *name;
23 };
24
25 /* Indirect stringification.  */
26
27 #define __MODULE_STRING_1(x)    #x
28 #define __MODULE_STRING(x)      __MODULE_STRING_1(x)
29
30 #if !defined(__AUTOCONF_INCLUDED__)
31
32 #define __EXPORT_SYMBOL(sym,str)   error config_must_be_included_before_module
33 #define EXPORT_SYMBOL(var)         error config_must_be_included_before_module
34 #define EXPORT_SYMBOL_NOVERS(var)  error config_must_be_included_before_module
35
36 #elif !defined(UML_CONFIG_MODULES)
37
38 #define __EXPORT_SYMBOL(sym,str)
39 #define EXPORT_SYMBOL(var)
40 #define EXPORT_SYMBOL_NOVERS(var)
41
42 #else
43
44 #define __EXPORT_SYMBOL(sym, str)                       \
45 const char __kstrtab_##sym[]                            \
46 __attribute__((section(".kstrtab"))) = str;             \
47 const struct module_symbol __ksymtab_##sym              \
48 __attribute__((section("__ksymtab"))) =                 \
49 { (unsigned long)&sym, __kstrtab_##sym }
50
51 #if defined(__MODVERSIONS__) || !defined(UML_CONFIG_MODVERSIONS)
52 #define EXPORT_SYMBOL(var)  __EXPORT_SYMBOL(var, __MODULE_STRING(var))
53 #else
54 #define EXPORT_SYMBOL(var)  __EXPORT_SYMBOL(var, __MODULE_STRING(__VERSIONED_SYMBOL(var)))
55 #endif
56
57 #define EXPORT_SYMBOL_NOVERS(var)  __EXPORT_SYMBOL(var, __MODULE_STRING(var))
58
59 #endif
60
61 EXPORT_SYMBOL(__errno_location);
62
63 EXPORT_SYMBOL(access);
64 EXPORT_SYMBOL(open);
65 EXPORT_SYMBOL(open64);
66 EXPORT_SYMBOL(close);
67 EXPORT_SYMBOL(read);
68 EXPORT_SYMBOL(write);
69 EXPORT_SYMBOL(dup2);
70 EXPORT_SYMBOL(__xstat);
71 EXPORT_SYMBOL(__lxstat);
72 EXPORT_SYMBOL(__lxstat64);
73 EXPORT_SYMBOL(lseek);
74 EXPORT_SYMBOL(lseek64);
75 EXPORT_SYMBOL(chown);
76 EXPORT_SYMBOL(truncate);
77 EXPORT_SYMBOL(utime);
78 EXPORT_SYMBOL(chmod);
79 EXPORT_SYMBOL(rename);
80 EXPORT_SYMBOL(__xmknod);
81
82 EXPORT_SYMBOL(symlink);
83 EXPORT_SYMBOL(link);
84 EXPORT_SYMBOL(unlink);
85 EXPORT_SYMBOL(readlink);
86
87 EXPORT_SYMBOL(mkdir);
88 EXPORT_SYMBOL(rmdir);
89 EXPORT_SYMBOL(opendir);
90 EXPORT_SYMBOL(readdir);
91 EXPORT_SYMBOL(closedir);
92 EXPORT_SYMBOL(seekdir);
93 EXPORT_SYMBOL(telldir);
94
95 EXPORT_SYMBOL(ioctl);
96
97 extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes,
98                         __off64_t __offset);
99 extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n,
100                          __off64_t __offset);
101 EXPORT_SYMBOL(pread64);
102 EXPORT_SYMBOL(pwrite64);
103
104 EXPORT_SYMBOL(statfs);
105 EXPORT_SYMBOL(statfs64);
106
107 EXPORT_SYMBOL(memcpy);
108 EXPORT_SYMBOL(getuid);
109
110 EXPORT_SYMBOL(memset);
111 EXPORT_SYMBOL(strstr);
112
113 EXPORT_SYMBOL(find_iomem);