【问题标题】:Field 'permission_type' has incomplete type字段“permission_type”的类型不完整
【发布时间】:2013-11-02 15:53:24
【问题描述】:

当我尝试编译一个时,我得到了这个错误:

In file included from arch/arm/mach-msm/board-htcleo.c:81:0:
include/linux/ion.h:192:27: error: field 'permission_type' has incomplete type

我该如何解决这个问题?我的代码如下:

struct ion_cp_heap_pdata {
    enum ion_permission_type permission_type;
    unsigned int align;
    ion_phys_addr_t secure_base; /* Base addr used when heap is shared */
    size_t secure_size; /* Size used for securing heap when heap is shared*/
    int reusable;
    int mem_is_fmem;
    enum ion_fixed_position fixed_position;
    int iommu_map_all;
    int iommu_2x_map_domain;
    ion_virt_addr_t *virt_addr;
    int (*request_region)(void *);
    int (*release_region)(void *);
    void *(*setup_region)(void);
};

【问题讨论】:

  • 确保enum ion_permission_typestruct 声明之前定义。
  • 对不起,怎么定义?

标签: c


【解决方案1】:

你需要在声明permission_type之前定义enum ion_permission_type

enum ion_permission_type
{
    /* Enumeration values here */
};

【讨论】:

    【解决方案2】:

    找不到enum ion_permission_type类型的定义,如下定义。

    enum ion_permission_type { /*define your named integer constants here...*/ };
    

    【讨论】:

    • like: enum ion_permission_type /*离子堆权限*/ ??
    • 是的,如果您不确定如何定义它们,请通过以下链接了解枚举的基础知识 [link]yolinux.com/TUTORIALS/C++Enum.html
    【解决方案3】:

    它应该定义在 内核/arch/arm/mach-msm/include/mach/ion.h 有价值的

    enum ion_permission_type {
        IPT_TYPE_MM_CARVEOUT = 0,
        IPT_TYPE_MFC_SHAREDMEM = 1,
        IPT_TYPE_MDP_WRITEBACK = 2,
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-25
      • 1970-01-01
      • 1970-01-01
      • 2012-09-10
      • 2011-04-29
      相关资源
      最近更新 更多