免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: whshuai
打印 上一主题 下一主题

[内核]为什么提示说sys_mkdir没有定义啊? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2006-10-18 10:55 |只看该作者
谢谢楼上的提示,已经解决了没有定义的问题。
可是我把编译好的模块insmod到内核里去调试,发现mkdir没有创建目录,而是返回出错。
我的程序如下:
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/syscalls.h>
#include <asm/unistd.h>

#define __NR_mkdir1 __NR_mkdir
int errno;

static inline _syscall2(long, mkdir1, char *, s, int, mode);


static int __init  test_int(void)
{
   printk("init\n");
      
   int fd = 0;
   printk("%d\n", fd);
   
   fd = mkdir1("tmp/asdf", S_IRWXU);
   printk("%d\n", fd);
  
  if(fd<0)
     printk("invoke sys_make error\n");
  return 0;
}

static void  __exit test_exit(void)
{
   printk("exit\n");
}
module_init(test_int);
module_exit(test_exit);

论坛徽章:
0
12 [报告]
发表于 2006-10-18 14:05 |只看该作者
开始我是放在arm的板子上调试,返回出错
放在x86的机上调试,居然把内核崩溃了

论坛徽章:
0
13 [报告]
发表于 2006-10-18 17:22 |只看该作者
static inline _syscall2(long, mkdir1, char *, s, int, mode);

static inline _syscall2(long, mkdir1, const char __user *, s, int, mode);

我照你的程序结合牛人的提示改了可以。。不会就是这个类型的问题吧

论坛徽章:
0
14 [报告]
发表于 2006-10-18 18:09 |只看该作者
为什么我调试,内核会崩溃啊?

论坛徽章:
0
15 [报告]
发表于 2006-10-27 02:06 |只看该作者
是在linux内核2.4还是2.6?
如果在2.6的话,内核已经不允许使用系统调用了。

论坛徽章:
0
16 [报告]
发表于 2006-10-30 13:21 |只看该作者
我是在2.6的内核,但是我现在已经可以用系统调用函数了。

论坛徽章:
0
17 [报告]
发表于 2012-08-18 20:03 |只看该作者
我想问下怎么在内核中使用系统调用呀,我使用syscalls.h里声明的sys_***系统调用,make时总是
    make -C /lib/modules/2.6.32.59alter/build M=/home/lsm/syslook modules
make[1]: Entering directory `/usr/src/kernels/linux-2.6.32.59'
  Building modules, stage 2.
  MODPOST 1 modules
WARNING: "sys_******" [***.ko] undefined!make[1]: Leaving directory `/usr/src/kernels/linux-2.6.32.59'
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP