source: svn/trunk/newcon3bcm2_21bu/dta/src/ucos_ii/os_cpu.h

Last change on this file was 2, checked in by jglee, 11 years ago

first commit

  • Property svn:executable set to *
File size: 2.4 KB
Line 
1/***************************************************************************
2 *     Copyright (c) 2003-2008, Broadcom Corporation
3 *     All Rights Reserved
4 *     Confidential Property of Broadcom Corporation
5 *
6 *  THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED SOFTWARE LICENSE
7 *  AGREEMENT  BETWEEN THE USER AND BROADCOM.  YOU HAVE NO RIGHT TO USE OR
8 *  EXPLOIT THIS MATERIAL EXCEPT SUBJECT TO THE TERMS OF SUCH AN AGREEMENT.
9 *
10 * $brcm_Workfile: $
11 * $brcm_Revision: $
12 * $brcm_Date: $
13 *
14 * Module Description:
15 *
16 * Revision History:
17 *
18 * $brcm_Log: $
19 *
20 *
21 ***************************************************************************/
22#if !defined(__OS_SPU_H__)
23#define __OS_CPU_H__
24
25#if defined(OS_CPU_GLOBALS)
26#define OS_CPU_EXT
27#else
28#define OS_CPU_EXT extern
29#endif
30
31typedef unsigned int BOOLEAN;
32typedef unsigned char INT8U;
33typedef signed char INT8S;
34typedef unsigned short INT16U;
35typedef signed short INT16S;
36typedef unsigned long INT32U;
37typedef signed long INT32S;
38
39typedef float FP32;
40typedef double FP64;
41
42typedef unsigned long OS_STK;
43
44typedef unsigned long OS_CPU_SR;
45typedef unsigned long register_t;
46typedef void (*exception_handler_t)(register_t *);
47
48#define OS_CRITICAL_METHOD 3
49#define OS_DISABLE 0
50#define OS_ENABLE 0xFF00
51
52#ifdef UCOS_II
53
54#include "bos.h"
55#define get_ucos_pw_cycles_per_second()  (g_cycles_per_tick * g_ticks_per_second)
56#define get_ucos_sw_ticks_per_second()  g_ticks_per_second
57#define get_ucos_hw_cycles_per_tick()  g_cycles_per_tick
58#define HW_TICKS_PER_SEC get_ucos_pw_cycles_per_second()
59#define SW_TICKS_PER_SEC get_ucos_sw_ticks_per_second()
60#define OS_HW_TICKS (g_cycles_per_tick)
61
62#else
63
64#define HW_TICKS_PER_SEC (216000000/2)
65#define SW_TICKS_PER_SEC 200
66#define OS_HW_TICKS (HW_TICKS_PER_SEC/SW_TICKS_PER_SEC)
67
68#endif
69
70#define OS_ENTER_CRITICAL() do { cpu_sr = MIPS_SetInterrupts(OS_DISABLE); } while(0)
71#define OS_EXIT_CRITICAL() do { MIPS_SetInterrupts(cpu_sr); } while(0)
72
73#define OS_STK_GROWTH 1
74
75#define OS_TASK_SW() do { \
76    __asm__(".set push; .set mips32; syscall 0xb; .set pop"); } while (0)
77
78extern void OSIntCtxSw(void);
79extern void OSStartHighRdy(void);
80extern OS_CPU_SR MIPS_SetInterrupts(OS_CPU_SR new_sr);
81
82extern void OSInitVectors(void);
83
84#define OS_FRAME_SIZE 48
85
86extern INT8U OSRegisterInterrupt(INT8U vector, void(*handler)(void), void(**old_handler)(void));
87
88extern INT8U OSRegisterException(INT8U vector, exception_handler_t new_handler, exception_handler_t * old_handler);
89
90#endif
Note: See TracBrowser for help on using the repository browser.