2013-08-07 56 views
2

當我嘗試編譯一個我得到這個錯誤:場「permission_type具有不完整的類型

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); 
}; 
+3

確保'枚舉ion_permission_type'之前定義的'結構'聲明。 –

+0

對不起,但如何定義? – user2660959

回答

0

你需要聲明permission_type

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

它是不是能找到enum ion_permission_type類型的定義之前定義enum ion_permission_type,所以將它定義成以下。

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

like:enum ion_permission_type/*許可離子堆*/?? – user2660959

+0

在enum's上嘗試這個[tutorial](http://www.cprogramming.com/tutorial/enum.html) – DrYap

+0

是的,如果您不確定如何定義它們,請通過以下鏈接瞭解枚舉[鏈接] http://www.yolinux.com/TUTORIALS/C++Enum.html – Mahesh

0

應該在 內核/弓/ ARM /馬赫MSM被定義/包括/馬赫與價值/ ion.h

enum ion_permission_type { 
    IPT_TYPE_MM_CARVEOUT = 0, 
    IPT_TYPE_MFC_SHAREDMEM = 1, 
    IPT_TYPE_MDP_WRITEBACK = 2, 
}; 
相關問題