Removes Ivy annotations (XCC)
authorBarret Rhoden <brho@cs.berkeley.edu>
Tue, 17 Mar 2015 17:59:12 +0000 (13:59 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Tue, 17 Mar 2015 17:59:12 +0000 (13:59 -0400)
Some of the #defines  were interfering with other user-level libraries.
Not sad to see it go, but a little sad that it didn't work out.

Rebuild your toolchain and everything else.

80 files changed:
.gitignore
kern/arch/riscv/bitmask.h
kern/arch/riscv/colored_caches.c
kern/arch/riscv/kdebug.c
kern/arch/riscv/page_alloc.c
kern/arch/riscv/pmap.c
kern/arch/x86/apic.c
kern/arch/x86/bitmask.h
kern/arch/x86/boot/main.c
kern/arch/x86/colored_caches.c
kern/arch/x86/console.c
kern/arch/x86/cpuinfo.c
kern/arch/x86/init.c
kern/arch/x86/kclock.c
kern/arch/x86/kdebug.c
kern/arch/x86/kdebug.h
kern/arch/x86/page_alloc.c
kern/arch/x86/smp.c
kern/arch/x86/smp.h
kern/arch/x86/smp_boot.c
kern/arch/x86/time.c
kern/arch/x86/trap.c
kern/include/assert.h
kern/include/atomic.h
kern/include/colored_caches.h
kern/include/colored_page_alloc.h
kern/include/env.h
kern/include/hashtable.h
kern/include/ivy/sharc.h [deleted file]
kern/include/kmalloc.h
kern/include/page_alloc.h
kern/include/pmap.h
kern/include/process.h
kern/include/ros/common.h
kern/include/ros/noivy.h [deleted file]
kern/include/slab.h
kern/include/smp.h
kern/include/stdio.h
kern/include/string.h
kern/include/umem.h
kern/ivy/Makefrag [deleted file]
kern/ivy/deputy.c [deleted file]
kern/ivy/sharc.c [deleted file]
kern/src/Kbuild
kern/src/arsc.c
kern/src/atomic.c
kern/src/colored_caches.c
kern/src/env.c
kern/src/frontend.c
kern/src/hashtable.c
kern/src/init.c
kern/src/kfs.c
kern/src/kmalloc.c
kern/src/ktest/pb_ktests.c
kern/src/manager.c
kern/src/monitor.c
kern/src/page_alloc.c
kern/src/printf.c
kern/src/printfmt.c
kern/src/process.c
kern/src/readline.c
kern/src/schedule.c
kern/src/slab.c
kern/src/smp.c
kern/src/string.c
kern/src/syscall.c
kern/src/sysevent.c [deleted file]
kern/src/umem.c
tests/old/buggyhello.c
tests/old/evilhello.c
tests/old/mproctests.c
tools/syscall_server/Makefile
user/parlib/debug.c
user/parlib/debugfmt.c
user/parlib/include/parlib.h
user/parlib/include/pool.h
user/parlib/include/riscv/bitmask.h
user/parlib/include/x86/atomic.h
user/parlib/include/x86/bitmask.h
user/parlib/syscall.c

index c5af7cb..3dd25bd 100644 (file)
@@ -12,7 +12,6 @@ update*
 hdd.img
 hdd.vdi
 *.*~
-ivy_errordb.sql
 Makelocal
 .textmate*
 .DS_*
index a4d3bc6..68b95e6 100644 (file)
@@ -1,10 +1,6 @@
 #ifndef ROS_ARCH_BITMASK_H
 #define ROS_ARCH_BITMASK_H
 
-#ifndef __IVY__
-#include <ros/noivy.h>
-#endif
-
 #include <string.h>
 #include <sys/types.h>
 #include <atomic.h>
@@ -52,26 +48,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
index e2143ac..95f42aa 100644 (file)
@@ -8,10 +8,6 @@
 #include <colored_caches.h>
 #include <stdio.h>
 
-#ifdef __SHARC__
-#pragma nosharc
-#endif
-
 // Global variables
 static cache_t l1,l2,l3;
 cache_t* llc_cache;
@@ -23,9 +19,9 @@ void cache_init()
        // Initialize the caches available on this system.
        // TODO: Should call out to something reading the acpi tables from 
        // memory, or something similar.  For now, just initialize them inline
-       available_caches.l1 = SINIT(&l1);
-       available_caches.l2 = SINIT(&l2);
-       available_caches.l3 = SINIT(&l3);
+       available_caches.l1 = &l1;
+       available_caches.l2 = &l2;
+       available_caches.l3 = &l3;
        llc_cache = &l3;
        init_cache_properties(&l1,   32,  8, 64);
        init_cache_properties(&l2,  256,  8, 64);
index 0c00943..934e1fb 100644 (file)
@@ -1,7 +1,3 @@
-#ifdef __SHARC__
-#pragma nosharc
-#endif
-
 #include <stab.h>
 #include <string.h>
 #include <assert.h>
index 1adb186..c2f207b 100644 (file)
@@ -5,14 +5,6 @@
  * Kevin Klues <klueska@cs.berkeley.edu>    
  */
  
-#ifdef __SHARC__
-#pragma nosharc
-#endif
-
-#ifdef __DEPUTY__
-#pragma nodeputy
-#endif
-
 #include <sys/queue.h>
 #include <page_alloc.h>
 #include <pmap.h>
index fd05763..33da797 100644 (file)
@@ -47,7 +47,7 @@ vm_init(void)
 // This is boot_pgdir_walk, but using page_alloc() instead of boot_alloc().
 // Unlike boot_pgdir_walk, pgdir_walk can fail.
 pte_t*
-pgdir_walk(pgdir_t *pgdir, const void *SNT va, int create)
+pgdir_walk(pgdir_t *pgdir, const void *va, int create)
 {
        pte_t* ppte;
        pte_t* pt;
@@ -87,7 +87,7 @@ pgdir_walk(pgdir_t *pgdir, const void *SNT va, int create)
 
 /* Returns the effective permissions for PTE_U, PTE_W, and PTE_P on a given
  * virtual address. */
-int get_va_perms(pgdir_t *pgdir, const void *SNT va)
+int get_va_perms(pgdir_t *pgdir, const void *va)
 {
        pte_t* pte = pgdir_walk(pgdir, va, 0);
        return pte == NULL ? 0 : (*pte & (PTE_PERM | PTE_E));
index b975bc1..fdd31b6 100644 (file)
@@ -4,11 +4,6 @@
  * See LICENSE for details.
  */
 
-#ifdef __SHARC__
-#pragma nosharc
-#define SINIT(x) x
-#endif
-
 #include <arch/mmu.h>
 #include <arch/x86.h>
 #include <arch/arch.h>
index a4d3bc6..68b95e6 100644 (file)
@@ -1,10 +1,6 @@
 #ifndef ROS_ARCH_BITMASK_H
 #define ROS_ARCH_BITMASK_H
 
-#ifndef __IVY__
-#include <ros/noivy.h>
-#endif
-
 #include <string.h>
 #include <sys/types.h>
 #include <atomic.h>
@@ -52,26 +48,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
index d2a7738..c05a00d 100644 (file)
@@ -1,7 +1,3 @@
-#ifdef __DEPUTY__
-#pragma nodeputy
-#endif
-
 #include <arch/x86.h>
 #include <arch/arch.h>
 #include <elf.h>
index 844ebaa..c07637a 100644 (file)
@@ -5,24 +5,19 @@
  * Kevin Klues <klueska@cs.berkeley.edu>    
  */
 
-#ifdef __SHARC__
-#pragma nosharc
-#define SINIT(x) x
-#endif
-
 #include <error.h>
 #include <bitmask.h>
 #include <colored_caches.h>
 #include <process.h>
 
 // Static global variable of caches to assign to the available caches struct
-static cache_t RO l1,l2,l3;
+static cache_t l1,l2,l3;
 
 // Convenient global variable for accessing the last level cache
 cache_t* llc_cache;
 
 // Global variables
-available_caches_t RO available_caches;
+available_caches_t available_caches;
 
 /************** Cache Related Functions  *****************/
 void cache_init() 
@@ -30,9 +25,9 @@ void cache_init()
        // Initialize the caches available on this system.
        // TODO: Should call out to something reading the acpi tables from 
        // memory, or something similar.  For now, just initialize them inline
-       available_caches.l1 = SINIT(&l1);
-       available_caches.l2 = SINIT(&l2);
-       available_caches.l3 = SINIT(&l3);
+       available_caches.l1 = &l1;
+       available_caches.l2 = &l2;
+       available_caches.l3 = &l3;
        llc_cache = &l3;
 #ifdef CONFIG_BOXBORO
        /* level (ignoring L1I), size, ways, CL size) */
index 7bb10bf..218899f 100644 (file)
@@ -249,7 +249,7 @@ lpt_putc(int c)
 
 static spinlock_t console_lock = SPINLOCK_INITIALIZER_IRQSAVE;
 
-static unsigned SREADONLY addr_6845;
+static unsigned addr_6845;
 static uint16_t *crt_buf;
 static uint16_t crt_pos;
 
@@ -264,15 +264,15 @@ cga_init(void)
        uint16_t was;
        unsigned pos;
 
-       cp = (uint16_t *COUNT(CRT_SIZE)) TC(KERNBASE + CGA_BUF);
+       cp = (uint16_t *)(KERNBASE + CGA_BUF);
        was = *cp;
        *cp = (uint16_t) 0xA55A;
        if (*cp != 0xA55A) {
-               cp = (uint16_t *COUNT(CRT_SIZE)) TC(KERNBASE + MONO_BUF);
-               addr_6845 = SINIT(MONO_BASE);
+               cp = (uint16_t *)(KERNBASE + MONO_BUF);
+               addr_6845 = MONO_BASE;
        } else {
                *cp = was;
-               addr_6845 = SINIT(CGA_BASE);
+               addr_6845 = CGA_BASE;
        }
        
        /* Extract cursor location */
@@ -407,7 +407,7 @@ cga_putc(int c)
 
 #define E0ESC          (1<<6)
 
-static uint8_t (SREADONLY shiftcode)[256] = 
+static uint8_t shiftcode[256] = 
 {
        [0x1D] CTL,
        [0x2A] SHIFT,
@@ -417,7 +417,7 @@ static uint8_t (SREADONLY shiftcode)[256] =
        [0xB8] ALT
 };
 
-static uint8_t (SREADONLY togglecode)[256] = 
+static uint8_t togglecode[256] = 
 {
        [0x3A] CAPSLOCK,
        [0x45] NUMLOCK,
@@ -485,7 +485,7 @@ static uint8_t ctlmap[256] =
        [0xD2] KEY_INS,         [0xD3] KEY_DEL
 };
 
-static uint8_t * COUNT(256) (SREADONLY charcode)[4] = {
+static uint8_t *charcode[4] = {
        normalmap,
        shiftmap,
        ctlmap,
@@ -682,7 +682,7 @@ cputchar(int c)
 }
 
 void
-cputbuf(const char*COUNT(len) buf, int len)
+cputbuf(const char*buf, int len)
 {
        int i;
        for(i = 0; i < len; i++)
index 45884e7..5e330be 100644 (file)
@@ -4,10 +4,6 @@
  * See LICENSE for details.
  */
 
-#ifdef __SHARC__
-#pragma nosharc
-#endif
-
 #include <arch/arch.h>
 #include <arch/x86.h>
 #include <arch/mmu.h>
@@ -26,7 +22,7 @@ void print_cpuinfo(void)
        uint64_t msr_val;
        char vendor_id[13];
        int max_std_lvl, max_extd_lvl;
-       extern char (SNT RO _start)[];
+       extern char _start[];
        bool is_intel;
 
        if (sizeof(long) == 8)
index 51a572c..bdd31cc 100644 (file)
@@ -1,9 +1,5 @@
 /* See COPYRIGHT for copyright information. */
 
-#ifdef __SHARC__
-#pragma nosharc
-#endif
-
 #include <smp.h>
 
 #include <arch/pci.h>
index da4e187..6f42dce 100644 (file)
@@ -5,10 +5,6 @@
  * generates interrupts on IRQ 0.
  */
 
-#ifdef __SHARC__
-#pragma nosharc
-#endif
-
 #include <arch/x86.h>
 
 #include <kclock.h>
index 0a145e2..68d4245 100644 (file)
@@ -1,7 +1,3 @@
-#ifdef __SHARC__
-#pragma nosharc
-#endif
-
 #include <stab.h>
 #include <string.h>
 #include <assert.h>
 #include <ros/memlayout.h>
 
 // Beginning of stabs table
-extern const stab_t (RO BND(__this,__STAB_END__) __STAB_BEGIN__)[];
+extern const stab_t __STAB_BEGIN__[];
 
 // End of stabs table
-extern const stab_t (RO SNT __STAB_END__)[];
+extern const stab_t __STAB_END__[];
 
 // Beginning of string table
-extern const char (RO NT BND(__this,__STABSTR_END__) __STABSTR_BEGIN__)[];
+extern const char __STABSTR_BEGIN__[];
 
  // End of string table
-extern const char (RO SNT __STABSTR_END__)[];
+extern const char __STABSTR_END__[];
 
 typedef struct UserStabData {
-       const stab_t *BND(__this,stab_end) stabs;
-       const stab_t *SNT stab_end;
-       const char *NT BND(__this, stabstr_end) stabstr;
-       const char *SNT stabstr_end;
+       const stab_t *stabs;
+       const stab_t *stab_end;
+       const char *stabstr;
+       const char *stabstr_end;
 } user_stab_data_t;
 
 
@@ -82,8 +78,8 @@ static bool stab_table_valid(const char *stabstr, const char *stabstr_end)
 //     will exit setting left = 118, right = 554.
 //
 static void
-stab_binsearch(const stab_t *BND(__this, stab_end) stabs,
-           const stab_t *SNT stab_end,
+stab_binsearch(const stab_t *stabs,
+           const stab_t *stab_end,
            int *region_left, int *region_right,
               int type, uintptr_t addr)
 {
@@ -138,12 +134,12 @@ stab_binsearch(const stab_t *BND(__this, stab_end) stabs,
 //     information into '*info'.
 //
 int
-debuginfo_eip(uintptr_t addr, eipdebuginfo_t *NONNULL info)
+debuginfo_eip(uintptr_t addr, eipdebuginfo_t *info)
 {
-       const stab_t *SNT stab_end;
-       const stab_t *BND(__this,stab_end) stabs;
-       const char *SNT stabstr_end;
-       const char *NT BND(__this,stabstr_end) stabstr;
+       const stab_t *stab_end;
+       const stab_t *stabs;
+       const char *stabstr_end;
+       const char *stabstr;
        int lfile, rfile, lfun, rfun, lline, rline;
 
        // Initialize *info
@@ -170,7 +166,7 @@ debuginfo_eip(uintptr_t addr, eipdebuginfo_t *NONNULL info)
                // to __STAB_BEGIN__, __STAB_END__, __STABSTR_BEGIN__, and
                // __STABSTR_END__) in a structure located at virtual address
                // USTABDATA.
-               const user_stab_data_t *usd = (const user_stab_data_t *COUNT(1))TC(USTABDATA);
+               const user_stab_data_t *usd = (const user_stab_data_t *)USTABDATA;
 
                // Make sure this memory is valid.
                // Return -1 if it is not.  Hint: Call user_mem_check.
@@ -272,10 +268,10 @@ debuginfo_eip(uintptr_t addr, eipdebuginfo_t *NONNULL info)
 /* Returns a function pointer for a function name matching the given string. */
 void *debug_get_fn_addr(char *fn_name)
 {
-       const struct stab *SNT stab_end = __STAB_END__;
-       const struct stab *BND(__this,stab_end) stabs = __STAB_BEGIN__;
-       const char *SNT stabstr_end = __STABSTR_END__;
-       const char *NT BND(__this,stabstr_end) stabstr = __STABSTR_BEGIN__;
+       const struct stab *stab_end = __STAB_END__;
+       const struct stab *stabs = __STAB_BEGIN__;
+       const char *stabstr_end = __STABSTR_END__;
+       const char *stabstr = __STABSTR_BEGIN__;
 
        static int first_fn_idx = 0;
        int i = first_fn_idx;
index 2a733c1..7f7e3ea 100644 (file)
@@ -24,7 +24,7 @@ typedef struct eipdebuginfo {
        int eip_fn_narg;                        // Number of function arguments
 } eipdebuginfo_t;
 
-int debuginfo_eip(uintptr_t eip, eipdebuginfo_t *NONNULL info);
+int debuginfo_eip(uintptr_t eip, eipdebuginfo_t *info);
 void *debug_get_fn_addr(char *fn_name);
 
 /* Returns a PC/EIP in the function that called us, preferably near the call
index eaf1b40..da3d8b0 100644 (file)
@@ -5,11 +5,6 @@
  * Barret Rhoden <brho@cs.berkeley.edu>
  * Kevin Klues <klueska@cs.berkeley.edu> */
 
-#ifdef __SHARC__
-#pragma nosharc
-#define SINIT(x) x
-#endif
-
 #include <sys/queue.h>
 #include <page_alloc.h>
 #include <pmap.h>
 
 spinlock_t colored_page_free_list_lock = SPINLOCK_INITIALIZER_IRQSAVE;
 
-page_list_t LCKD(&colored_page_free_list_lock) * CT(llc_cache->num_colors) RO
-  colored_page_free_list = NULL;
+page_list_t *colored_page_free_list = NULL;
 
 static void page_alloc_bootstrap() {
        // Allocate space for the array required to manage the free lists
        size_t list_size = llc_cache->num_colors*sizeof(page_list_t);
-       page_list_t LCKD(&colored_page_free_list_lock)*tmp =
-           (page_list_t*)boot_alloc(list_size,PGSIZE);
-       colored_page_free_list = SINIT(tmp);
+       page_list_t *tmp = (page_list_t*)boot_alloc(list_size,PGSIZE);
+       colored_page_free_list = tmp;
        for (int i = 0; i < llc_cache->num_colors; i++)
                BSD_LIST_INIT(&colored_page_free_list[i]);
 }
index d772eff..863e4d3 100644 (file)
@@ -4,10 +4,6 @@
  * See LICENSE for details.
  */
 
-#ifdef __SHARC__
-//#pragma nosharc
-#endif
-
 #include <arch/arch.h>
 #include <bitmask.h>
 #include <smp.h>
@@ -28,7 +24,7 @@ int os_coreid_lookup[MAX_NUM_CPUS] = {[0 ... (MAX_NUM_CPUS - 1)] -1};
 /*************************** IPI Wrapper Stuff ********************************/
 // checklists to protect the global interrupt_handlers for 0xf0, f1, f2, f3, f4
 // need to be global, since there is no function that will always exist for them
-handler_wrapper_t (RO handler_wrappers)[NUM_HANDLER_WRAPPERS];
+handler_wrapper_t handler_wrappers[NUM_HANDLER_WRAPPERS];
 
 static int smp_call_function(uint8_t type, uint32_t dest, isr_t handler,
                              void *data, handler_wrapper_t **wait_wrapper)
index 62da4eb..3a25c05 100644 (file)
@@ -17,6 +17,6 @@ struct HandlerWrapper {
        uint8_t vector;
 };
 
-typedef struct HandlerWrapper LCKD(&cpu_list->lock) handler_wrapper_t;
+typedef struct HandlerWrapper handler_wrapper_t;
 
 #endif /* !ROS_ARCH_SMP_H */
index b01059f..96bdba6 100644 (file)
@@ -4,11 +4,6 @@
  * See LICENSE for details.
  */
 
-#ifdef __SHARC__
-#pragma nosharc
-#define SINIT(x) x
-#endif
-
 #include <arch/x86.h>
 #include <arch/arch.h>
 #include <smp.h>
@@ -30,9 +25,9 @@
 
 #include "vmm/vmm.h"
 
-extern handler_wrapper_t (RO handler_wrappers)[NUM_HANDLER_WRAPPERS];
+extern handler_wrapper_t handler_wrappers[NUM_HANDLER_WRAPPERS];
 volatile uint32_t num_cpus = 0xee;
-uintptr_t RO smp_stack_top;
+uintptr_t smp_stack_top;
 barrier_t generic_barrier;
 
 #define DECLARE_HANDLER_CHECKLISTS(vector)                          \
@@ -117,10 +112,10 @@ void smp_final_core_init(void)
 
 // this needs to be set in smp_entry too...
 #define trampoline_pg 0x00001000UL
-extern char (SNT SREADONLY smp_entry)[];
-extern char (SNT SREADONLY smp_entry_end)[];
-extern char (SNT SREADONLY smp_boot_lock)[];
-extern char (SNT SREADONLY smp_semaphore)[];
+extern char smp_entry[];
+extern char smp_entry_end[];
+extern char smp_boot_lock[];
+extern char smp_semaphore[];
 
 static inline uint16_t *get_smp_semaphore()
 {
@@ -170,7 +165,7 @@ void smp_boot(void)
        // NEED TO GRAB A LOWMEM FREE PAGE FOR AP BOOTUP CODE
        // page1 (2nd page) is reserved, hardcoded in pmap.c
        memset(KADDR(trampoline_pg), 0, PGSIZE);
-       memcpy(KADDR(trampoline_pg), (void *COUNT(PGSIZE))TC(smp_entry),
+       memcpy(KADDR(trampoline_pg), (void *)smp_entry,
            smp_entry_end - smp_entry);
 
        /* Make sure the trampoline page is mapped.  64 bit already has the tramp pg
@@ -179,7 +174,7 @@ void smp_boot(void)
        // Allocate a stack for the cores starting up.  One for all, must share
        if (kpage_alloc(&smp_stack))
                panic("No memory for SMP boot stack!");
-       smp_stack_top = SINIT((uintptr_t)(page2kva(smp_stack) + PGSIZE));
+       smp_stack_top = (uintptr_t)(page2kva(smp_stack) + PGSIZE);
 
        /* During SMP boot, core_id_early() returns 0, so all of the cores, which
         * grab locks concurrently, share the same pcpui and thus the same
index 7174db1..ddea6c6 100644 (file)
@@ -26,7 +26,7 @@ void timer_init(void){
        tscval[0] = read_tsc();
        udelay_pit(1000000);
        tscval[1] = read_tsc();
-       system_timing.tsc_freq = SINIT(tscval[1] - tscval[0]);
+       system_timing.tsc_freq = tscval[1] - tscval[0];
        cprintf("TSC Frequency: %llu\n", system_timing.tsc_freq);
        __lapic_set_timer(0xffffffff, IdtLAPIC_TIMER, FALSE,
                          LAPIC_TIMER_DIVISOR_BITS);
@@ -52,8 +52,8 @@ void pit_set_timer(uint32_t divisor, uint32_t mode)
        outb(TIMER_MODE, mode); 
        outb(TIMER_CNTR0, divisor & 0xff);
        outb(TIMER_CNTR0, (divisor >> 8) );
-       system_timing.pit_mode = SINIT(mode);
-       system_timing.pit_divisor = SINIT(divisor);
+       system_timing.pit_mode = mode;
+       system_timing.pit_divisor = divisor;
        // cprintf("timer mode set to %d, divisor %d\n",mode, divisor);
 }
 
index 7b88351..243f0f0 100644 (file)
@@ -1,8 +1,3 @@
-#ifdef __SHARC__
-#pragma nosharc
-#define SINIT(x) x
-#endif
-
 #include <arch/mmu.h>
 #include <arch/x86.h>
 #include <arch/arch.h>
@@ -23,7 +18,7 @@
 #include <kmalloc.h>
 #include <arch/mptables.h>
 
-taskstate_t RO ts;
+taskstate_t ts;
 
 /* Interrupt descriptor table.  64 bit needs 16 byte alignment (i think). */
 gatedesc_t __attribute__((aligned (16))) idt[256] = { { 0 } };
@@ -36,8 +31,7 @@ spinlock_t irq_handler_wlock = SPINLOCK_INITIALIZER_IRQSAVE;
 
 const char *x86_trapname(int trapno)
 {
-    // zra: excnames is SREADONLY because Ivy doesn't trust const
-       static const char *NT const (RO excnames)[] = {
+       static const char *const excnames[] = {
                "Divide error",
                "Debug",
                "Non-Maskable Interrupt",
@@ -135,8 +129,8 @@ void idt_init(void)
                (uintptr_t)idt[T_SYSCALL].gd_off_15_0));
        /* turn on trap-based syscall handling and other user-accessible ints
         * DPL 3 means this can be triggered by the int instruction */
-       idt[T_SYSCALL].gd_dpl = SINIT(3);
-       idt[T_BRKPT].gd_dpl = SINIT(3);
+       idt[T_SYSCALL].gd_dpl = 3;
+       idt[T_BRKPT].gd_dpl = 3;
 
        /* Set up our kernel stack when changing rings */
        /* Note: we want 16 byte aligned kernel stack frames (AMD 2:8.9.3) */
index 95c5990..05e447b 100644 (file)
@@ -3,8 +3,8 @@
 #ifndef ROS_INC_ASSERT_H
 #define ROS_INC_ASSERT_H
 
-void ( _warn)(const char* NTS, int, const char* NTS, ...);
-void ( _panic)(const char* NTS, int, const char* NTS, ...)
+void ( _warn)(const char *, int, const char *, ...);
+void ( _panic)(const char *, int, const char *, ...)
        __attribute__((noreturn));
 
 #define warn(...) _warn(__FILE__, __LINE__, __VA_ARGS__)
index f5dcd6e..d661a99 100644 (file)
@@ -40,7 +40,7 @@ extern inline bool atomic_sub_and_test(atomic_t *number, long val);
 
 /* Spin locks */
 struct spinlock {
-       volatile uint32_t RACY rlock;
+       volatile uint32_t rlock;
 #ifdef CONFIG_SPINLOCK_DEBUG
        uintptr_t call_site;
        uint32_t calling_core;
@@ -184,7 +184,7 @@ static inline void poke_init(struct poke_tracker *tracker, void (*func)(void*))
 typedef struct checklist_mask {
        // only need an uint8_t, but we need the bits[] to be word aligned
        uint32_t size;
-       volatile uint8_t (COUNT(BYTES_FOR_BITMASK(size)) bits)[MAX_NUM_CPUS];
+       volatile uint8_t bits[MAX_NUM_CPUS];
 } checklist_mask_t;
 
 // mask contains an unspecified array, so it needs to be at the bottom
@@ -194,7 +194,7 @@ struct checklist {
        // eagle-eyed readers may know why this might have been needed. 2009-09-04
        //volatile uint8_t (COUNT(BYTES_FOR_BITMASK(size)) bits)[];
 };
-typedef struct checklist RACY checklist_t;
+typedef struct checklist checklist_t;
 
 #define ZEROS_ARRAY(size) {[0 ... ((size)-1)] 0}
 
@@ -234,9 +234,9 @@ struct barrier {
        volatile uint8_t ready;
 };
 
-typedef struct barrier RACY barrier_t;
+typedef struct barrier barrier_t;
 
-void init_barrier(barrier_t*COUNT(1) barrier, uint32_t count);
+void init_barrier(barrier_t *barrier, uint32_t count);
 void reset_barrier(barrier_t* barrier);
 void waiton_barrier(barrier_t* barrier);
 
@@ -265,7 +265,7 @@ static inline void spinlock_init_irqsave(spinlock_t *lock)
 
 // If ints are enabled, disable them and note it in the top bit of the lock
 // There is an assumption about releasing locks in order here...
-static inline void spin_lock_irqsave(spinlock_t *SAFE lock)
+static inline void spin_lock_irqsave(spinlock_t *lock)
 {
        uint32_t irq_en;
        irq_en = irq_is_enabled();
@@ -277,7 +277,7 @@ static inline void spin_lock_irqsave(spinlock_t *SAFE lock)
 
 // if the high bit of the lock is set, then re-enable interrupts
 // (note from asw: you're lucky this works, you little-endian jerks)
-static inline void spin_unlock_irqsave(spinlock_t *SAFE lock)
+static inline void spin_unlock_irqsave(spinlock_t *lock)
 {
        if (spin_lock_irq_enabled(lock)) {
                spin_unlock(lock);
@@ -288,7 +288,7 @@ static inline void spin_unlock_irqsave(spinlock_t *SAFE lock)
 
 /* Returns whether or not unlocking this lock should enable interrupts or not.
  * Is meaningless on locks that weren't locked with irqsave. */
-static inline bool spin_lock_irq_enabled(spinlock_t *SAFE lock)
+static inline bool spin_lock_irq_enabled(spinlock_t *lock)
 {
        return lock->rlock & SPINLOCK_IRQ_EN;
 }
index 3616515..c9d7522 100644 (file)
@@ -30,17 +30,17 @@ typedef struct AvailableCaches {
 } available_caches_t;
 
 /******** Externally visible global variables ************/
-extern available_caches_t RO available_caches;
+extern available_caches_t available_caches;
 extern cache_t* llc_cache;
 extern spinlock_t cache_colors_lock;
 
 /************** Cache Related Functions  *****************/
 void cache_init();
 void cache_color_alloc_init();
-void init_cache_properties(cache_t RO*c, size_t sz_k, size_t wa, size_t clsz);
+void init_cache_properties(cache_t *c, size_t sz_k, size_t wa, size_t clsz);
 void init_free_cache_colors_map(cache_t* c);
-size_t get_offset_in_cache_line(uintptr_t addr, cache_t RO*c);
-void print_cache_properties(char *NT lstring, cache_t RO*c);
+size_t get_offset_in_cache_line(uintptr_t addr, cache_t *c);
+void print_cache_properties(char *lstring, cache_t *c);
 
 static inline size_t get_page_color(uintptr_t page, cache_t *c) {
     return (page & (c->num_colors-1));
@@ -56,24 +56,24 @@ void cache_color_free(cache_t* c, uint8_t* colors_map);
 void cache_color_free_specific(size_t color, cache_t* c, uint8_t* colors_map);
 
 /****************** Cache Properties *********************/
-inline size_t get_cache_ways_associative(cache_t RO*c);
-inline size_t get_cache_line_size_bytes(cache_t RO*c);
-inline size_t get_cache_size_bytes(cache_t RO*c);
-inline size_t get_cache_size_kilobytes(cache_t RO*c);
-inline size_t get_cache_size_megabytes(cache_t RO*c);
-inline size_t get_cache_num_offset_bits(cache_t RO*c);
-inline size_t get_cache_num_index_bits(cache_t RO*c);
-inline size_t get_cache_num_tag_bits(cache_t RO*c);
-inline size_t get_cache_num_page_color_bits(cache_t RO*c);
-inline size_t get_cache_bytes_per_line(cache_t RO*c);
-inline size_t get_cache_num_lines(cache_t RO*c);
-inline size_t get_cache_num_sets(cache_t RO*c);
-inline size_t get_cache_lines_per_set(cache_t RO*c);
-inline size_t get_cache_lines_per_page(cache_t RO*c);
-inline size_t get_cache_bytes_per_way(cache_t RO*c);
-inline size_t get_cache_lines_per_way(cache_t RO*c);
-inline size_t get_cache_pages_per_way(cache_t RO*c);
-inline size_t get_cache_num_page_colors(cache_t RO*c);
+inline size_t get_cache_ways_associative(cache_t *c);
+inline size_t get_cache_line_size_bytes(cache_t *c);
+inline size_t get_cache_size_bytes(cache_t *c);
+inline size_t get_cache_size_kilobytes(cache_t *c);
+inline size_t get_cache_size_megabytes(cache_t *c);
+inline size_t get_cache_num_offset_bits(cache_t *c);
+inline size_t get_cache_num_index_bits(cache_t *c);
+inline size_t get_cache_num_tag_bits(cache_t *c);
+inline size_t get_cache_num_page_color_bits(cache_t *c);
+inline size_t get_cache_bytes_per_line(cache_t *c);
+inline size_t get_cache_num_lines(cache_t *c);
+inline size_t get_cache_num_sets(cache_t *c);
+inline size_t get_cache_lines_per_set(cache_t *c);
+inline size_t get_cache_lines_per_page(cache_t *c);
+inline size_t get_cache_bytes_per_way(cache_t *c);
+inline size_t get_cache_lines_per_way(cache_t *c);
+inline size_t get_cache_pages_per_way(cache_t *c);
+inline size_t get_cache_num_page_colors(cache_t *c);
 
 #endif // ROS_KERN_COLORED_CACHES_H
 
index 82d761e..c735d68 100644 (file)
        
 #define DECLARE_CACHE_COLORED_PAGE_FREE_LIST(_cache)                          \
        uint8_t _cache##_num_colors = 0;                                          \
-       page_list_t *COUNT(_cache##_num_colors) _cache##_cache_colored_page_list = NULL;
+       page_list_t *_cache##_cache_colored_page_list = NULL;
        
 #define DECLARE_EXTERN_CACHE_COLORED_PAGE_FREE_LIST(_cache)                   \
     extern uint8_t _cache##_num_colors;                                       \
-       extern page_list_t *COUNT(_cache##_num_colors) _cache##_cache_colored_page_list;
+       extern page_list_t *_cache##_cache_colored_page_list;
        
 #define DECLARE_CACHE_COLORED_PAGE_ALLOC_FUNCTION(_cache)                     \
 error_t _cache##_page_alloc(page_t** page, size_t color)                      \
index a2ba844..37ed4ad 100644 (file)
@@ -75,8 +75,8 @@ struct proc {
        int vmr_history;
 
        // Per process info and data pages
-       procinfo_t *SAFE procinfo;       // KVA of per-process shared info table (RO)
-       procdata_t *SAFE procdata;       // KVA of per-process shared data table (RW)
+       procinfo_t *procinfo;       // KVA of per-process shared info table (RO)
+       procdata_t *procdata;       // KVA of per-process shared data table (RW)
        
        // The backring pointers for processing asynchronous system calls from the user
        // Note this is the actual backring, not a pointer to it somewhere else
index e913def..7340f6b 100644 (file)
 #ifndef __ROS_KERN_HASHTABLE_H__
 #define __ROS_KERN_HASHTABLE_H__
 
-#ifdef __DEPUTY__
-#pragma nodeputy
-#endif
-
-#ifdef __SHARC__
-#pragma nosharc
-#endif
-
 #include <ros/common.h>
 
 /*****************************************************************************/
diff --git a/kern/include/ivy/sharc.h b/kern/include/ivy/sharc.h
deleted file mode 100644 (file)
index 4a61f1c..0000000
+++ /dev/null
@@ -1,225 +0,0 @@
-#include <assert.h>
-#include <string.h>
-
-#ifdef IVY_FAST_CHECKS
-  #define SINLINE __attribute__((always_inline))
-#else
-  #define SINLINE inline
-#endif
-
-#define SUNUSED __attribute__((unused))
-
-#ifndef sasmlinkage
-#define sasmlinkage __attribute__((regparm(0)))
-#endif
-
-#ifndef snoreturn
-#define snoreturn __attribute__((noreturn))
-#endif
-
-typedef struct __ivy_sharC_thread {
-#define SHARC_MAX_LOCKS 16
-    const void *held_locks[SHARC_MAX_LOCKS];
-    unsigned int max_lock;
-} sharC_env_t;
-
-#include <smp.h>
-#include <process.h>
-
-extern int booting;
-extern int __ivy_checking_on;
-
-#pragma cilnoremove("sharC_env_init")
-static SINLINE void sharC_env_init(sharC_env_t *sharC_env) TRUSTED;
-static SINLINE void sharC_env_init(sharC_env_t *sharC_env)
-WRITES(sharC_env->max_lock,sharC_env->held_locks)
-{
-       sharC_env->max_lock = 0;
-       memset(sharC_env->held_locks,0,SHARC_MAX_LOCKS);
-       return;
-}
-
-static __attribute__((always_inline)) int
-is_single_threaded() TRUSTED
-{
-       return booting || (num_idlecores == num_cpus - 1);
-}
-
-extern void sasmlinkage
-__sharc_single_thread_error_mayreturn(const char *msg);
-
-extern void sasmlinkage snoreturn
-__sharc_single_thread_error_noreturn(const char *msg);
-
-#ifdef IVY_FAST_CHECKS
-#define __sharc_single_thread_error __sharc_single_thread_error_noreturn
-#else
-#define __sharc_single_thread_error __sharc_single_thread_error_mayreturn
-#endif
-
-#pragma cilnoremove("__sharc_single_threaded")
-static SINLINE void __sharc_single_threaded(const void *msg) TRUSTED;
-static SINLINE void __sharc_single_threaded(const void *msg)
-{
-       if (is_single_threaded()) return;
-       __sharc_single_thread_error(msg);
-    return;
-}
-
-#define sharc_current      (&per_cpu_info[core_id()])
-#define GET_SHARC_THREAD() sharc_current->sharC_env
-
-#define THREAD_LOCKS(thread,i) (thread.held_locks[(i)])
-#define THREAD_MAX_LOCK(thread) (thread.max_lock)
-
-#define THIS_LOCKS(i)        (THREAD_LOCKS(GET_SHARC_THREAD(),(i)))
-#define THIS_MAX_LOCK        (THREAD_MAX_LOCK(GET_SHARC_THREAD()))
-
-/*
- * Locks
- */
-
-extern void sasmlinkage snoreturn
-__sharc_lock_error_noreturn(const void *lck, const void *what,
-                            unsigned int sz, const char *msg);
-
-extern void sasmlinkage
-__sharc_lock_error_mayreturn(const void *lck, const void *what,
-                             unsigned int sz, const char *msg);
-
-extern void sasmlinkage snoreturn
-__sharc_lock_coerce_error_noreturn(const void *dstlck, const void *srclck,
-                                   const char *msg);
-
-extern void sasmlinkage
-__sharc_lock_coerce_error_mayreturn(const void *dstlck, const void *srclck,
-                                    const char *msg);
-
-#ifdef IVY_FAST_CHECKS
-#define __sharc_lock_error         __sharc_lock_error_noreturn
-#define __sharc_lock_coerce_error  __sharc_lock_coerce_error_noreturn
-#else
-#define __sharc_lock_error         __sharc_lock_error_mayreturn
-#define __sharc_lock_coerce_error  __sharc_lock_coerce_error_mayreturn
-#endif
-
-/* assumes no double-locking */
-#pragma cilnoremove("__sharc_add_lock")
-static SINLINE void __sharc_add_lock(const void *lck) TRUSTED;
-static SINLINE void __sharc_add_lock(const void *lck)
-{
-    unsigned int i;
-
-       if (!__ivy_checking_on || is_single_threaded()) return;
-
-    for (i = 0; i <= THIS_MAX_LOCK; i++)
-        if (!THIS_LOCKS(i))
-            break;
-
-    if (i > THIS_MAX_LOCK && THIS_MAX_LOCK < SHARC_MAX_LOCKS)
-            THIS_MAX_LOCK++;
-
-    THIS_LOCKS(i) = lck;
-    return;
-}
-
-/* this will be very inefficient if the lock isn't actually held */
-#pragma cilnoremove("__sharc_rm_lock")
-static SINLINE void __sharc_rm_lock(const void *lck) TRUSTED;
-static SINLINE void __sharc_rm_lock(const void *lck)
-{
-    unsigned int i;
-
-       if (!__ivy_checking_on || is_single_threaded()) return;
-
-    for (i = 0; i <= THIS_MAX_LOCK; i++)
-        if (THIS_LOCKS(i) == lck)
-            break;
-
-    if (i == THIS_MAX_LOCK && THIS_MAX_LOCK > 0)
-            THIS_MAX_LOCK--;
-
-    THIS_LOCKS(i) = (void *)0;
-    return;
-}
-
-#pragma cilnoremove("__sharc_chk_lock")
-static SINLINE void
-__sharc_chk_lock(const void *lck, const void *what, unsigned int sz,
-                 const char *msg) TRUSTED;
-static SINLINE void
-__sharc_chk_lock(const void *lck, const void *what, unsigned int sz,
-                 const char *msg)
-{
-    unsigned int i;
-
-       // TODO: how do I find how many threads are running?
-    //if (__sharc_num_threads == 1) return;
-
-       if (!__ivy_checking_on || is_single_threaded()) return;
-
-    for (i = 0; i <= THIS_MAX_LOCK; i++)
-        if (THIS_LOCKS(i) == lck)
-            break;
-
-    if (i > THIS_MAX_LOCK) {
-            __sharc_lock_error(lck,what,sz,msg);
-    }
-}
-
-#pragma cilnoremove("__sharc_coerce_lock")
-static SINLINE void
-__sharc_coerce_lock(const void *dstlck, const void *srclck,
-                    const char *msg) TRUSTED;
-static SINLINE void
-__sharc_coerce_lock(const void *dstlck, const void *srclck,
-                    const char *msg)
-{
-       if (!__ivy_checking_on || is_single_threaded()) return;
-
-    if (dstlck != srclck)
-        __sharc_lock_coerce_error(dstlck,srclck,msg);
-}
-
-/*
- * The sharing cast.
- *
- */
-
-extern void __sharc_group_cast_error(int, void *, void *, char *);
-
-#pragma cilnoremove("__sharc_check_group_cast")
-static inline void
-__sharc_check_group_cast(int hassame, void *srcg, void *src, char *msg) TRUSTED;
-static inline void
-__sharc_check_group_cast(int hassame, void *srcg, void *src, char *msg)
-{
-       int old;
-       if (!__ivy_checking_on) return;
-       old = __ivy_checking_on;
-       __ivy_checking_on = 0;
-       panic("sharc group cast unimplemented");
-       __ivy_checking_on = old;
-}
-
-
-extern void __sharc_cast_error(void *addr, unsigned long sz, char *msg);
-
-#pragma cilnoremove("__sharc_sharing_cast")
-static SINLINE void *
-__sharc_sharing_cast(void *addr,void **slot, unsigned int localslot SUNUSED,
-                     unsigned long lo, unsigned long hi,
-                     char *msg) TRUSTED;
-static SINLINE void *
-__sharc_sharing_cast(void *addr,void **slot, unsigned int localslot SUNUSED,
-                     unsigned long lo, unsigned long hi,
-                     char *msg)
-{
-       int old;
-       if (!__ivy_checking_on) return NULL;
-       old = __ivy_checking_on;
-       __ivy_checking_on = 0;
-       panic("sharc sharing cast unimplemented");
-       __ivy_checking_on = old;
-       return NULL;
-}
index 03d7c55..09ff188 100644 (file)
@@ -17,8 +17,8 @@
 #define KMALLOC_LARGEST KMALLOC_SMALLEST << NUM_KMALLOC_CACHES
 
 void kmalloc_init(void);
-void* (DALLOC(size) kmalloc)(size_t size, int flags);
-void* (DALLOC(size) kzmalloc)(size_t size, int flags);
+void* kmalloc(size_t size, int flags);
+void* kzmalloc(size_t size, int flags);
 void *kmalloc_align(size_t size, int flags, size_t align);
 void *kzmalloc_align(size_t size, int flags, size_t align);
 void *krealloc(void *buf, size_t size, int flags);
@@ -50,8 +50,8 @@ void *debug_canary;
  * struct, and that it is not padded. */
 struct kmalloc_tag {
        union {
-               struct kmem_cache *my_cache WHEN(flags == KMALLOC_TAG_CACHE);
-               size_t num_pages WHEN(flags == KMALLOC_TAG_PAGES);
+               struct kmem_cache *my_cache;
+               size_t num_pages;
                uint64_t unused_force_align;
        };
        struct kref kref;
index ccaaa59..8380424 100644 (file)
@@ -56,28 +56,27 @@ struct page {
 /******** Externally visible global variables ************/
 extern uint8_t* global_cache_colors_map;
 extern spinlock_t colored_page_free_list_lock;
-extern page_list_t LCKD(&colored_page_free_list_lock) * RO CT(llc_num_colors)
-    colored_page_free_list;
+extern page_list_t *colored_page_free_list;
 
 /*************** Functional Interface *******************/
 void page_alloc_init(struct multiboot_info *mbi);
 void colored_page_alloc_init(void);
 
-error_t upage_alloc(struct proc* p, page_t *SAFE *page, int zero);
-error_t kpage_alloc(page_t *SAFE *page);
+error_t upage_alloc(struct proc* p, page_t **page, int zero);
+error_t kpage_alloc(page_t **page);
 void *kpage_alloc_addr(void);
 void *kpage_zalloc_addr(void);
-error_t upage_alloc_specific(struct proc* p, page_t *SAFE *page, size_t ppn);
-error_t kpage_alloc_specific(page_t *SAFE *page, size_t ppn);
+error_t upage_alloc_specific(struct proc* p, page_t **page, size_t ppn);
+error_t kpage_alloc_specific(page_t **page, size_t ppn);
 
-void *CT(1 << order) get_cont_pages(size_t order, int flags);
-void *CT(1 << order) get_cont_pages_node(int node, size_t order, int flags);
+void *get_cont_pages(size_t order, int flags);
+void *get_cont_pages_node(int node, size_t order, int flags);
 void *get_cont_phys_pages_at(size_t order, physaddr_t at, int flags);
 void free_cont_pages(void *buf, size_t order);
 
-void page_incref(page_t *SAFE page);
-void page_decref(page_t *SAFE page);
-void page_setref(page_t *SAFE page, size_t val);
+void page_incref(page_t *page);
+void page_decref(page_t *page);
+void page_setref(page_t *page, size_t val);
 
 int page_is_free(size_t ppn);
 void lock_page(struct page *page);
index fe584b6..bb7e9ad 100644 (file)
        size_t __m_ppn = LA2PPN(__m_pa);                        \
        if (__m_ppn > max_nr_pages)                                     \
                warn("KADDR called with invalid pa %p", __m_pa);\
-       (void*TRUSTED) (__m_pa + KERNBASE);                             \
+       (void*) (__m_pa + KERNBASE);                            \
 })
 
 #define KADDR_NOCHECK(pa) ((void*)(pa + KERNBASE))
 #define KBASEADDR(kla) KADDR(PADDR(kla))
 
-extern char (SNT RO bootstacktop)[], (SNT RO bootstack)[];
+extern char bootstacktop[], bootstack[];
 
 extern physaddr_t max_pmem;            /* Total amount of physical memory */
 extern size_t max_nr_pages;            /* Total number of physical memory pages */
@@ -72,7 +72,7 @@ extern uintptr_t boot_freelimit;
  * counted, and free pages are kept on a linked list. */
 extern struct page *pages;
 
-extern physaddr_t RO boot_cr3;
+extern physaddr_t boot_cr3;
 extern pgdir_t boot_pgdir;
 
 bool enable_pse(void);
@@ -83,14 +83,14 @@ void *boot_alloc(size_t amt, size_t align);
 void *boot_zalloc(size_t amt, size_t align);
 
 void page_check(void);
-int     page_insert(pgdir_t pgdir, struct page *page, void *SNT va,
+int     page_insert(pgdir_t pgdir, struct page *page, void *va,
                        int perm);
-void page_remove(pgdir_t pgdir, void *SNT va);
+void page_remove(pgdir_t pgdir, void *va);
 page_t* page_lookup(pgdir_t pgdir, void *va, pte_t *pte_store);
-error_t        pagetable_remove(pgdir_t pgdir, void *SNT va);
-void   page_decref(page_t *COUNT(1) pp);
+error_t        pagetable_remove(pgdir_t pgdir, void *va);
+void   page_decref(page_t *pp);
 
-void   tlb_invalidate(pgdir_t pgdir, void *SNT va);
+void   tlb_invalidate(pgdir_t pgdir, void *ga);
 void tlb_flush_global(void);
 bool regions_collide_unsafe(uintptr_t start1, uintptr_t end1, 
                             uintptr_t start2, uintptr_t end2);
@@ -102,7 +102,7 @@ int arch_pgdir_setup(pgdir_t boot_copy, pgdir_t *new_pd);
 physaddr_t arch_pgdir_get_cr3(pgdir_t pd);
 void arch_pgdir_clear(pgdir_t *pd);
 
-static inline page_t *SAFE ppn2page(size_t ppn)
+static inline page_t *ppn2page(size_t ppn)
 {
        if (ppn >= max_nr_pages)
                warn("ppn2page called with ppn (%08lu) larger than max_nr_pages", ppn);
@@ -119,7 +119,7 @@ static inline physaddr_t page2pa(page_t *pp)
        return page2ppn(pp) << PGSHIFT;
 }
 
-static inline page_t*COUNT(1) pa2page(physaddr_t pa)
+static inline page_t *pa2page(physaddr_t pa)
 {
        if (LA2PPN(pa) >= max_nr_pages)
                warn("pa2page called with pa (%p) larger than max_nr_pages", pa);
@@ -131,12 +131,12 @@ static inline ppn_t pa2ppn(physaddr_t pa)
        return pa >> PGSHIFT;
 }
 
-static inline void*COUNT(PGSIZE) page2kva(page_t *pp)
+static inline void *page2kva(page_t *pp)
 {
        return KADDR(page2pa(pp));
 }
 
-static inline void*COUNT(PGSIZE) ppn2kva(size_t pp)
+static inline void *ppn2kva(size_t pp)
 {
        return page2kva(ppn2page(pp));
 }
index f925c52..ad60e7d 100644 (file)
@@ -65,9 +65,9 @@ struct proc *pid_nth(unsigned int n);
 error_t proc_alloc(struct proc **pp, struct proc *parent, int flags);
 void __proc_ready(struct proc *p);
 struct proc *proc_create(struct file *prog, char **argv, char **envp);
-int __proc_set_state(struct proc *p, uint32_t state) WRITES(p->state);
+int __proc_set_state(struct proc *p, uint32_t state);
 struct proc *pid2proc(pid_t pid);
-bool proc_controls(struct proc *SAFE actor, struct proc *SAFE target);
+bool proc_controls(struct proc *actor, struct proc *target);
 void proc_incref(struct proc *p, unsigned int val);
 void proc_decref(struct proc *p);
 void proc_run_s(struct proc *p);
@@ -80,7 +80,7 @@ int __proc_disown_child(struct proc *parent, struct proc *child);
 int proc_change_to_m(struct proc *p);
 void __proc_save_fpu_s(struct proc *p);
 void __proc_save_context_s(struct proc *p, struct user_context *ctx);
-void proc_yield(struct proc *SAFE p, bool being_nice);
+void proc_yield(struct proc *p, bool being_nice);
 void proc_notify(struct proc *p, uint32_t vcoreid);
 void proc_wakeup(struct proc *p);
 bool __proc_is_mcp(struct proc *p);
index 2c451b2..a1d312c 100644 (file)
@@ -2,9 +2,6 @@
 #define ROS_COMMON_H
 
 #ifndef __ASSEMBLER__
-#ifndef __IVY__
-#include <ros/noivy.h>
-#endif
 
 #include <stddef.h>
 #include <stdint.h>
diff --git a/kern/include/ros/noivy.h b/kern/include/ros/noivy.h
deleted file mode 100644 (file)
index 8633c56..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-#ifndef NOIVY_H
-#define NOIVY_H
-
-#define BOUND(lo, hi)   
-#define COUNT(n)        
-#define SIZE(n)         
-#define SAFE            
-#define SNT             
-#define DANGEROUS       
-
-/* Begin Experimental attributes */
-#define META(p)            
-#define HANDLER_ATOMIC              
-#define LOCK_HANDLER_ATOMIC(...)   
-#define IN_HANDLER_ATOMIC  
-#define IN_HANDLER         
-#define ASYNC              
-#define NORACE             
-#define SYNCHRONOUS        
-#define REGION(r)          
-#define NOREGION           
-#define SOMEREGION         
-#define SAMEREGION         
-#define DELETES_REGION(r)  
-#ifdef ROS_KERNEL
-# define GROUP(g)           
-#endif
-#define NOGROUP            
-#define SOMEGROUP          
-#define SAMEGROUP          
-#define UNIQUE             
-#define NOALIAS            
-#define PAIRED_WITH(c)     
-#define PAIRED(c1,c2)      
-#define ARGPAIRED(c1,c2,arg) 
-#define FNPTRCALLER(fn)    
-#define INITSTRUCT(s)      
-#define NOINIT             
-#define WRITES(...)        
-#define RPROTECT           
-#define WPROTECT           
-#define RWPROTECT          
-#define R_PERMITTED(...) 
-#define W_PERMITTED(...) 
-#define RW_PERMITTED(...) 
-/* End Experimental attributes */
-
-#define BND(lo, hi)     
-#define CT(n)           
-#define SZ(n)           
-
-#define EFAT            
-#define FAT             
-
-#define NULLTERM        
-#define NT              
-#define NTS             
-#define NTC(n)          
-
-#define NTDROPATTR      
-#define NTEXPANDATTR    
-
-#define NULLABLE
-#define OPT             
-#define NONNULL         
-
-#define TRUSTED         
-#define TRUSTEDBLOCK    
-
-#define POLY           
-
-#define COPYTYPE        
-
-//specifies that Deputy's typechecker (but not optimizer) should assume
-//that this lvalue is constant. (unsound)
-#define ASSUMECONST     
-
-#define WHEN(e)         
-
-#define DMEMCPY(x, y, z) 
-#define DMEMSET(x, y, z) 
-#define DMEMCMP(x, y, z)
-
-#define DALLOC(x)       
-#define DREALLOC(x, y)  
-#define DFREE(x)        
-
-#define DVARARG(x)      
-#define DPRINTF(x)      
-
-#define NTDROP(x)       (x)
-#define NTEXPAND(x)     (x)
-#define TC(x)           (x)
-
-#define TVATTR(x)       
-#define TPATTR(x)       
-
-#define TV(x)           void *
-#define TP(x)           
-#define NTP(n,x)
-#define NTPTV(n)
-
-/* Sharc Stuff */
-
-#define SINTHREAD
-#define SFNPTR
-#define SHASDEF
-#define SPURE
-#define STCREATE(fn,arg)
-#define SBARRIER(n)
-#define SBARRIERFN
-
-#define SLOCK(x)
-#define SUNLOCK(x)
-#define SLOCKED(l)
-#define SSOMELOCK
-#define SREADONLY
-#define SRACY
-#define SREADS(n)
-#define SWRITES(n)
-#define SREADSNT
-#define SWRITESNT
-#define SCTX
-#define SPRIVATE
-#define SDYNAMIC
-#define SINDYNAMIC
-#define SOUTDYNAMIC
-#define SDYNBAR(b)
-
-#define RO
-#define LCKD(x)
-#define RACY
-#define PRIVATE
-
-#define SGROUP(g)
-#define SNOGROUP
-#define SRETGROUP
-#define SARGGROUP
-
-#define SSAME
-
-#define SUNIQUE
-#define SNOALIAS
-
-#define SMAYCAST
-#define SINMAYCAST
-#define SOUTMAYCAST
-#define SCONDMCRET
-
-#define TRUSTEDBLOCK
-
-#define SCAST(x) (x)
-#define SINIT(x) (x)
-#define SINIT_DOUBLE(x) (x)
-#define SINIT_FLOAT(x) (x)
-
-#define hs_nofree
-
-#define DALLOC(x)
-#define DFREE(x)
-
-
-#endif // NOIVY_H
-
index 7e5189c..5bae4a4 100644 (file)
@@ -59,10 +59,8 @@ struct kmem_slab {
        size_t num_busy_obj;
        size_t num_total_obj;
        union {
-               struct kmem_bufctl_list bufctl_freelist
-                   WHEN(obj_size > SLAB_LARGE_CUTOFF);
-               void *free_small_obj
-                   WHEN(obj_size <= SLAB_LARGE_CUTOFF);
+               struct kmem_bufctl_list bufctl_freelist;
+               void *free_small_obj;
        };
 };
 TAILQ_HEAD(kmem_slab_list, kmem_slab);
@@ -71,7 +69,7 @@ TAILQ_HEAD(kmem_slab_list, kmem_slab);
 struct kmem_cache {
        SLIST_ENTRY(kmem_cache) link;
        spinlock_t cache_lock;
-       const char *NTS name;
+       const char *name;
        size_t obj_size;
        int align;
        int flags;
@@ -88,7 +86,7 @@ SLIST_HEAD(kmem_cache_list, kmem_cache);
 extern struct kmem_cache_list kmem_caches;
 
 /* Cache management */
-struct kmem_cache *kmem_cache_create(const char *NTS name, size_t obj_size,
+struct kmem_cache *kmem_cache_create(const char *name, size_t obj_size,
                                      int align, int flags,
                                      void (*ctor)(void *, size_t),
                                      void (*dtor)(void *, size_t));
index 40886be..fd62d33 100644 (file)
 #include <alarm.h>
 #include <trace.h>
 
-#ifdef __SHARC__
-typedef sharC_env_t;
-#endif
-
 #define CPU_STATE_IRQ                  0
 #define CPU_STATE_KERNEL               1
 #define CPU_STATE_USER                 2
@@ -64,12 +60,6 @@ struct per_cpu_info {
        int cpu_state;
        uint64_t last_tick_cnt;
        uint64_t state_ticks[NR_CPU_STATES];
-#ifdef __SHARC__
-       // held spin-locks. this will have to go elsewhere if multiple kernel
-       // threads can share a CPU.
-       // zra: Used by Ivy. Let me know if this should go elsewhere.
-       sharC_env_t sharC_env;
-#endif
        /* TODO: 64b (not sure if we'll need these at all */
 #ifdef CONFIG_X86
        taskstate_t *tss;
@@ -77,9 +67,9 @@ struct per_cpu_info {
 #endif
        /* KMSGs */
        spinlock_t immed_amsg_lock;
-       struct kernel_msg_list NTPTV(a0t) NTPTV(a1t) NTPTV(a2t) immed_amsgs;
+       struct kernel_msg_list immed_amsgs;
        spinlock_t routine_amsg_lock;
-       struct kernel_msg_list NTPTV(a0t) NTPTV(a1t) NTPTV(a2t) routine_amsgs;
+       struct kernel_msg_list routine_amsgs;
        /* profiling -- opaque to all but the profiling code. */
        void *profiling;
 }__attribute__((aligned(ARCH_CL_SIZE)));
@@ -93,10 +83,10 @@ struct per_cpu_info {
  * interrupted contexts via iret/etc.  We never do that for user contexts. */
 #define current_ctx per_cpu_info[core_id()].cur_ctx
 
-typedef struct per_cpu_info NTPTV(t) NTPTV(a0t) NTPTV(a1t) NTPTV(a2t) per_cpu_info_t;
+typedef struct per_cpu_info  per_cpu_info_t;
 
-extern per_cpu_info_t (RO per_cpu_info)[MAX_NUM_CPUS];
-extern volatile uint32_t RO num_cpus;
+extern per_cpu_info_t per_cpu_info[MAX_NUM_CPUS];
+extern volatile uint32_t num_cpus;
 
 /* SMP bootup functions */
 void smp_boot(void);
index 90ae337..922ffdf 100644 (file)
 
 // lib/stdio.c
 void   cputchar(int c);
-void   cputbuf(const char*COUNT(len) buf, int len);
+void   cputbuf(const char *buf, int len);
 int    getchar(void);
 int    iscons(int fd);
 
 // lib/printfmt.c
-#ifdef __DEPUTY__
-void   printfmt(void (*putch)(int, TV(t)), TV(t) putdat, const char *NTS fmt, ...);
-void   vprintfmt(void (*putch)(int, TV(t)), TV(t) putdat, const char *NTS fmt, va_list);
-#else
-void   printfmt(void (*putch)(int, void**), void **putdat, const char *NTS fmt, ...);
-void   vprintfmt(void (*putch)(int, void**), void **putdat, const char *NTS fmt, va_list);
-#endif
+void   printfmt(void (*putch)(int, void**), void **putdat, const char *fmt, ...);
+void   vprintfmt(void (*putch)(int, void**), void **putdat, const char *fmt, va_list);
 
 // lib/printf.c
-int    ( cprintf)(const char * NTS fmt, ...);
-int    vcprintf(const char * NTS fmt, va_list);
+int    ( cprintf)(const char *fmt, ...);
+int    vcprintf(const char *fmt, va_list);
 
 // lib/sprintf.c
-int    snprintf(char *COUNT(size) str, int size, const char *NTS fmt, ...);
-int    vsnprintf(char *COUNT(size) str, int size, const char *NTS fmt, va_list);
+int    snprintf(char *str, int size, const char *fmt, ...);
+int    vsnprintf(char *str, int size, const char *fmt, va_list);
 
 // lib/fprintf.c
-int    printf(const char *NTS fmt, ...);
-int    fprintf(int fd, const char *NTS fmt, ...);
-int    vfprintf(int fd, const char *NTS fmt, va_list);
+int    printf(const char *fmt, ...);
+int    fprintf(int fd, const char *fmt, ...);
+int    vfprintf(int fd, const char *fmt, va_list);
 
 // lib/readline.c
 int readline(char *buf, size_t buf_l, const char *prompt, ...);
index 0d8d512..1c4020f 100644 (file)
@@ -3,37 +3,34 @@
 
 #include <ros/common.h>
 
-#define STRING char *NTS
-#define STRBUF(n) char *NT COUNT(n)
-
-int    strlen(const STRING s);
-int    strnlen(const STRBUF(size) s, size_t size);
-STRING  strstr(char *s1, char *s2);
+int    strlen(const char *s);
+int    strnlen(const char *s, size_t size);
+char *strstr(char *s1, char *s2);
 
 /* zra : These aren't being used, and they are dangerous, so I'm rm'ing them
 STRING strcpy(STRING dst, const STRING src);
 STRING strcat(STRING dst, const STRING src);
 */
-STRING strncpy(STRBUF(size) dst, const STRING src, size_t size);
-size_t strlcpy(STRBUF(size-1) dst, const STRING src, size_t size);
-int    strcmp(const STRING s1, const STRING s2);
-int    strncmp(const STRING s1, const STRING s2, size_t size);
+char *strncpy(char *dst, const char *src, size_t size);
+size_t strlcpy(char *dst, const char *src, size_t size);
+int    strcmp(const char *s1, const char *s2);
+int    strncmp(const char *s1, const char *s2, size_t size);
 int cistrcmp(char *s1, char *s2);
-STRING strchr(const STRING s, char c);
-STRING strrchr(const STRING s, char c);
-STRING strfind(const STRING s, char c);
+char *strchr(const char *s, char c);
+char *strrchr(const char *s, char c);
+char *strfind(const char *s, char c);
 
-void * (DMEMSET(1, 2, 3) memset)(void* p, int what, size_t sz);
-int    (DMEMCMP(1, 2, 3) memcmp)(const void* s1, const void* s2, size_t sz);
-void * (DMEMCPY(1, 2, 3) memcpy)(void* dst, const void* src, size_t sz);
-void * (DMEMCPY(1, 2, 3) memmove)(void *dst, const void* src, size_t sz);
-void * memchr(void* mem, int chr, int len);
+void *memset(void* p, int what, size_t sz);
+int   memcmp(const void* s1, const void* s2, size_t sz);
+void *memcpy(void* dst, const void* src, size_t sz);
+void *memmove(void *dst, const void* src, size_t sz);
+void *memchr(void* mem, int chr, int len);
 
-void *BND(s,s+len)     memfind(const void *COUNT(len) s, int c, size_t len);
+void *memfind(const void *s, int c, size_t len);
 
-long   strtol(const char *NTS s, char **endptr, int base);
+long   strtol(const char *s, char **endptr, int base);
 unsigned long strtoul(const char *s, char **endptr, int base);
-int    atoi(const char*NTS s);
+int    atoi(const char*s);
 int sigchecksum(void *address, int length);
 void *sigscan(uint8_t *address, int length, char *signature);
 
index 13269d2..a698b8e 100644 (file)
@@ -16,11 +16,11 @@ static inline bool is_user_rwaddr(void *addr, size_t len);
 static inline bool is_user_raddr(void *addr, size_t len);
 
 /* Copy from proc p into the kernel's dest from src */
-int memcpy_from_user(struct proc *p, void *dest, const void *DANGEROUS va,
+int memcpy_from_user(struct proc *p, void *dest, const void *va,
                      size_t len);
 
 /* Copy to proc p into va from the kernel's src */
-int memcpy_to_user(struct proc *p, void *DANGEROUS va, const void *src,
+int memcpy_to_user(struct proc *p, void *a, const void *src,
                    size_t len);
 /* Same as above, but sets errno */
 int memcpy_from_user_errno(struct proc *p, void *dst, const void *src, int len);
diff --git a/kern/ivy/Makefrag b/kern/ivy/Makefrag
deleted file mode 100644 (file)
index c819ea0..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-KERN_IVY_DIR = $(KERN_DIR)/ivy\r
-OBJDIRS += $(KERN_IVY_DIR)\r
-\r
-KERN_IVY_CFLAGS   += $(KERN_CFLAGS)\r
-ifeq ($(COMPILER),IVY)\r
-KERN_IVY_CFLAGS   += --nodeputy --nosharc\r
-endif\r
-\r
-KERN_IVY_SRCFILES := $(KERN_IVY_DIR)/deputy.c $(KERN_IVY_DIR)/sharc.c\r
-KERN_IVY_OBJFILES := $(patsubst $(KERN_IVY_DIR)/%.c, \\r
-                                   $(OBJDIR)/$(KERN_IVY_DIR)/%.o, \\r
-                                   $(KERN_IVY_SRCFILES))\r
-\r
-$(OBJDIR)/$(KERN_IVY_DIR)/%.o: $(KERN_IVY_DIR)/%.c \r
-       @echo + cc [KERN IVY] $<\r
-       @mkdir -p $(@D)\r
-       $(V)$(CC) $(KERN_IVY_CFLAGS) -c -o $@ $<\r
-\r
-$(OBJDIR)/$(KERN_DIR)/libivykern.a: $(KERN_IVY_OBJFILES)\r
-       @echo + ar [KERN IVY] $@\r
-       $(V)$(AR) r $@ $(KERN_IVY_OBJFILES) 2>/dev/null\r
-\r
diff --git a/kern/ivy/deputy.c b/kern/ivy/deputy.c
deleted file mode 100644 (file)
index 6f09777..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-#ifdef __IVY__
-#include <stdio.h>
-#include <assert.h>
-#include <string.h>
-
-#define IN_DEPUTY_LIBRARY
-
-// Use inline even when not optimizing for speed, since it prevents
-// warnings that would occur due to unused static functions.
-#ifdef DEPUTY_ALWAYS_STOP_ON_ERROR
-  #define INLINE inline __attribute__((always_inline))
-#else
-  #define INLINE inline
-#endif
-
-#define __LOCATION__        __FILE__, __LINE__, __FUNCTION__
-#define __LOCATION__FORMALS const char* file, int line, const char* func
-#define __LOCATION__ACTUALS file, line, func
-
-#ifndef asmlinkage
-#define asmlinkage __attribute__((regparm(0)))
-#endif
-
-#ifndef noreturn
-#define noreturn __attribute__((noreturn))
-#endif
-
-extern int __ivy_checking_on;
-
-asmlinkage
-void deputy_fail_mayreturn(const char *check, const char *text,
-                           __LOCATION__FORMALS) {
-       int old;
-       if (!__ivy_checking_on) return;
-       old = __ivy_checking_on;
-       __ivy_checking_on = 0;
-    cprintf("%s:%d: %s: Assertion failed in %s: %s\n",
-            __LOCATION__ACTUALS, check, text);
-       __ivy_checking_on = old;
-/*
-    dump_stack();
-*/
-}
-
-asmlinkage noreturn
-void deputy_fail_noreturn_fast(void) {
-       __ivy_checking_on = 0;
-    panic("Deputy assertion failure\n");
-       __ivy_checking_on = 1;
-}
-
-int deputy_strlen(const char *str) {
-    return strlen(str);
-}
-
-char *deputy_strcpy(char *dest, const char *src) {
-    char *tmp = dest;
-    while ((*dest++ = *src++) != '\0') {
-        // do nothing
-    }
-    return tmp;
-}
-
-char *deputy_strncpy(char *dest, const char *src, size_t count) {
-    char *tmp = dest;
-    int c = count;
-    while (c >= 0) {
-        if ((*tmp = *src) != 0) src++;
-        tmp++;
-        c--;
-    }
-    return dest;
-}
-
-/* Search for a NULL starting at e and return its index */
-int deputy_findnull(const void *e, unsigned int bytes) {
-#define NULLCHECK(type) \
-    do { \
-        type *p = (type*) e; \
-        while (*p != 0) { \
-            p++; \
-        } \
-        length = (p - (type*) e); \
-    } while (0)
-
-    int length = 0;
-
-    switch (bytes) {
-        case 1:
-            NULLCHECK(char);
-            break;
-        case 2:
-            NULLCHECK(short);
-            break;
-        case 4:
-            NULLCHECK(long);
-            break;
-        default:
-                       if (!__ivy_checking_on) return length;
-                       __ivy_checking_on = 0;
-            cprintf("Invalid byte size for nullcheck.\n");
-                       __ivy_checking_on = 1;
-            break;
-    }
-
-    return length;
-#undef NULLCHECK
-}
-
-void *__deputy_memset(void *s, int c, unsigned int n) {
-  return memset(s, c, n);
-}
-
-#endif // __IVY__
diff --git a/kern/ivy/sharc.c b/kern/ivy/sharc.c
deleted file mode 100644 (file)
index 6b6f4cb..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifdef __IVY__
-#include <assert.h>
-
-int __ivy_checking_on = 1;
-
-void __sharc_single_thread_error_mayreturn(const char *msg)
-{
-       int old;
-       if (!__ivy_checking_on) return;
-       old = __ivy_checking_on;
-       warn("Ivy: Not single threaded: %s\n", msg);
-       __ivy_checking_on = old;
-}
-
-void __sharc_lock_error_mayreturn(const void *lck, const void *what,
-                        unsigned int sz, char *msg)
-{
-       int old;
-       if (!__ivy_checking_on) return;
-       old = __ivy_checking_on;
-       __ivy_checking_on = 0;
-       warn("Ivy: The lock %p was not held for (%p,%d): %s\n",
-          lck, what, sz, msg);
-       __ivy_checking_on = old;
-}
-
-void __sharc_lock_coerce_error_mayreturn(void *dstlck, void *srclck, char *msg)
-{
-       int old;
-       if (!__ivy_checking_on) return;
-       old = __ivy_checking_on;
-       __ivy_checking_on = 0;
-       warn("Ivy: The locks in the coercion at %s must be the same\n", msg);
-       __ivy_checking_on = old;
-}
-
-#endif // __IVY__
index bce074d..e62fdce 100644 (file)
@@ -49,7 +49,6 @@ obj-y                                         += smp.o
 obj-y                                          += string.o
 obj-y                                          += strstr.o
 obj-y                                          += syscall.o
-obj-y                                          += sysevent.o
 obj-y                                          += taskqueue.o
 obj-y                                          += time.o
 obj-y                                          += trace.o
index 441197f..8c52fdc 100644 (file)
@@ -1,10 +1,5 @@
 /* See COPYRIGHT for copyright information. */
 
-#ifdef __SHARC__
-#pragma nosharc
-#endif
-
-
 #include <ros/common.h>
 #include <ros/ring_syscall.h>
 #include <arch/types.h>
index cc73a71..f05a3b7 100644 (file)
@@ -1,7 +1,3 @@
-#ifdef __SHARC__
-#pragma nosharc
-#endif
-
 #include <arch/arch.h>
 #include <arch/kdebug.h>
 
index bec3819..354a61e 100644 (file)
@@ -5,11 +5,6 @@
  * Kevin Klues <klueska@cs.berkeley.edu>    
  */
 
-#ifdef __SHARC__
-#pragma nosharc
-#define SINIT(x) x
-#endif
-
 #include <ros/common.h>
 #include <arch/mmu.h>
 #include <bitmask.h>
@@ -27,14 +22,14 @@ spinlock_t cache_colors_lock = SPINLOCK_INITIALIZER_IRQSAVE;
 
 /************** Cache Related Functions  *****************/
 inline void init_cache_properties(cache_t *c, size_t sz_k, size_t wa, size_t clsz) {
-       c->wa = SINIT(wa);
-       c->sz_k = SINIT(sz_k);
-       c->clsz = SINIT(clsz);
+       c->wa = wa;
+       c->sz_k = sz_k;
+       c->clsz = clsz;
 
 #ifdef CONFIG_PAGE_COLORING
        //Added as optimization (derived from above);
        size_t nc = get_cache_num_page_colors(c);
-       c->num_colors = SINIT(nc);
+       c->num_colors = nc;
 #else
        c->num_colors = 1;
 #endif
@@ -51,7 +46,7 @@ inline size_t get_offset_in_cache_line(uintptr_t addr, cache_t *c) {
     return (addr % get_cache_bytes_per_line(c));
 }
 
-void print_cache_properties(char *NT lstring, cache_t *c)
+void print_cache_properties(char *lstring, cache_t *c)
 {
        printk("%s_WAYS_ASSOCIATIVE: %ld\n", lstring, get_cache_ways_associative(c));
        printk("%s_LINE_SIZE_BYTES: %ld\n", lstring, get_cache_line_size_bytes(c));
index 0bd26b4..d7a58c7 100644 (file)
@@ -1,9 +1,5 @@
 /* See COPYRIGHT for copyright information. */
 
-#ifdef __SHARC__
-#pragma nosharc
-#endif
-
 #include <arch/arch.h>
 #include <arch/mmu.h>
 #include <bitmask.h>
@@ -37,10 +33,9 @@ atomic_t num_envs;
 //     -ENOMEM if page directory or table could not be allocated.
 //
 int env_setup_vm(env_t *e)
-WRITES(e->env_pgdir, e->env_cr3, e->procinfo, e->procdata)
 {
        int i, ret;
-       static page_t * RO shared_page = 0;
+       static page_t *shared_page = 0;
 
        if ((ret = arch_pgdir_setup(boot_pgdir, &e->env_pgdir)))
                return ret;
@@ -58,12 +53,12 @@ WRITES(e->env_pgdir, e->env_cr3, e->procinfo, e->procdata)
         * start the process without calling those. */
        for (int i = 0; i < PROCINFO_NUM_PAGES; i++) {
                if (page_insert(e->env_pgdir, kva2page((void*)e->procinfo + i *
-                               PGSIZE), (void*SNT)(UINFO + i*PGSIZE), PTE_USER_RO) < 0)
+                               PGSIZE), (void*)(UINFO + i*PGSIZE), PTE_USER_RO) < 0)
                        goto env_setup_vm_error;
        }
        for (int i = 0; i < PROCDATA_NUM_PAGES; i++) {
                if (page_insert(e->env_pgdir, kva2page((void*)e->procdata + i *
-                               PGSIZE), (void*SNT)(UDATA + i*PGSIZE), PTE_USER_RW) < 0)
+                               PGSIZE), (void*)(UDATA + i*PGSIZE), PTE_USER_RW) < 0)
                        goto env_setup_vm_error;
        }
        /* Finally, set up the Global Shared Data page for all processes.  Can't be
index 75f85c9..423c2c5 100644 (file)
@@ -1,11 +1,3 @@
-#ifdef __SHARC__
-#pragma nosharc
-#endif
-
-#ifdef __DEPUTY__
-#pragma nodeputy
-#endif
-
 #include <atomic.h>
 #include <process.h>
 #include <kmalloc.h>
@@ -19,7 +11,7 @@
 volatile int magic_mem[10];
 
 void
-frontend_proc_init(struct proc *SAFE p)
+frontend_proc_init(struct proc *p)
 {
 #ifdef CONFIG_APPSERVER
        pid_t parent_id = p->ppid, id = p->pid;
@@ -30,7 +22,7 @@ frontend_proc_init(struct proc *SAFE p)
 }
 
 void
-frontend_proc_free(struct proc *SAFE p)
+frontend_proc_free(struct proc *p)
 {
 #ifdef CONFIG_APPSERVER
        int32_t errno;
index 938d698..1762eb8 100644 (file)
 #include <slab.h>
 #include <kmalloc.h>
 
-// File was not annotated and caused ivy based compilation to fail
-// Someone should really annotate it.
-#ifdef __DEPUTY__
-#pragma nodeputy
-#endif
-
-#ifdef __SHARC__
-#pragma nosharc
-#endif
-
 /*
 Credit for primes table: Aaron Krowne
  http://br.endernet.org/~akrowne/
index 774181d..be24026 100644 (file)
@@ -1,9 +1,5 @@
 /* See COPYRIGHT for copyright information. */
 
-#ifdef __SHARC__
-#pragma nosharc
-#endif
-
 #ifdef CONFIG_BSD_ON_CORE0
 #error "Yeah, it's not possible to build ROS with BSD on Core 0, sorry......"
 #else
@@ -48,7 +44,6 @@
 #include <acpi.h>
 #include <coreboot_tables.h>
 
-// zra: flag for Ivy
 int booting = 1;
 struct sysinfo_t sysinfo;
 static void run_linker_funcs(void);
@@ -56,7 +51,7 @@ static int run_init_script(void);
 
 void kernel_init(multiboot_info_t *mboot_info)
 {
-       extern char (RO BND(__this, end) edata)[], (RO SNT end)[];
+       extern char edata[], end[];
 
        memset(edata, 0, end - edata);
        /* mboot_info is a physical address.  while some arches currently have the
@@ -104,7 +99,6 @@ void kernel_init(multiboot_info_t *mboot_info)
        eth_audio_init();
 #endif /* CONFIG_ETH_AUDIO */
        get_coreboot_info(&sysinfo);
-       // zra: let's Ivy know we're done booting
        booting = 0;
 
 #ifdef CONFIG_RUN_INIT_SCRIPT
index 3d9c457..9dbd66a 100644 (file)
@@ -5,15 +5,6 @@
  * Implementation of the KFS file system.  It is a RAM based, read-only FS
  * consisting of files that are added to the kernel binary image.  Might turn
  * this into a read/write FS with directories someday. */
-
-#ifdef __SHARC__
-#pragma nosharc
-#endif
-
-#ifdef __DEPUTY__
-#pragma nodeputy
-#endif
-
 #include <vfs.h>
 #include <kfs.h>
 #include <slab.h>
index d1d14f6..863f8aa 100644 (file)
@@ -5,16 +5,6 @@
  * Barret Rhoden <brho@cs.berkeley.edu>
  * Kevin Klues <klueska@cs.berkeley.edu>    
  */
-
-#ifdef __SHARC__
-#pragma nosharc
-#define SINIT(x) x
-#endif
-
-#ifdef __DEPUTY__
-#pragma nodeputy
-#endif
-
 #include <ros/common.h>
 #include <error.h>
 #include <pmap.h>
@@ -27,7 +17,7 @@
 
 //List of physical pages used by kmalloc
 static spinlock_t pages_list_lock = SPINLOCK_INITIALIZER;
-static page_list_t LCKD(&pages_list_lock)pages_list;
+static page_list_t pages_list;
 
 struct kmem_cache *kmalloc_caches[NUM_KMALLOC_CACHES];
 
index ac1fe8b..bf05361 100644 (file)
@@ -388,7 +388,7 @@ bool test_bitmasks(void)
        return true;
 }
 
-checklist_t *RO the_global_list;
+checklist_t *the_global_list;
 
 static void test_checklist_handler(struct hw_trapframe *hw_tf, void *data)
 {
index 1001218..c9b8a0e 100644 (file)
@@ -5,10 +5,6 @@
  */
 
 
-#ifdef __SHARC__
-#pragma nosharc
-#endif
-
 #include <ros/common.h>
 #include <smp.h>
 #include <arch/init.h>
@@ -285,7 +281,7 @@ void manager_waterman()
 void manager_yuzhu()
 {
        
-       static uint8_t RACY progress = 0;
+       static uint8_t progress = 0;
        static struct proc *p;
 
        // for testing taking cores, check in case 1 for usage
index 6765928..969a8d1 100644 (file)
@@ -1,10 +1,6 @@
 // Simple command-line kernel monitor useful for
 // controlling the kernel and exploring the system interactively.
 
-#ifdef __SHARC__
-#pragma nosharc
-#endif
-
 #include <arch/arch.h>
 #include <stab.h>
 #include <smp.h>
 #define CMDBUF_SIZE    80      // enough for one VGA text line
 
 typedef struct command {
-       const char *NTS name;
-       const char *NTS desc;
+       const char *name;
+       const char *desc;
        // return -1 to force monitor to exit
        int (*func)(int argc, char **argv, struct hw_trapframe *hw_tf);
 } command_t;
 
-static command_t (RO commands)[] = {
+static command_t commands[] = {
        { "help", "Display this list of commands", mon_help },
        { "kerninfo", "Display information about the kernel", mon_kerninfo },
        { "backtrace", "Dump a backtrace", mon_backtrace },
@@ -95,7 +91,7 @@ int mon_ps(int argc, char** argv, struct hw_trapframe *hw_tf)
 
 int mon_kerninfo(int argc, char **argv, struct hw_trapframe *hw_tf)
 {
-       extern char (RO SNT _start)[], (RO SNT etext)[], (RO SNT edata)[], (RO SNT end)[];
+       extern char _start[], etext[], edata[], end[];
 
        cprintf("Special kernel symbols:\n");
        cprintf("  _start %016x (virt)  %016x (phys)\n", _start, (uintptr_t)(_start - KERNBASE));
@@ -107,33 +103,6 @@ int mon_kerninfo(int argc, char **argv, struct hw_trapframe *hw_tf)
        return 0;
 }
 
-#if 0
-zra: not called
-static char RO* function_of(uint32_t address)
-{
-       extern stab_t (RO stab)[], (RO estab)[];
-       extern char (RO stabstr)[];
-       stab_t* symtab;
-       stab_t* best_symtab = 0;
-       uint32_t best_func = 0;
-
-       // ugly and unsorted
-       for (symtab = stab; symtab < estab; symtab++) {
-               // only consider functions, type = N_FUN
-               if ((symtab->n_type == N_FUN) &&
-                   (symtab->n_value <= address) &&
-                       (symtab->n_value > best_func)) {
-                       best_func = symtab->n_value;
-                       best_symtab = symtab;
-               }
-       }
-       // maybe the first stab really is the right one...  we'll see.
-       if (best_symtab == 0)
-               return "Function not found!";
-       return stabstr + best_symtab->n_strx;
-}
-#endif
-
 static int __backtrace(int argc, char **argv, struct hw_trapframe *hw_tf)
 {
        uintptr_t pc, fp;
@@ -893,10 +862,10 @@ int onecmd(int argc, char *argv[], struct hw_trapframe *hw_tf) {
        return -1;
 }
 
-static int runcmd(char *NTS real_buf, struct hw_trapframe *hw_tf) {
-       char * buf = NTEXPAND(real_buf);
+static int runcmd(char *real_buf, struct hw_trapframe *hw_tf) {
+       char * buf = real_buf;
        int argc;
-       char *NTS argv[MAXARGS];
+       char *argv[MAXARGS];
        int i;
 
        // Parse the command buffer into whitespace-separated arguments
index e2033c0..c2910c7 100644 (file)
@@ -5,10 +5,6 @@
  * Kevin Klues <klueska@cs.berkeley.edu>    
  * Barret Rhoden <brho@cs.berkeley.edu> */
 
-#ifdef __SHARC__
-#pragma nosharc
-#endif
-
 #include <sys/queue.h>
 #include <bitmask.h>
 #include <page_alloc.h>
@@ -21,8 +17,8 @@
 #define l2 (available_caches.l2)
 #define l3 (available_caches.l3)
 
-static void __page_decref(page_t *CT(1) page);
-static error_t __page_alloc_specific(page_t** page, size_t ppn);
+static void __page_decref(page_t *page);
+static error_t __page_alloc_specific(page_t **page, size_t ppn);
 
 #ifdef CONFIG_PAGE_COLORING
 #define NUM_KERNEL_COLORS 8
index c076ff4..2cd535e 100644 (file)
@@ -1,10 +1,6 @@
 // Simple implementation of cprintf console output for the kernel,
 // based on printfmt() and the kernel console's cputchar().
 
-#ifdef __SHARC__
-#pragma nosharc
-#endif
-
 #include <arch/arch.h>
 #include <ros/common.h>
 
@@ -27,8 +23,8 @@ void putch(int ch, int **cnt)
 void buffered_putch(int ch, int **cnt)
 {
        #define buffered_putch_bufsize 64
-       static char LCKD(&output_lock) (RO buf)[buffered_putch_bufsize];
-       static int LCKD(&output_lock) buflen = 0;
+       static char buf[buffered_putch_bufsize];
+       static int buflen = 0;
 
        if(ch != -1)
        {
@@ -72,11 +68,7 @@ int vcprintf(const char *fmt, va_list ap)
        }
 
        // do the buffered printf
-       #ifdef __DEPUTY__
-       vprintfmt(buffered_putch, &cntp, fmt, ap);
-       #else
        vprintfmt((void*)buffered_putch, (void*)&cntp, fmt, ap);
-       #endif
 
        // write out remaining chars in the buffer
        buffered_putch(-1,&cntp);
index 8018966..bf25f83 100644 (file)
@@ -1,11 +1,6 @@
 // Stripped-down primitive printf-style formatting routines,
 // used in common by printf, sprintf, fprintf, etc.
 // This code is also used by both the kernel and user programs.
-
-#ifdef __SHARC__
-#pragma nosharc
-#endif
-
 #include <ros/common.h>
 #include <error.h>
 #include <stdio.h>
@@ -40,21 +35,12 @@ void printnum(void (*putch)(int, void**), void **putdat,
        }
 }
 
-// Main function to format and print a string.
-#ifdef __DEPUTY__
-void printfmt(void (*putch)(int, TV(t)), TV(t) putdat, const char *fmt, ...);
-#else
 void printfmt(void (*putch)(int, void**), void **putdat, const char *fmt, ...);
-#endif
 
-#ifdef __DEPUTY__
-void vprintfmt(void (*putch)(int, TV(t)), TV(t) putdat, const char *fmt, va_list ap)
-#else
 void vprintfmt(void (*putch)(int, void**), void **putdat, const char *fmt, va_list ap)
-#endif
 {
-       register const char *NTS p;
-       const char *NTS last_fmt;
+       register const char *p;
+       const char *last_fmt;
        register int ch, err;
        unsigned long long num;
        int base, lflag, width, precision, altflag;
@@ -275,11 +261,7 @@ void vprintfmt(void (*putch)(int, void**), void **putdat, const char *fmt, va_li
        }
 }
 
-#ifdef __DEPUTY__
-void printfmt(void (*putch)(int, TV(t)), TV(t) putdat, const char *fmt, ...)
-#else
 void printfmt(void (*putch)(int, void**), void **putdat, const char *fmt, ...)
-#endif
 {
        va_list ap;
 
@@ -290,12 +272,12 @@ void printfmt(void (*putch)(int, void**), void **putdat, const char *fmt, ...)
 }
 
 typedef struct sprintbuf {
-       char *BND(__this,ebuf) buf;
-       char *SNT ebuf;
+       char *buf;
+       char *ebuf;
        int cnt;
 } sprintbuf_t;
 
-static void sprintputch(int ch, sprintbuf_t *NONNULL *NONNULL b)
+static void sprintputch(int ch, sprintbuf_t **b)
 {
        if ((*b)->buf < (*b)->ebuf) {
                *((*b)->buf++) = ch;
@@ -306,7 +288,7 @@ static void sprintputch(int ch, sprintbuf_t *NONNULL *NONNULL b)
 int vsnprintf(char *buf, int n, const char *fmt, va_list ap)
 {
        sprintbuf_t b;// = {buf, buf+n-1, 0};
-       sprintbuf_t *COUNT(1) NONNULL bp = &b;
+       sprintbuf_t *bp = &b;
 
        /* this isn't quite the snprintf 'spec', but errors aren't helpful */
        if (buf == NULL || n < 1)
@@ -317,12 +299,7 @@ int vsnprintf(char *buf, int n, const char *fmt, va_list ap)
        b.cnt = 0;
        b.buf = buf;
 
-       // print the string to the buffer
-       #ifdef __DEPUTY__
-       vprintfmt((void*)sprintputch, (sprintbuf_t *NONNULL*NONNULL)&bp, fmt, ap);
-       #else
        vprintfmt((void*)sprintputch, (void*)&bp, fmt, ap);
-       #endif
 
        // null terminate the buffer
        *b.buf = '\0';
index 5896add..68b3357 100644 (file)
@@ -2,10 +2,6 @@
  * Barret Rhoden <brho@cs.berkeley.edu>
  * See LICENSE for details. */
 
-#ifdef __SHARC__
-#pragma nosharc
-#endif
-
 #include <event.h>
 #include <arch/arch.h>
 #include <bitmask.h>
@@ -311,8 +307,6 @@ error_t proc_alloc(struct proc **pp, struct proc *parent, int flags)
        /* zero everything by default, other specific items are set below */
        memset(p, 0, sizeof(struct proc));
 
-       { INITSTRUCT(*p)
-
        /* only one ref, which we pass back.  the old 'existence' ref is managed by
         * the ksched */
        kref_init(&p->p_kref, __proc_free, 1);
@@ -411,7 +405,6 @@ error_t proc_alloc(struct proc **pp, struct proc *parent, int flags)
        memset(&p->vmm, 0, sizeof(struct vmm));
        qlock_init(&p->vmm.qlock);
        printd("[%08x] new process %08x\n", current ? current->pid : 0, p->pid);
-       } // INIT_STRUCT
        *pp = p;
        return 0;
 }
@@ -1125,7 +1118,7 @@ void __proc_save_context_s(struct proc *p, struct user_context *ctx)
  * We disable interrupts for most of it too, since we need to protect
  * current_ctx and not race with __notify (which doesn't play well with
  * concurrent yielders). */
-void proc_yield(struct proc *SAFE p, bool being_nice)
+void proc_yield(struct proc *p, bool being_nice)
 {
        uint32_t vcoreid, pcoreid = core_id();
        struct per_cpu_info *pcpui = &per_cpu_info[pcoreid];
@@ -2065,7 +2058,7 @@ void __startcore(uint32_t srcid, long a0, long a1, long a2)
        uint32_t vcoreid = (uint32_t)a1;
        uint32_t coreid = core_id();
        struct per_cpu_info *pcpui = &per_cpu_info[coreid];
-       struct proc *p_to_run = (struct proc *CT(1))a0;
+       struct proc *p_to_run = (struct proc *)a0;
        uint32_t old_nr_preempts_sent = (uint32_t)a2;
 
        assert(p_to_run);
index 2df6369..5565e24 100644 (file)
@@ -1,7 +1,3 @@
-#ifdef __SHARC__
-#pragma nosharc
-#endif
-
 #include <error.h>
 #include <stdio.h>
 #include <assert.h>
index 1589218..a918c79 100644 (file)
@@ -4,10 +4,6 @@
  *
  * Scheduling and dispatching. */
 
-#ifdef __SHARC__
-#pragma nosharc
-#endif
-
 #include <schedule.h>
 #include <process.h>
 #include <monitor.h>
index d394d70..91d9137 100644 (file)
  * controlling bufctl at the top of the slab object.  Fix this with TODO (BUF).
  */
 
-#ifdef __IVY__
-#pragma nodeputy
-#pragma nosharc
-#endif
-
 #include <slab.h>
 #include <stdio.h>
 #include <assert.h>
index 5c48a67..701cfb6 100644 (file)
@@ -4,10 +4,6 @@
  * See LICENSE for details.
  */
 
-#ifdef __SHARC__
-#pragma nosharc
-#endif
-
 #include <arch/arch.h>
 #include <atomic.h>
 #include <smp.h>
index 829c1b6..6964240 100644 (file)
@@ -1,9 +1,5 @@
 // Basic string routines.  Not hardware optimized, but not shabby.
 
-#ifdef __SHARC__
-#pragma nosharc
-#endif
-
 #include <stdio.h>
 #include <string.h>
 #include <ros/memlayout.h>
@@ -56,7 +52,6 @@ strncpy(char *dst, const char *src, size_t size) {
 
        ret = dst;
        for (i = 0; i < size; i++) {
-               // TODO: ivy bitches about this
                *dst++ = *src;
                // If strlen(src) < size, null-pad 'dst' out to 'size' chars
                if (*src != '\0')
@@ -201,9 +196,9 @@ memsetw(long* _v, long c, size_t n)
   } while(0)
 
 void *
-memset(void *COUNT(_n) v, int c, size_t _n)
+memset(void *v, int c, size_t _n)
 {
-       char *BND(v,v+_n) p;
+       char *p;
        size_t n0;
        size_t n = _n;
 
@@ -273,14 +268,14 @@ memcpy(void* dst, const void* src, size_t _n)
 }
 
 void *
-memmove(void *COUNT(_n) dst, const void *COUNT(_n) src, size_t _n)
+memmove(void *dst, const void *src, size_t _n)
 {
 #ifdef CONFIG_X86
        bcopy(src, dst, _n);
        return dst;
 #else
-       const char *BND(src,src+_n) s;
-       char *BND(dst,dst+_n) d;
+       const char *s;
+       char *d;
        size_t n = _n;
        
        s = src;
@@ -299,10 +294,10 @@ memmove(void *COUNT(_n) dst, const void *COUNT(_n) src, size_t _n)
 }
 
 int
-memcmp(const void *COUNT(n) v1, const void *COUNT(n) v2, size_t n)
+memcmp(const void *v1, const void *v2, size_t n)
 {
-       const uint8_t *BND(v1,v1+n) s1 = (const uint8_t *) v1;
-       const uint8_t *BND(v2,v2+n) s2 = (const uint8_t *) v2;
+       const uint8_t *s1 = (const uint8_t *) v1;
+       const uint8_t *s2 = (const uint8_t *) v2;
 
        while (n-- > 0) {
                if (*s1 != *s2)
@@ -314,14 +309,14 @@ memcmp(const void *COUNT(n) v1, const void *COUNT(n) v2, size_t n)
 }
 
 void *
-memfind(const void *COUNT(n) _s, int c, size_t n)
+memfind(const void *_s, int c, size_t n)
 {
-       const void *SNT ends = (const char *) _s + n;
-       const void *BND(_s,_s + n) s = _s;
+       const void *ends = (const char *) _s + n;
+       const void *s = _s;
        for (; s < ends; s++)
                if (*(const unsigned char *) s == (unsigned char) c)
                        break;
-       return (void *BND(_s,_s+n)) s;
+       return (void *)s;
 }
 
 long
index 099d83f..8e91d58 100644 (file)
@@ -1,9 +1,5 @@
 /* See COPYRIGHT for copyright information. */
 
-#ifdef __SHARC__
-#pragma nosharc
-#endif
-
 //#define DEBUG
 #include <ros/common.h>
 #include <arch/types.h>
@@ -420,7 +416,7 @@ static int sys_cache_invalidate(void)
 /* sys_reboot(): called directly from dispatch table. */
 
 /* Print a string to the system console. */
-static ssize_t sys_cputs(struct proc *p, const char *DANGEROUS string,
+static ssize_t sys_cputs(struct proc *p, const char *string,
                          size_t strlen)
 {
        char *t_string;
@@ -975,7 +971,7 @@ static intreg_t sys_munmap(struct proc *p, void *addr, size_t len)
 }
 
 static ssize_t sys_shared_page_alloc(env_t* p1,
-                                     void**DANGEROUS _addr, pid_t p2_id,
+                                     void **_addr, pid_t p2_id,
                                      int p1_flags, int p2_flags
                                     )
 {
@@ -983,7 +979,7 @@ static ssize_t sys_shared_page_alloc(env_t* p1,
        return -1;
 }
 
-static int sys_shared_page_free(env_t* p1, void*DANGEROUS addr, pid_t p2)
+static int sys_shared_page_free(env_t* p1, void *addr, pid_t p2)
 {
        return -1;
 }
diff --git a/kern/src/sysevent.c b/kern/src/sysevent.c
deleted file mode 100644 (file)
index a6ce6fb..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-/* Copyright (c) 2009 The Regents of the University of California. 
- * See the COPYRIGHT files at the top of this source tree for full 
- * license information.
- * 
- * Kevin Klues <klueska@cs.berkeley.edu>    
- */
-
-#ifdef __SHARC__
-#pragma nosharc
-#endif
index a6357f3..38b4d92 100644 (file)
  * @return -EFAULT  the page assocaited with 'va' is not present, the user 
  *                  lacks the proper permissions, or there was an invalid 'va'
  */
-int memcpy_from_user(struct proc *p, void *dest, const void *DANGEROUS va,
+int memcpy_from_user(struct proc *p, void *dest, const void *va,
                      size_t len)
 {
-       const void *DANGEROUS start, *DANGEROUS end;
+       const void *start, *end;
        size_t num_pages, i;
        pte_t pte;
        uintptr_t perm = PTE_P | PTE_USER_RO;
@@ -42,7 +42,7 @@ int memcpy_from_user(struct proc *p, void *dest, const void *DANGEROUS va,
        start = (void*)ROUNDDOWN((uintptr_t)va, PGSIZE);
        end = (void*)ROUNDUP((uintptr_t)va + len, PGSIZE);
 
-       if (start >= (void*SNT)ULIM || end > (void*SNT)ULIM)
+       if (start >= (void*)ULIM || end > (void*)ULIM)
                return -EFAULT;
 
        num_pages = LA2PPN(end - start);
@@ -97,7 +97,7 @@ int memcpy_from_user_errno(struct proc *p, void *dst, const void *src, int len)
  */
 int memcpy_to_user(struct proc *p, void *va, const void *src, size_t len)
 {
-       const void *DANGEROUS start, *DANGEROUS end;
+       const void *start, *end;
        size_t num_pages, i;
        pte_t pte;
        uintptr_t perm = PTE_P | PTE_USER_RW;
@@ -108,7 +108,7 @@ int memcpy_to_user(struct proc *p, void *va, const void *src, size_t len)
        start = (void*)ROUNDDOWN((uintptr_t)va, PGSIZE);
        end = (void*)ROUNDUP((uintptr_t)va + len, PGSIZE);
 
-       if (start >= (void*SNT)ULIM || end > (void*SNT)ULIM)
+       if (start >= (void*)ULIM || end > (void*)ULIM)
                return -EFAULT;
 
        num_pages = LA2PPN(end - start);
index 05232e9..a788258 100644 (file)
@@ -5,7 +5,7 @@
 
 int main(int argc, char** argv)
 {
-       sys_cputs((char*SAFE)TC(1), 1);
+       sys_cputs((char*)1, 1);
        return 0;
 }
 
index 1edac84..379b5f0 100644 (file)
@@ -7,7 +7,7 @@ int main(int argc, char** argv)
 {
        while(1);
        // try to print the kernel entry point as a string!  mua ha ha!
-       sys_cputs((char*SAFE)TC(0xc0100020), 100);
+       sys_cputs((char*)0xc0100020, 100);
        return 0;
 }
 
index b6f231a..507f1ba 100644 (file)
@@ -38,8 +38,8 @@ int main(int argc, char** argv)
                switch (test) {
                        case TEST_MMAP:
                                printf("Testing MMAP\n");
-                               void *CT(8*PGSIZE) addr;
-                               addr = sys_mmap((void*SNT)USTACKTOP - 20*PGSIZE, 8*PGSIZE, 3,
+                               void *addr;
+                               addr = sys_mmap((void*)USTACKTOP - 20*PGSIZE, 8*PGSIZE, 3,
                                                MAP_FIXED | MAP_ANONYMOUS, -1, 0);
                                printf("got addr = 0x%08x\n", addr);
                                *(int*)addr = 0xdeadbeef;
@@ -49,9 +49,7 @@ int main(int argc, char** argv)
                                printf("reading addr+3pg: 0x%08x\n", *(int*)(addr + 3*PGSIZE));
                                // this should fault
                                printf("Should page fault and die now.\n");
-                               { TRUSTEDBLOCK
                                *(int*)(addr - 3*PGSIZE) = 0xdeadbeef;
-                               }
                                printf("Should not see me!!!!!!!!!!!!!!!!!!\n");
                                while(1);
                        case TEST_ONE_CORE:
index 70322bc..7c2e3c7 100644 (file)
@@ -1,4 +1,3 @@
-#CC = ivycc --deputy
 CFLAGS += -I.
 V = @
 
index 8a28bcf..3a7c1ab 100644 (file)
@@ -36,7 +36,7 @@ static void putch(int ch, debugbuf_t **b)
 int ros_vdebug(const char *fmt, va_list ap)
 {
        debugbuf_t b;
-       debugbuf_t *COUNT(1) bp = &b;
+       debugbuf_t *bp = &b;
 
        b.idx = 0;
        b.cnt = 0;
index 9aa521c..4d1e1d3 100644 (file)
@@ -7,13 +7,8 @@
  * Print a number (base <= 16) in reverse order,
  * using specified putch function and associated pointer putdat.
  */
-#ifdef __DEPUTY__
-static void printnum(void (*putch)(int, TV(t)), TV(t) putdat,
-                        unsigned long long num, unsigned base, int width, int padc)
-#else
 static void printnum(void (*putch)(int, void**), void **putdat,
                         unsigned long long num, unsigned base, int width, int padc)
-#endif
 {
        // first recursively print all preceding (more significant) digits
        if (num >= base) {
@@ -29,16 +24,11 @@ static void printnum(void (*putch)(int, void**), void **putdat,
 }
 
 // Main function to format and print a string.
-#ifdef __DEPUTY__
-void ros_debugfmt(void (*putch)(int, TV(t)), TV(t) putdat, const char *fmt, ...);
-void ros_vdebugfmt(void (*putch)(int, TV(t)), TV(t) putdat, const char *fmt, va_list ap)
-#else
 void ros_debugfmt(void (*putch)(int, void**), void **putdat, const char *fmt, ...);
 void ros_vdebugfmt(void (*putch)(int, void**), void **putdat, const char *fmt, va_list ap)
-#endif
 {
-       register const char *NTS p;
-       const char *NTS last_fmt;
+       register const char *p;
+       const char *last_fmt;
        register int ch, err;
        unsigned long long num;
        int base, lflag, width, precision, altflag;
@@ -127,7 +117,7 @@ void ros_vdebugfmt(void (*putch)(int, void**), void **putdat, const char *fmt, v
                        goto putstring;
 */
                case 's':
-                       if ((p = va_arg(ap, char *NT)) == NULL)
+                       if ((p = va_arg(ap, char *)) == NULL)
                                p = "(null)";
 //putstring:
                        if (width > 0 && padc != '-')
@@ -205,11 +195,7 @@ void ros_vdebugfmt(void (*putch)(int, void**), void **putdat, const char *fmt, v
        }
 }
 
-#ifdef __DEPUTY__
-void ros_debugfmt(void (*putch)(int, TV(t)), TV(t) putdat, const char *fmt, ...)
-#else
 void ros_debugfmt(void (*putch)(int, void**), void **putdat, const char *fmt, ...)
-#endif
 {
        va_list ap;
 
index 397b67f..d81ac9e 100644 (file)
@@ -39,12 +39,12 @@ void        sys_yield(bool being_nice);
 int         sys_proc_create(char *path, size_t path_l, char *argv[],
                             char *envp[], int flags);
 int         sys_proc_run(int pid);
-ssize_t     sys_shared_page_alloc(void *COUNT(PGSIZE) *addr, pid_t p2, 
+ssize_t     sys_shared_page_alloc(void **addr, pid_t p2, 
                                   int p1_flags, int p2_flags);
-ssize_t     sys_shared_page_free(void *COUNT(PGSIZE) addr, pid_t p2);
+ssize_t     sys_shared_page_free(void *addr, pid_t p2);
 void        sys_reboot();
-void *COUNT(length) sys_mmap(void *SNT addr, size_t length, int prot, int flags,
-                             int fd, size_t offset);
+void           *sys_mmap(void *SNT addr, size_t length, int prot, int flags,
+                      int fd, size_t offset);
 int                    sys_provision(int pid, unsigned int res_type, long res_val);
 int         sys_notify(int pid, unsigned int ev_type, struct event_msg *u_msg);
 int         sys_self_notify(uint32_t vcoreid, unsigned int ev_type,
index 948fbe8..2508974 100644 (file)
@@ -11,7 +11,7 @@ typedef struct struct_##p {
        uint32_t size;                                                         \
        uint32_t free;                                                         \
        uint32_t index;                                                        \
-       _type*COUNT(1) queue[(sz)];                                                       \
+       _type *queue[(sz)];                                                       \
        _type pool[(sz)];                                                         \
 } p##_t;
 
index 0a5d4d9..f5aae39 100644 (file)
@@ -49,26 +49,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
index faa351a..f2db505 100644 (file)
@@ -17,8 +17,8 @@ static inline bool atomic_cas(atomic_t *addr, long exp_val, long new_val);
 static inline bool atomic_cas_ptr(void **addr, void *exp_val, void *new_val);
 static inline bool atomic_cas_u32(uint32_t *addr, uint32_t exp_val,
                                   uint32_t new_val);
-static inline void atomic_andb(volatile uint8_t RACY* number, uint8_t mask);
-static inline void atomic_orb(volatile uint8_t RACY* number, uint8_t mask);
+static inline void atomic_andb(volatile uint8_t *number, uint8_t mask);
+static inline void atomic_orb(volatile uint8_t *number, uint8_t mask);
 
 /* Inlined functions declared above */
 static inline void atomic_init(atomic_t *number, long val)
index 7b19859..1384bd9 100644 (file)
@@ -49,26 +49,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
index 802d10f..9bbda45 100644 (file)
@@ -72,7 +72,7 @@ int sys_proc_run(int pid)
        return ros_syscall(SYS_proc_run, pid, 0, 0, 0, 0, 0);
 }
 
-void *CT(length) sys_mmap(void *SNT addr, size_t length, int prot, int flags,
+void *sys_mmap(void *SNT addr, size_t length, int prot, int flags,
                           int fd, size_t offset)
 {
        return (void*)ros_syscall(SYS_mmap, addr, length, prot, flags, fd, offset);