OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-3.0/] [packages/] [hal/] [arm/] [arch/] [current/] [src/] [hal_mk_defs.c] - Blame information for rev 786

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 786 skrzyp
/*==========================================================================
2
//
3
//      hal_mk_defs.c
4
//
5
//      HAL (architecture) "make defs" program
6
//
7
//==========================================================================
8
// ####ECOSGPLCOPYRIGHTBEGIN####
9
// -------------------------------------------
10
// This file is part of eCos, the Embedded Configurable Operating System.
11
// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2008 Free Software Foundation, Inc.
12
//
13
// eCos is free software; you can redistribute it and/or modify it under
14
// the terms of the GNU General Public License as published by the Free
15
// Software Foundation; either version 2 or (at your option) any later
16
// version.
17
//
18
// eCos is distributed in the hope that it will be useful, but WITHOUT
19
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20
// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
21
// for more details.
22
//
23
// You should have received a copy of the GNU General Public License
24
// along with eCos; if not, write to the Free Software Foundation, Inc.,
25
// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
26
//
27
// As a special exception, if other files instantiate templates or use
28
// macros or inline functions from this file, or you compile this file
29
// and link it with other works to produce a work based on this file,
30
// this file does not by itself cause the resulting work to be covered by
31
// the GNU General Public License. However the source code for this file
32
// must still be made available in accordance with section (3) of the GNU
33
// General Public License v2.
34
//
35
// This exception does not invalidate any other reasons why a work based
36
// on this file might be covered by the GNU General Public License.
37
// -------------------------------------------
38
// ####ECOSGPLCOPYRIGHTEND####
39
//==========================================================================
40
//#####DESCRIPTIONBEGIN####
41
//
42
// Author(s):    gthomas
43
// Contributors: gthomas
44
// Date:         1999-02-20
45
// Purpose:      ARM architecture dependent definition generator
46
// Description:  This file contains code that can be compiled by the target
47
//               compiler and used to generate machine specific definitions
48
//               suitable for use in assembly code.
49
//
50
//####DESCRIPTIONEND####
51
//
52
//========================================================================*/
53
 
54
#include <pkgconf/hal.h>
55
 
56
#include <cyg/hal/hal_arch.h>           // HAL header
57
#include <cyg/hal/hal_intr.h>           // HAL header
58
#ifdef CYGPKG_KERNEL
59
# include <pkgconf/kernel.h>
60
# include <cyg/kernel/instrmnt.h>
61
#endif
62
#include <cyg/hal/hal_if.h>
63
 
64
/*
65
 * This program is used to generate definitions needed by
66
 * assembly language modules.
67
 *
68
 * This technique was first used in the OSF Mach kernel code:
69
 * generate asm statements containing #defines,
70
 * compile this file to assembler, and then extract the
71
 * #defines from the assembly-language output.
72
 */
73
 
74
#define DEFINE(sym, val) \
75
        asm volatile("\n\t.equ\t" #sym ",%0" : : "i" (val))
76
 
77
int
78
main(void)
79
{
80
    DEFINE(armreg_r0, offsetof(HAL_SavedRegisters, d[HAL_THREAD_CONTEXT_R0]));
81
    DEFINE(armreg_r4, offsetof(HAL_SavedRegisters, d[HAL_THREAD_CONTEXT_R4]));
82
    DEFINE(armreg_r8, offsetof(HAL_SavedRegisters, d[HAL_THREAD_CONTEXT_R8]));
83
    DEFINE(armreg_r9, offsetof(HAL_SavedRegisters, d[HAL_THREAD_CONTEXT_R9]));
84
    DEFINE(armreg_r10, offsetof(HAL_SavedRegisters, d[HAL_THREAD_CONTEXT_R10]));
85
    DEFINE(armreg_sp, offsetof(HAL_SavedRegisters, sp));
86
    DEFINE(armreg_fp, offsetof(HAL_SavedRegisters, fp));
87
    DEFINE(armreg_ip, offsetof(HAL_SavedRegisters, ip));
88
    DEFINE(armreg_lr, offsetof(HAL_SavedRegisters, lr));
89
    DEFINE(armreg_pc, offsetof(HAL_SavedRegisters, pc));
90
    DEFINE(armreg_cpsr, offsetof(HAL_SavedRegisters, cpsr));
91
    DEFINE(armreg_vector, offsetof(HAL_SavedRegisters, vector));
92
    DEFINE(armreg_svclr, offsetof(HAL_SavedRegisters, svc_lr));
93
    DEFINE(armreg_svcsp, offsetof(HAL_SavedRegisters, svc_sp));
94
    DEFINE(ARMREG_SIZE, sizeof(HAL_SavedRegisters));
95
    DEFINE(CYGNUM_HAL_ISR_COUNT, CYGNUM_HAL_ISR_COUNT);
96
    DEFINE(CYGNUM_HAL_VSR_COUNT, CYGNUM_HAL_VSR_COUNT);
97
    DEFINE(CYGNUM_HAL_EXCEPTION_ILLEGAL_INSTRUCTION,
98
           CYGNUM_HAL_EXCEPTION_ILLEGAL_INSTRUCTION);
99
    DEFINE(CYGNUM_HAL_EXCEPTION_INTERRUPT, CYGNUM_HAL_EXCEPTION_INTERRUPT);
100
    DEFINE(CYGNUM_HAL_EXCEPTION_CODE_ACCESS,
101
           CYGNUM_HAL_EXCEPTION_CODE_ACCESS);
102
    DEFINE(CYGNUM_HAL_EXCEPTION_DATA_ACCESS,
103
           CYGNUM_HAL_EXCEPTION_DATA_ACCESS);
104
    DEFINE(CYGNUM_HAL_VECTOR_IRQ, CYGNUM_HAL_VECTOR_IRQ);
105
#ifdef CYGPKG_KERNEL
106
    DEFINE(RAISE_INTR, CYG_INSTRUMENT_CLASS_INTR|CYG_INSTRUMENT_EVENT_INTR_RAISE);
107
#endif
108
    DEFINE(CPSR_IRQ_DISABLE, CPSR_IRQ_DISABLE);
109
    DEFINE(CPSR_FIQ_DISABLE, CPSR_FIQ_DISABLE);
110
    DEFINE(CPSR_THUMB_ENABLE, CPSR_THUMB_ENABLE);
111
    DEFINE(CPSR_USER_MODE, CPSR_USER_MODE);
112
    DEFINE(CPSR_IRQ_MODE, CPSR_IRQ_MODE);
113
    DEFINE(CPSR_FIQ_MODE, CPSR_FIQ_MODE);
114
    DEFINE(CPSR_SUPERVISOR_MODE, CPSR_SUPERVISOR_MODE);
115
    DEFINE(CPSR_UNDEF_MODE, CPSR_UNDEF_MODE);
116
    DEFINE(CPSR_MODE_BITS, CPSR_MODE_BITS);
117
    DEFINE(CPSR_INITIAL, CPSR_INITIAL);
118
    DEFINE(CPSR_THREAD_INITIAL, CPSR_THREAD_INITIAL);
119
#if defined(CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT)
120
    DEFINE(CYGNUM_CALL_IF_TABLE_SIZE, CYGNUM_CALL_IF_TABLE_SIZE);
121
#endif
122
    DEFINE(CYGNUM_HAL_INTERRUPT_NONE, CYGNUM_HAL_INTERRUPT_NONE);
123
    DEFINE(HAL_ARM_RESET_VECTOR, HAL_ARM_RESET_VECTOR);
124
    DEFINE(HAL_ARM_UNDEFINED_VECTOR, HAL_ARM_UNDEFINED_VECTOR);
125
    DEFINE(HAL_ARM_SWI_VECTOR, HAL_ARM_SWI_VECTOR);
126
    DEFINE(HAL_ARM_PREFETCH_VECTOR, HAL_ARM_PREFETCH_VECTOR);
127
    DEFINE(HAL_ARM_ABORT_VECTOR, HAL_ARM_ABORT_VECTOR);
128
    DEFINE(HAL_ARM_RESERVED_VECTOR, HAL_ARM_RESERVED_VECTOR);
129
    DEFINE(HAL_ARM_IRQ_VECTOR, HAL_ARM_IRQ_VECTOR);
130
    DEFINE(HAL_ARM_FIQ_VECTOR, HAL_ARM_FIQ_VECTOR);
131
    DEFINE(HAL_ARM_RESET_VECTOR_ADDR, HAL_ARM_RESET_VECTOR_ADDR);
132
    DEFINE(HAL_ARM_UNDEFINED_VECTOR_ADDR, HAL_ARM_UNDEFINED_VECTOR_ADDR);
133
    DEFINE(HAL_ARM_SWI_VECTOR_ADDR, HAL_ARM_SWI_VECTOR_ADDR);
134
    DEFINE(HAL_ARM_PREFETCH_VECTOR_ADDR, HAL_ARM_PREFETCH_VECTOR_ADDR);
135
    DEFINE(HAL_ARM_ABORT_VECTOR_ADDR, HAL_ARM_ABORT_VECTOR_ADDR);
136
    DEFINE(HAL_ARM_RESERVED_VECTOR_ADDR, HAL_ARM_RESERVED_VECTOR_ADDR);
137
    DEFINE(HAL_ARM_IRQ_VECTOR_ADDR, HAL_ARM_IRQ_VECTOR_ADDR);
138
    DEFINE(HAL_ARM_FIQ_VECTOR_ADDR, HAL_ARM_FIQ_VECTOR_ADDR);
139
 
140
    DEFINE(HAL_BREAKINST_THUMB, HAL_BREAKINST_THUMB);
141
    DEFINE(HAL_BREAKINST_ARM, HAL_BREAKINST_ARM);
142
 
143
    return 0;
144
}
145
 
146
 
147
/*------------------------------------------------------------------------*/
148
// EOF hal_mk_defs.c

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.