x86: use setters/getters for MSR_{FS,GS}_BASE
[akaros.git] / kern / arch / x86 / bitmask.h
index abb8a94..f8a5cdd 100644 (file)
@@ -1,9 +1,4 @@
-#ifndef ROS_ARCH_BITMASK_H
-#define ROS_ARCH_BITMASK_H
-
-#ifndef __IVY__
-#include <ros/noivy.h>
-#endif
+#pragma once
 
 #include <string.h>
 #include <sys/types.h>
@@ -52,26 +47,20 @@ static void SET_BITMASK_BIT_ATOMIC(uint8_t* name, size_t bit)
 
 #define CLR_BITMASK(name, size) \
 ({ \
-       {TRUSTEDBLOCK \
        memset((void*)((uintptr_t)(name)), 0, BYTES_FOR_BITMASK((size))); \
-       } \
 })
 
 #define FILL_BITMASK(name, size) \
 ({ \
-       {TRUSTEDBLOCK \
        memset((void*)((uintptr_t)(name)), 255, BYTES_FOR_BITMASK((size))); \
-       } \
        (name)[BYTES_FOR_BITMASK((size))-1] >>= (((size) % 8) ? (8 - ((size) % 8)) : 0 ); \
 }) 
 
 #define COPY_BITMASK(newmask, oldmask, size) \
 ({ \
-       {TRUSTEDBLOCK \
        memcpy((void*)((uintptr_t)(newmask)), \
            (void*)((uintptr_t)(oldmask)), \
            BYTES_FOR_BITMASK((size))); \
-       } \
 })
 
 // this checks the entire last byte, so keep it 0 in the other macros
@@ -86,7 +75,7 @@ static void SET_BITMASK_BIT_ATOMIC(uint8_t* name, size_t bit)
        } \
        clear; })
 
-static inline bool BITMASK_IS_FULL(uint8_t* map, size_t size)
+static inline bool BITMASK_IS_FULL(volatile uint8_t *map, size_t size)
 {
        int _size = size;
        for (int i = 0; i < BYTES_FOR_BITMASK(size); i++) {
@@ -109,5 +98,3 @@ static inline bool BITMASK_IS_FULL(uint8_t* map, size_t size)
        } \
        printk("\n"); \
 }
-
-#endif /* ROS_ARCH_BITMASK_H */