- 论坛徽章:
- 0
|
代码中找到了
原来的sys_open现在用宏给封装起来了:
- 1062 SYSCALL_DEFINE3(open, const char __user *, filename, int, flags, int, mode)
- 1063 {
- 1064 long ret;
- 1065
- 1066 if (force_o_largefile())
- 1067 flags |= O_LARGEFILE;
- 1068
- 1069 ret = do_sys_open(AT_FDCWD, filename, flags, mode);
- 1070 /* avoid REGPARM breakage on x86: */
- 1071 asmlinkage_protect(3, ret, filename, flags, mode);
- 1072 return ret;
- 1073 }
- 1074 #ifdef CONFIG_UNIFIED_KERNEL
- 1075 EXPORT_SYMBOL(sys_open);
- 1076 #endif
复制代码
宏:
- 141 #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
复制代码
把宏展开后:
- 160 #ifdef CONFIG_FTRACE_SYSCALLS
- 161 #define SYSCALL_DEFINEx(x, sname, ...) \
- 162 static const char *types_##sname[] = { \
- 163 __SC_STR_TDECL##x(__VA_ARGS__) \
- 164 }; \
- 165 static const char *args_##sname[] = { \
- 166 __SC_STR_ADECL##x(__VA_ARGS__) \
- 167 }; \
- 168 SYSCALL_METADATA(sname, x); \
- 169 __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
- 170 #else
- 171 #define SYSCALL_DEFINEx(x, sname, ...) \
- 172 __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
- 173 #endif
- 174
- 175 #ifdef CONFIG_HAVE_SYSCALL_WRAPPERS
- 176
- 177 #define SYSCALL_DEFINE(name) static inline long SYSC_##name
- 178
- 179 #define __SYSCALL_DEFINEx(x, name, ...) \
- 180 asmlinkage long sys##name(__SC_DECL##x(__VA_ARGS__)); \
- 181 static inline long SYSC##name(__SC_DECL##x(__VA_ARGS__)); \
- 182 asmlinkage long SyS##name(__SC_LONG##x(__VA_ARGS__)) \
- 183 { \
- 184 __SC_TEST##x(__VA_ARGS__); \
- 185 return (long) SYSC##name(__SC_CAST##x(__VA_ARGS__)); \
- 186 } \
- 187 SYSCALL_ALIAS(sys##name, SyS##name); \
- 188 static inline long SYSC##name(__SC_DECL##x(__VA_ARGS__))
- 189
- 190 #else /* CONFIG_HAVE_SYSCALL_WRAPPERS */
- 191
- 192 #define SYSCALL_DEFINE(name) asmlinkage long sys_##name
- 193 #define __SYSCALL_DEFINEx(x, name, ...) \
- 194 asmlinkage long sys##name(__SC_DECL##x(__VA_ARGS__))
- 195
- 196 #endif /* CONFIG_HAVE_SYSCALL_WRAPPERS */
复制代码
就得到原来的写法了。
TO:liujunwei1234
我用的是ctags,没开cscope,麻烦:),不知道是不是这个有差别,我在vim中
:tag sys_open
提示我找不到~~
谢谢大家:) |
|