Merge current larva changes into tadpole
diff --git a/libs/os/include/os/arch/arm/os/os_arch.h b/libs/os/include/os/arch/arm/os/os_arch.h
deleted file mode 100755
index 0917dec..0000000
--- a/libs/os/include/os/arch/arm/os/os_arch.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
- * Copyright (c) 2015 Runtime Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef _OS_ARCH_ARM_H 
-#define _OS_ARCH_ARM_H 
-
-#include <stdint.h>
-
-struct os_task;
-
-/* Run in priviliged or unprivileged Thread mode */
-#define OS_RUN_UNPRIV       (0)
-#define OS_RUN_PRIV         (1)
-
-/* Time tick in miliseconds that the OS runs */
-#define OS_TIME_TICK        (1)
-#define OS_TICKS_PER_SEC    (OS_TIME_TICK * 1000)
-
-/* CPU status register */
-typedef uint32_t os_sr_t;
-/* Stack type, aligned to a 32-bit word. */
-#define OS_STACK_PATTERN    (0xdeadbeef)
-
-typedef uint32_t os_stack_t;
-#define OS_ALIGNMENT        (4) 
-#define OS_STACK_ALIGNMENT  (8)
-
-#define OS_STACK_ALIGN(__nmemb) \
-    (OS_ALIGN((__nmemb), OS_STACK_ALIGNMENT))
-
-/* Enter a critical section, save processor state, and block interrupts */
-#define OS_ENTER_CRITICAL(__os_sr) (__os_sr = os_arch_save_sr()) 
-/* Exit a critical section, restore processor state and unblock interrupts */
-#define OS_EXIT_CRITICAL(__os_sr) (os_arch_restore_sr(__os_sr))
-
-/* Define special stackos sections */
-#define sec_data_core   __attribute__((section(".data.core")))
-#define sec_bss_core    __attribute__((section(".bss.core")))
-#define sec_bss_nz_core __attribute__((section(".bss.core.nz")))
-
-/* Define "assert" funtion */
-void _Die(char *file, int line);
-
-os_stack_t *os_arch_task_stack_init(struct os_task *, os_stack_t *, int);
-void timer_handler(void);
-void os_arch_ctx_sw(struct os_task *);
-void os_arch_ctx_sw_isr(struct os_task *);
-os_sr_t os_arch_save_sr(void);
-void os_arch_restore_sr(os_sr_t);
-void os_arch_init(void);
-uint32_t os_arch_start(void);
-os_error_t os_arch_os_init(void);
-os_error_t os_arch_os_start(void);
-void os_set_env(void);
-void os_arch_init_task_stack(os_stack_t *sf);
-
-/* External function prototypes supplied by BSP */
-void os_bsp_systick_init(uint32_t os_tick_usecs);
-void os_bsp_init(void);
-void os_bsp_ctx_sw(void);
-
-#endif /* _OS_ARCH_X86_H */ 
diff --git a/libs/os/include/os/os_mbuf.h b/libs/os/include/os/os_mbuf.h
index 280b75f..efc4cc9 100644
--- a/libs/os/include/os/os_mbuf.h
+++ b/libs/os/include/os/os_mbuf.h
@@ -112,7 +112,8 @@
     ((__om)->om_flags & OS_MBUF_F_MASK(OS_MBUF_F_PKTHDR))
 
 
-#define OS_MBUF_PKTHDR(__om) ((struct os_mbuf_pkthdr *) &(__om)->om_databuf[0])
+#define OS_MBUF_PKTHDR(__om) ((struct os_mbuf_pkthdr *)     \
+    ((uint8_t *)&(__om)->om_data + sizeof(struct os_mbuf)))
 
 /*
  * Access the data of a mbuf, and cast it to type
@@ -123,9 +124,6 @@
 #define OS_MBUF_DATA(__om, __type) \
      (__type) ((__om)->om_data)
 
-
-
-
 /**
  * Returns the end offset of a mbuf buffer 
  * 
diff --git a/libs/os/src/arch/arm/cortex-m/m4/HAL_CM4.s b/libs/os/src/arch/arm/cortex-m/m4/HAL_CM4.s
deleted file mode 100755
index 1c5651d..0000000
--- a/libs/os/src/arch/arm/cortex-m/m4/HAL_CM4.s
+++ /dev/null
@@ -1,208 +0,0 @@
-/**
- * Copyright (c) 2015 Runtime Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*----------------------------------------------------------------------------
- * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH
- * All rights reserved.
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *  - Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *  - Neither the name of ARM  nor the names of its contributors may be used
- *    to endorse or promote products derived from this software without
- *    specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *---------------------------------------------------------------------------*/
-
-        .file   "HAL_CM4.S"
-        .syntax unified
-
-/*----------------------------------------------------------------------------
- *      Functions
- *---------------------------------------------------------------------------*/
-
-        .thumb
-
-        .section ".text"
-        .align  2
-
-/*--------------------------- os_set_env ------------------------------------*/
-#       void os_set_env (void);
-        /* Switch to Unprivileged/Privileged Thread mode, use PSP. */
-
-        .thumb_func
-        .type   os_set_env, %function
-        .global os_set_env
-os_set_env:
-        .fnstart
-        .cantunwind
-
-        MOV     R0,SP                   /* PSP = MSP */
-        MSR     PSP,R0
-        LDR     R0,=os_flags
-        LDRB    R0,[R0]
-        LSLS    R0,#31
-        ITE     NE
-        MOVNE   R0,#0x02                /* Privileged Thread mode, use PSP */
-        MOVEQ   R0,#0x03                /* Unprivileged Thread mode, use PSP */
-        MSR     CONTROL,R0
-        ISB
-        BX      LR
-
-        .fnend
-        .size   os_set_env, .-os_set_env
-/*--------------------------- os_set_env ------------------------------------*/
-
-
-/*--------------------------- os_arch_init_task_stack------------------------*/
-#       void os_arch_init_task_stack(os_stack_t *sf);
-# NOTE: This function only stores R4 through R11 on stack. The reason we do 
-# this is that the application may have stored some values in some of the
-# registers and we want to preserve those values (position independent code
-# is a good example). The other registers are handled in the C startup code.
-        .thumb_func
-        .type   os_arch_init_task_stack, %function
-        .global os_arch_init_task_stack
-os_arch_init_task_stack:
-        .fnstart
-
-        STMIA   R0,{R4-R11}
-        BX      LR
-
-        .fnend
-        .size   os_arch_init_task_stack, .-os_arch_init_task_stack
-/*--------------------------- os_set_env ------------------------------------*/
-
-
-/*-------------------------- SVC_Handler ------------------------------------*/
-
-#       void SVC_Handler (void);
-
-        .thumb_func
-        .type   SVC_Handler, %function
-        .global SVC_Handler
-SVC_Handler:
-        .fnstart
-        .cantunwind
-
-        MRS     R0,PSP                  /* Read PSP */
-        LDR     R1,[R0,#24]             /* Read Saved PC from Stack */
-        LDRB    R1,[R1,#-2]             /* Load SVC Number */
-        CBNZ    R1,SVC_User
-
-        LDM     R0,{R0-R3,R12}          /* Read R0-R3,R12 from stack */
-        PUSH    {R4,LR}                 /* Save EXC_RETURN */
-        BLX     R12                     /* Call SVC Function */
-        POP     {R4,LR}                 /* Restore EXC_RETURN */
-
-        MRS     R12,PSP                 /* Read PSP */
-        STM     R12,{R0-R2}             /* Store return values */
-        BX      LR                      /* Return from interrupt */
-
-        /*------------------- User SVC ------------------------------*/
-SVC_User:
-        PUSH    {R4,LR}                 /* Save EXC_RETURN */
-        LDR     R2,=SVC_Count
-        LDR     R2,[R2]
-        CMP     R1,R2
-        BHI     SVC_Done                /* Overflow */
-
-        LDR     R4,=SVC_Table-4
-        LDR     R4,[R4,R1,LSL #2]       /* Load SVC Function Address */
-
-        LDM     R0,{R0-R3,R12}          /* Read R0-R3,R12 from stack */
-        BLX     R4                      /* Call SVC Function */
-
-        MRS     R12,PSP
-        STM     R12,{R0-R3}             /* Function return values */
-SVC_Done:
-        POP     {R4,LR}                 /* Restore EXC_RETURN */
-        BX      LR                      /* Return from interrupt */
-
-        .fnend
-        .size   SVC_Handler, .-SVC_Handler
-
-
-/*-------------------------- PendSV_Handler ---------------------------------*/
-
-#       void PendSV_Handler (void);
-
-        .thumb_func
-        .type   PendSV_Handler, %function
-        .global PendSV_Handler
-PendSV_Handler:
-        .fnstart
-        .cantunwind
-
-        LDR     R3,=g_os_run_list       /* Get highest priority task ready to run */
-        LDR     R2,[R3]                 /* Store in R2 */
-        LDR     R3,=g_current_task      /* Get current task */
-        LDR     R1,[R3]                 /* Current task in R1 */
-        CMP     R1,R2
-        IT      EQ
-        BXEQ    LR                      /* RETI, no task switch */
-
-        MRS     R12,PSP                 /* Read PSP */
-        STMDB   R12!,{R4-R11}           /* Save Old context */
-        STR     R12,[R1,#0]             /* Update stack pointer in current task */
-        STR     R2,[R3]                 /* g_current_task = highest ready */
-
-        LDR     R12,[R2,#0]             /* get stack pointer of task we will start */
-        LDMIA   R12!,{R4-R11}           /* Restore New Context */
-        MSR     PSP,R12                 /* Write PSP */
-        BX      LR                      /* Return to Thread Mode */
-
-        .fnend
-        .size   PendSV_Handler, .-PendSV_Handler
-
-
-/*-------------------------- SysTick_Handler --------------------------------*/
-
-#       void SysTick_Handler (void);
-        .thumb_func
-        .type   SysTick_Handler, %function
-        .global SysTick_Handler
-SysTick_Handler:
-        .fnstart
-        .cantunwind
-
-        PUSH    {R4,LR}                 /* Save EXC_RETURN */
-        BL      timer_handler
-        POP     {R4,LR}                 /* Restore EXC_RETURN */
-        BX      LR
-
-        .fnend
-        .size   SysTick_Handler, .-SysTick_Handler
-
-        .end
-
-/*----------------------------------------------------------------------------
- * end of file
- *---------------------------------------------------------------------------*/
diff --git a/libs/os/src/arch/arm/cortex-m/m4/SVC_Table.s b/libs/os/src/arch/arm/cortex-m/m4/SVC_Table.s
deleted file mode 100755
index 8a252f7..0000000
--- a/libs/os/src/arch/arm/cortex-m/m4/SVC_Table.s
+++ /dev/null
@@ -1,73 +0,0 @@
-; /**
-; * Copyright (c) 2015 Runtime Inc.
-; *
-; * Licensed under the Apache License, Version 2.0 (the "License");
-; * you may not use this file except in compliance with the License.
-; * You may obtain a copy of the License at
-; * 
-; *   http://www.apache.org/licenses/LICENSE-2.0
-; *
-; * Unless required by applicable law or agreed to in writing, software
-; * distributed under the License is distributed on an "AS IS" BASIS,
-; * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-; * See the License for the specific language governing permissions and
-; * limitations under the License.
-; */
-;
-;
-;/*----------------------------------------------------------------------------
-; *      RL-ARM - RTX
-; *----------------------------------------------------------------------------
-; *      Name:    SVC_TABLE.S
-; *      Purpose: Pre-defined SVC Table for Cortex-M
-; *      Rev.:    V4.70
-; *----------------------------------------------------------------------------
-; *
-; * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH
-; * All rights reserved.
-; * Redistribution and use in source and binary forms, with or without
-; * modification, are permitted provided that the following conditions are met:
-; *  - Redistributions of source code must retain the above copyright
-; *    notice, this list of conditions and the following disclaimer.
-; *  - Redistributions in binary form must reproduce the above copyright
-; *    notice, this list of conditions and the following disclaimer in the
-; *    documentation and/or other materials provided with the distribution.
-; *  - Neither the name of ARM  nor the names of its contributors may be used
-; *    to endorse or promote products derived from this software without
-; *    specific prior written permission.
-; *
-; * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-; * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-; * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-; * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
-; * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-; * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-; * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-; * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-; * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-; * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-; * POSSIBILITY OF SUCH DAMAGE.
-; *---------------------------------------------------------------------------*/
-
-
-        .file   "SVC_Table.S"
-
-
-        .section ".svc_table"
-
-        .global  SVC_Table
-SVC_Table:
-/* Insert user SVC functions here. SVC 0 used by RTL Kernel. */
-#       .long   __SVC_1                 /* user SVC function */
-SVC_End:
-
-        .global  SVC_Count
-SVC_Count:
-        .long   (SVC_End-SVC_Table)/4
-
-
-        .end
-
-/*----------------------------------------------------------------------------
- * end of file
- *---------------------------------------------------------------------------*/
diff --git a/libs/os/src/arch/arm/cortex-m/os_arch_arm.c b/libs/os/src/arch/arm/cortex-m/os_arch_arm.c
deleted file mode 100755
index 2ef08da..0000000
--- a/libs/os/src/arch/arm/cortex-m/os_arch_arm.c
+++ /dev/null
@@ -1,281 +0,0 @@
-/**
- * Copyright (c) 2015 Runtime Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "os/os.h"
-#include "os/os_arch.h"
-
-/* XXX: How do we know which cortex to use? */
-#define __CMSIS_GENERIC
-#include "cmsis-core/core_cm4.h"
-
-/* Initial program status register */
-#define INITIAL_xPSR    0x01000000
-
-/* Stack frame structure */
-struct stack_frame {
-    uint32_t    r4;
-    uint32_t    r5;
-    uint32_t    r6;
-    uint32_t    r7;
-    uint32_t    r8;
-    uint32_t    r9;
-    uint32_t    r10;
-    uint32_t    r11;
-    uint32_t    r0;
-    uint32_t    r1;
-    uint32_t    r2;
-    uint32_t    r3;
-    uint32_t    r12;
-    uint32_t    lr;
-    uint32_t    pc;
-    uint32_t    xpsr;
-};
-
-int     die_line;
-char    *die_module;
-
-#define SVC_ArgN(n) \
-  register int __r##n __asm("r"#n);
-
-#define SVC_Arg0()  \
-  SVC_ArgN(0)       \
-  SVC_ArgN(1)       \
-  SVC_ArgN(2)       \
-  SVC_ArgN(3)
-
-#if (defined (__CORTEX_M0)) || defined (__CORTEX_M0PLUS)
-#define SVC_Call(f)                                                     \
-  __asm volatile                                                        \
-  (                                                                     \
-    "ldr r7,="#f"\n\t"                                                  \
-    "mov r12,r7\n\t"                                                    \
-    "svc 0"                                                             \
-    :               "=r" (__r0), "=r" (__r1), "=r" (__r2), "=r" (__r3)  \
-    :                "r" (__r0),  "r" (__r1),  "r" (__r2),  "r" (__r3)  \
-    : "r7", "r12", "lr", "cc"                                           \
-  );
-#else
-#define SVC_Call(f)                                                     \
-  __asm volatile                                                        \
-  (                                                                     \
-    "ldr r12,="#f"\n\t"                                                 \
-    "svc 0"                                                             \
-    :               "=r" (__r0), "=r" (__r1), "=r" (__r2), "=r" (__r3)  \
-    :                "r" (__r0),  "r" (__r1),  "r" (__r2),  "r" (__r3)  \
-    : "r12", "lr", "cc"                                                 \
-  );
-#endif
-
-/* XXX: determine how we will deal with running un-privileged */
-uint32_t os_flags = OS_RUN_PRIV;
-
-void
-timer_handler(void)
-{
-    os_time_tick();
-    os_callout_tick();
-    os_sched_os_timer_exp();
-    os_sched(NULL, 1); 
-}
-
-void
-os_arch_ctx_sw(struct os_task *t)
-{
-    os_bsp_ctx_sw();
-}
-
-void
-os_arch_ctx_sw_isr(struct os_task *t)
-{
-    os_bsp_ctx_sw();
-}
-
-os_sr_t 
-os_arch_save_sr(void)
-{
-    uint32_t isr_ctx;
-
-    isr_ctx = __get_PRIMASK();
-    __disable_irq();
-    return (isr_ctx & 1); 
-}
-
-void
-os_arch_restore_sr(os_sr_t isr_ctx)
-{
-    if (!isr_ctx) {
-        __enable_irq();
-    }
-}
-
-void
-_Die(char *file, int line)
-{
-    die_line = line;
-    die_module = file;
-    while (1) {
-    }
-}
-
-os_stack_t *
-os_arch_task_stack_init(struct os_task *t, os_stack_t *stack_top, int size) 
-{
-    int i;
-    os_stack_t *s;
-    struct stack_frame *sf;
-
-    /* Get stack frame pointer */
-    s = (os_stack_t *) ((uint8_t *) stack_top - sizeof(*sf));
-
-    /* Zero out R1-R3, R12, LR */
-    for (i = 9; i < 14; ++i) {
-        s[i] = 0;
-    }
-
-    /* Set registers R4 - R11 on stack. */
-    os_arch_init_task_stack(s);
-
-    /* Set remaining portions of stack frame */
-    sf = (struct stack_frame *) s;
-    sf->xpsr = INITIAL_xPSR;
-    sf->pc = (uint32_t)t->t_func; 
-    sf->r0 = (uint32_t)t->t_arg;
-
-    return (s);
-}
-
-void
-os_arch_init(void)
-{
-    os_init_idle_task();
-}
-
-__attribute__((always_inline)) 
-static inline void
-svc_os_arch_init(void)
-{
-    SVC_Arg0();
-    SVC_Call(os_arch_init);
-}
-
-os_error_t 
-os_arch_os_init(void)
-{
-    os_error_t err;
-
-    /* Cannot be called within an ISR */
-    err = OS_ERR_IN_ISR;
-    if (__get_IPSR() == 0) {
-        err = OS_OK;
-
-        /* Call bsp related OS initializations */
-        os_bsp_init();
-
-        /* 
-         * Set the os environment. This will set stack pointers and, based
-         * on the contents of os_flags, will determine if the tasks run in
-         * priviliged or un-privileged mode.
-         */
-        os_set_env();
-
-        /* Check if priviliged or not */
-        if ((__get_CONTROL() & 1) == 0) {
-            os_arch_init();
-        } else {
-            svc_os_arch_init();
-        }
-    }
-
-    return err;
-}
-
-uint32_t
-os_arch_start(void)
-{
-    struct os_task *t;
-
-    /* Get the highest priority ready to run to set the current task */
-    t = os_sched_next_task();
-    os_sched_set_current_task(t);
-
-    /* Adjust PSP so it looks like this task just took an exception */
-    __set_PSP((uint32_t)t->t_stackptr + offsetof(struct stack_frame, r0));
-
-    /* Intitialize and start system clock timer */
-    os_bsp_systick_init(OS_TIME_TICK * 1000);
-
-    /* Mark the OS as started, right before we run our first task */
-    g_os_started = 1; 
-
-    /* Perform context switch */
-    os_arch_ctx_sw(t);
-
-    return (uint32_t)(t->t_arg);
-}
-
-__attribute__((always_inline)) 
-static inline void svc_os_arch_start(void)
-{
-    SVC_Arg0();
-    SVC_Call(os_arch_start);
-}
-
-os_error_t 
-os_arch_os_start(void)
-{
-    os_error_t err;
-
-    err = OS_ERR_IN_ISR;
-    if (__get_IPSR() == 0) {
-        /* 
-         * The following switch statement is really just a sanity check to
-         * insure that the os initialization routine was called prior to the
-         * os start routine.
-         */
-        err = OS_OK;
-        switch (__get_CONTROL() & 0x03) {
-        /* 
-         * These two cases are for completeness. Thread mode should be set
-         * to use PSP already.
-         * 
-         * Fall-through intentional!
-         */ 
-        case 0x00:
-        case 0x01:
-            err = OS_ERR_PRIV;
-            break;
-        case 0x02:
-            /* Privileged Thread mode w/SP = PSP */
-            if ((os_flags & 1) == 0) {
-                err = OS_ERR_PRIV;
-            }
-            break;
-        case 0x03:
-            /* Unpriviliged thread mode w/sp = PSP */
-            if  (os_flags & 1) {
-                err = OS_ERR_PRIV;
-            }
-            break;
-        }
-        if (err == OS_OK) {
-            /* Always start OS through SVC call */
-            svc_os_arch_start();
-        }
-    }
-
-    return err;
-}
-
diff --git a/libs/os/src/test/arch/arm/os_test_arch_arm.c b/libs/os/src/test/arch/arm/os_test_arch_arm.c
deleted file mode 100644
index 914f43f..0000000
--- a/libs/os/src/test/arch/arm/os_test_arch_arm.c
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- * Copyright (c) 2015 Runtime Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "testutil/testutil.h"
-#include "os_test_priv.h"
-
-void
-os_test_restart(void)
-{
-    tu_restart();
-}