LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1207|回复: 7

取消了宏 _ s y s c a LL N后,怎么声明函数

[复制链接]
发表于 2008-4-25 00:04:57 | 显示全部楼层 |阅读模式
2.6.X中,已经取消了宏_syscallN的定义,如果想要调用自己添加的系统函数怎么声明?

_syscall2(int,my,const char *,s_file,const char *,t_file) 应该修改成什么??
发表于 2008-4-26 13:44:25 | 显示全部楼层
不是 2.6.x,应该是 2.6.22.x 以後被取消了,个别软件要打补丁才行

http://www.linuxsir.cn/bbs/showthread.php?t=315354

http://www.linuxsir.cn/bbs/thread310943.html
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-27 11:00:00 | 显示全部楼层
Post by d00m3d;1842772
不是 2.6.x,应该是 2.6.22.x 以後被取消了,个别软件要打补丁才行

http://www.linuxsir.cn/bbs/showthread.php?t=315354

http://www.linuxsir.cn/bbs/thread310943.html


我现在把低版本的unistd copy 到新内核下,正在尝试
回复 支持 反对

使用道具 举报

发表于 2008-4-27 12:30:31 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-27 14:14:22 | 显示全部楼层
原来是_syscall2(int,mytry,const char *,s_file,const char *,t_file)改写成 syscall(2,mytry,const char *s_file,const char *,t_file)?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-27 17:18:49 | 显示全部楼层


您具体说说好么?我不知道修改什么……
比如  原来是_syscall2(int,mycopy,const char *,s_file,const char *,t_file)
mycopy函数的功能是文件的拷贝,返回值在打开文件失败的时候返回-1,成功的时候返回0……

这样的文件在测试函数中怎么声明?
回复 支持 反对

使用道具 举报

发表于 2008-4-27 19:25:58 | 显示全部楼层
看man syscall
只需要把第一个参数改成SYS_mycopy,然后后面参数照写,不必加数据类型
另外你还得修改这个/usr/include/bits/syscall.h
还有,内核的问题最好去 zh-kernel.org 邮件列表问,那里聚集了全球研究内核的华人精英
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-5-4 13:06:42 | 显示全部楼层
太感谢了~~~~!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表