kernel: Fix and deduplicate cte_for_cap().
authorSimon Gerber <simon.gerber@inf.ethz.ch>
Tue, 3 Mar 2015 17:19:18 +0000 (18:19 +0100)
committerSimon Gerber <simon.gerber@inf.ethz.ch>
Mon, 9 Mar 2015 14:41:04 +0000 (15:41 +0100)
Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>

kernel/arch/arm_gem5/paging.c
kernel/arch/armv5/paging.c
kernel/arch/armv7-m/paging.c
kernel/arch/armv7/paging.c
kernel/arch/omap44xx/paging.c
kernel/arch/x86_32/page_mappings_arch.c
kernel/arch/x86_64/page_mappings_arch.c
kernel/arch/xscale/ixp2800_paging.c
kernel/include/capabilities.h
kernel/syscall.c

index 407f518..2fd467b 100644 (file)
@@ -94,11 +94,6 @@ void paging_map_memory(uintptr_t ttbase, lpaddr_t paddr, size_t bytes)
 }
 
 
-static inline struct cte *cte_for_cap(struct capability *cap)
-{
-    return (struct cte *) (cap - offsetof(struct cte, cap));
-}
-
 static void
 paging_map_device_section(uintptr_t ttbase, lvaddr_t va, lpaddr_t pa)
 {
index 1070400..0de8ee2 100644 (file)
@@ -141,11 +141,6 @@ inline static int aligned(uintptr_t address, uintptr_t bytes)
     return (address & (bytes - 1)) == 0;
 }
 
-static inline struct cte *cte_for_cap(struct capability *cap)
-{
-    return (struct cte *) (cap - offsetof(struct cte, cap));
-}
-
 // ------------------------------------------------------------------------
 // Exported functions
 
index 248cda8..cb0e461 100644 (file)
@@ -56,11 +56,6 @@ inline static int aligned(uintptr_t address, uintptr_t bytes)
     return (address & (bytes - 1)) == 0;
 }
 
-static inline struct cte *cte_for_cap(struct capability *cap)
-{
-    return (struct cte *) (cap - offsetof(struct cte, cap));
-}
-
 /*
  * \brief read the version number of the table (called ignored3), to see if the upper half 
  * of the table has been modified and needs to be replicated. 
index aa03345..5195932 100644 (file)
@@ -32,11 +32,6 @@ inline static int aligned(uintptr_t address, uintptr_t bytes)
     return (address & (bytes - 1)) == 0;
 }
 
-static inline struct cte *cte_for_cap(struct capability *cap)
-{
-    return (struct cte *) (cap - offsetof(struct cte, cap));
-}
-
 
 union arm_l2_entry;
 static void
index 858c245..fb38e56 100644 (file)
@@ -55,12 +55,6 @@ inline static int aligned(uintptr_t address, uintptr_t bytes)
     return (address & (bytes - 1)) == 0;
 }
 
-static inline struct cte *cte_for_cap(struct capability *cap)
-{
-    return (struct cte *) (cap - offsetof(struct cte, cap));
-}
-
-
 static void
 paging_write_l1_entry(uintptr_t ttbase, lvaddr_t va, union arm_l1_entry l1)
 {
index a539d16..ad740cc 100644 (file)
 #include <string.h>
 #include <cap_predicates.h>
 
-static inline struct cte *cte_for_cap(struct capability *cap)
-{
-    return (struct cte *) (cap - offsetof(struct cte, cap));
-}
-
 #ifdef CONFIG_PAE
 /// Map within a x86_32 pdpt
 static errval_t x86_32_pdpt(struct capability *dest, cslot_t slot,
index 648f242..65cd8b0 100644 (file)
 #define MEMORY_OFFSET X86_64_MEMORY_OFFSET
 #endif
 
-static inline struct cte *cte_for_cap(struct capability *cap)
-{
-    return (struct cte *) (cap - offsetof(struct cte, cap));
-}
-
 /// Map within a x86_64 non leaf ptable
 static errval_t x86_64_non_ptable(struct capability *dest, cslot_t slot,
                                   struct capability *src, uintptr_t flags,
index 533d163..da87ebc 100644 (file)
@@ -143,11 +143,6 @@ inline static int aligned(uintptr_t address, uintptr_t bytes)
     return (address & (bytes - 1)) == 0;
 }
 
-static inline struct cte *cte_for_cap(struct capability *cap)
-{
-    return (struct cte *) (cap - offsetof(struct cte, cap));
-}
-
 // ------------------------------------------------------------------------
 // Exported functions
 
index 0676a72..8c7bce3 100644 (file)
@@ -62,6 +62,11 @@ static inline struct cte *caps_locate_slot(lpaddr_t cnode, cslot_t offset)
                           (1UL << OBJBITS_CTE) * offset);
 }
 
+static inline struct cte *cte_for_cap(struct capability *cap)
+{
+    return (struct cte *) ((char *)cap - offsetof(struct cte, cap));
+}
+
 int sprint_cap(char *buf, size_t len, struct capability *cap);
 void caps_trace(const char *func, int line, struct cte *cte, const char *msg);
 errval_t caps_create_new(enum objtype type, lpaddr_t addr, size_t bits,
index dcec184..9dde989 100644 (file)
@@ -334,11 +334,6 @@ sys_copy_or_mint(struct capability *root, capaddr_t destcn_cptr, cslot_t dest_sl
     }
 }
 
-static inline struct cte *cte_for_cap(struct capability *cap)
-{
-    return (struct cte *) (cap - offsetof(struct cte, cap));
-}
-
 struct sysret
 sys_map(struct capability *ptable, cslot_t slot, capaddr_t source_cptr,
         int source_vbits, uintptr_t flags, uintptr_t offset,