/*************************************************************************** * Copyright (c) 2003-2008, Broadcom Corporation * All Rights Reserved * Confidential Property of Broadcom Corporation * * THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED SOFTWARE LICENSE * AGREEMENT BETWEEN THE USER AND BROADCOM. YOU HAVE NO RIGHT TO USE OR * EXPLOIT THIS MATERIAL EXCEPT SUBJECT TO THE TERMS OF SUCH AN AGREEMENT. * * $brcm_Workfile: $ * $brcm_Revision: $ * $brcm_Date: $ * * Module Description: * * Revision History: * * $brcm_Log: $ * * ***************************************************************************/ #if !defined(__OS_SPU_H__) #define __OS_CPU_H__ #if defined(OS_CPU_GLOBALS) #define OS_CPU_EXT #else #define OS_CPU_EXT extern #endif typedef unsigned int BOOLEAN; typedef unsigned char INT8U; typedef signed char INT8S; typedef unsigned short INT16U; typedef signed short INT16S; typedef unsigned long INT32U; typedef signed long INT32S; typedef float FP32; typedef double FP64; typedef unsigned long OS_STK; typedef unsigned long OS_CPU_SR; typedef unsigned long register_t; typedef void (*exception_handler_t)(register_t *); #define OS_CRITICAL_METHOD 3 #define OS_DISABLE 0 #define OS_ENABLE 0xFF00 #ifdef UCOS_II #include "bos.h" #define get_ucos_pw_cycles_per_second() (g_cycles_per_tick * g_ticks_per_second) #define get_ucos_sw_ticks_per_second() g_ticks_per_second #define get_ucos_hw_cycles_per_tick() g_cycles_per_tick #define HW_TICKS_PER_SEC get_ucos_pw_cycles_per_second() #define SW_TICKS_PER_SEC get_ucos_sw_ticks_per_second() #define OS_HW_TICKS (g_cycles_per_tick) #else #define HW_TICKS_PER_SEC (216000000/2) #define SW_TICKS_PER_SEC 200 #define OS_HW_TICKS (HW_TICKS_PER_SEC/SW_TICKS_PER_SEC) #endif #define OS_ENTER_CRITICAL() do { cpu_sr = MIPS_SetInterrupts(OS_DISABLE); } while(0) #define OS_EXIT_CRITICAL() do { MIPS_SetInterrupts(cpu_sr); } while(0) #define OS_STK_GROWTH 1 #define OS_TASK_SW() do { \ __asm__(".set push; .set mips32; syscall 0xb; .set pop"); } while (0) extern void OSIntCtxSw(void); extern void OSStartHighRdy(void); extern OS_CPU_SR MIPS_SetInterrupts(OS_CPU_SR new_sr); extern void OSInitVectors(void); #define OS_FRAME_SIZE 48 extern INT8U OSRegisterInterrupt(INT8U vector, void(*handler)(void), void(**old_handler)(void)); extern INT8U OSRegisterException(INT8U vector, exception_handler_t new_handler, exception_handler_t * old_handler); #endif