hualude_lzx 2021-09-09 20:07 采纳率: 0%
浏览 46
已结题

编译 增加 KMOD-mac80211 选项時 无法成功

错误提示:
from /home/lzx/work/test/mtk-openwrt-cc-v3.6/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7628/compat-wireless-2016-01-10/compat/backport-3.13.c:35:
include/linux/utsname.h: In function 'utsname':
include/linux/utsname.h:77:17: error: dereferencing pointer to incomplete type
return &current->nsproxy->uts_ns->name;
^
此提示显示错在 current 没有定义,这个current在哪里定义,怎么查找不到。
在GCONF.C 中有:
static struct menu *current;
LEMON.C 中有:
static struct config *current = 0;
要如何解决问题?

  • 写回答

3条回答 默认 最新

  • hualude_lzx 2021-09-09 20:19
    关注

    #ifndef _LINUX_UTSNAME_H
    #define _LINUX_UTSNAME_H

    #include <linux/sched.h>
    #include <linux/kref.h>
    #include <linux/nsproxy.h>
    #include <linux/err.h>
    #include <uapi/linux/utsname.h>

    //#include "expr.h"
    //extern struct menu *current;

    enum uts_proc {
    UTS_PROC_OSTYPE,
    UTS_PROC_OSRELEASE,
    UTS_PROC_VERSION,
    UTS_PROC_HOSTNAME,
    UTS_PROC_DOMAINNAME,
    };

    struct user_namespace;
    extern struct user_namespace init_user_ns;

    struct uts_namespace {
    struct kref kref;
    struct new_utsname name;
    struct user_namespace *user_ns;
    unsigned int proc_inum;
    };
    extern struct uts_namespace init_uts_ns;

    #ifdef CONFIG_UTS_NS
    static inline void get_uts_ns(struct uts_namespace *ns)
    {
    kref_get(&ns->kref);
    }

    extern struct uts_namespace *copy_utsname(unsigned long flags,
    struct user_namespace *user_ns, struct uts_namespace *old_ns);
    extern void free_uts_ns(struct kref *kref);

    static inline void put_uts_ns(struct uts_namespace *ns)
    {
    kref_put(&ns->kref, free_uts_ns);
    }
    #else
    static inline void get_uts_ns(struct uts_namespace *ns)
    {
    }

    static inline void put_uts_ns(struct uts_namespace *ns)
    {
    }

    static inline struct uts_namespace *copy_utsname(unsigned long flags,
    struct user_namespace *user_ns, struct uts_namespace *old_ns)
    {
    if (flags & CLONE_NEWUTS)
    return ERR_PTR(-EINVAL);

    return old_ns;
    

    }
    #endif

    #ifdef CONFIG_PROC_SYSCTL
    extern void uts_proc_notify(enum uts_proc proc);
    #else
    static inline void uts_proc_notify(enum uts_proc proc)
    {
    }
    #endif

    static inline struct new_utsname *utsname(void)
    {
    return &current->nsproxy->uts_ns->name;
    }

    static inline struct new_utsname *init_utsname(void)
    {
    return &init_uts_ns.name;
    }

    extern struct rw_semaphore uts_sem;

    #endif /* _LINUX_UTSNAME_H */

    代码如上:

    评论

报告相同问题?

问题事件

  • 系统已结题 9月17日
  • 创建了问题 9月9日

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置