当前位置:  技术问答>linux和unix

make出现实参太少~ 望大神们给解决下

    来源: 互联网  发布时间:2017-03-26

    本文导语:  初次接触linux内核,用cryptfs生成的代码中,make之后出现如下错误: file.c:467: 错误:提供给函数‘dentry_open’的实参太少file.c:467: 错误:提供给函数‘dentry_open’的实参太少 file.c:654: 错误:提供给函数‘posix_lock_file...

初次接触linux内核,用cryptfs生成的代码中,make之后出现如下错误:
file.c:467: 错误:提供给函数‘dentry_open’的实参太少file.c:467: 错误:提供给函数‘dentry_open’的实参太少
file.c:654: 错误:提供给函数‘posix_lock_file’的实参太少

上述代码为:
467         lower_file = dentry_open(lower_dentry, DENTRY_TO_LVFSMNT(file->f_dentry), lower_flags);
654         error = posix_lock_file(file, fl);

内核版本:2.6.32-71.el6.i686

1、这两个函数应该都是,内核定义的函数吧?
2、如果是,我要去找这两个函数定义
3、如果不是,怎么修改?

大神们,帮帮忙~~

|
贴下两上函数的原型和实现

至于一些参数怎么用,可以参考内核调用的地方

/*
 * dentry_open() will have done dput(dentry) and mntput(mnt) if it returns an
 * error.
 */
struct file *dentry_open(struct dentry *dentry, struct vfsmount *mnt, int flags,
 const struct cred *cred)
{
int error;
struct file *f;

/*
 * We must always pass in a valid mount pointer.   Historically
 * callers got away with not passing it, but we must enforce this at
 * the earliest possible point now to avoid strange problems deep in the
 * filesystem stack.
 */
if (!mnt) {
printk(KERN_WARNING "%s called with NULL vfsmountn", __func__);
dump_stack();
return ERR_PTR(-EINVAL);
}

error = -ENFILE;
f = get_empty_filp();
if (f == NULL) {
dput(dentry);
mntput(mnt);
return ERR_PTR(error);
}

return __dentry_open(dentry, mnt, flags, f, NULL, cred);
}


/**
 * posix_lock_file - Apply a POSIX-style lock to a file
 * @filp: The file to apply the lock to
 * @fl: The lock to be applied
 * @conflock: Place to return a copy of the conflicting lock, if found.
 *
 * Add a POSIX style lock to a file.
 * We merge adjacent & overlapping locks whenever possible.
 * POSIX locks are sorted by owner task, then by starting address
 *
 * Note that if called with an FL_EXISTS argument, the caller may determine
 * whether or not a lock was successfully freed by testing the return
 * value for -ENOENT.
 */
int posix_lock_file(struct file *filp, struct file_lock *fl,
struct file_lock *conflock)
{
return __posix_lock_file(filp->f_path.dentry->d_inode, fl, conflock);
}

|
参考内核代码别人怎么用,你也怎么用




|
楼主的参数个数匹配有问题,根据源码中参数的个数和参数的类型来传值即可

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • make bzImage时出现错误,怎么解决?
  • 如果软件make错误了,咱们解决?一般步骤?
  • 继续送分..5秒就可以解决的问题哦..make后报这个?
  • 问一下:网上下载的obexftp-0.25版make后有错误怎么解决
  • ubuntu make内核源码的时候出现问题,求高手解决
  • 如何解决make时的参数问题?
  • linux系统中的在运行make的时候出现/usr/bin/ld: cannot find -lfl怎么解决?谢谢!
  • [谁能解决我就拜服]Cygwin下路径已设置但是make时无法找到该路经
  • 简单模块程序,但是make不过去,请大家帮忙解决,谢谢!
  • Linux下无法make编译源文件[相应的库文件有],如何解决[如重新安装库文件或者其他,请写详细些,多谢。]
  • make bzImage后出错 如何解决?
  • 写了一个Makefile,make时老报错,大家帮解决下啊,急~~
  • glade0.6.4生成的程序(最简单一个窗体)可是autogen.sh及make不过去,glade1.1.3能过去,可一编辑菜单就死,请教如何解决?
  • 编译xorg的make install时找不到文件的问题,怎么解决好呢 谢谢!
  • 有关make all; make clobber; make depend; make debug 的区别?
  • 我要缩减LINUX内核,make menuconfig时把一些选项去掉,再make dep没错,但再make bzImage时却会提错,但我make menuconfig时不改变任何选现(
  • 我已经用make clean编译成功了内核但是在make moduals时候处错误,然后又make menuconfig,我还需要make zImage吗?
  • make perl 模块的时候出错,make: *** No rule to make target,帮忙看看,谢谢。
  • 如何写出兼容于BSD MAKE、GNU MAKE、SOLARIS MAKE的条件编译Makefile?
  • 在solaris8.0我装了make3.81,下载了make-3.81-sol8-sparc-local.gz,为什么不能在任何目录下输入make?
  • 怎样验证自己的make是不是GNU的make?
  • 问一个很低级的问题:怎样卸载用make;make install方法安装的软件?
  • configure make make install 新手问题...
  • cygwin make操作,出现no rule to make target all
  • 请教 make gdb-6.4 出现 make[4]: Entering directory `/tmp/gdb-6.4/gdb/doc'
  • make zImage和make modules等问题请教~
  • debian下安装bind用./configure时提示安装bind时./configure提示whether make sets $(MAKE)... no
  • 第一次写make文件,报makefile:2: *** missing separator. Stop.错,make文件只有两行
  • make kernel make gcc
  • 50分的问题!make文件找不到? You don't seem to have 'make' or 'gmake' in your PATH
  • make;make install放在script裡


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,