Makefile: Fix git tag issues
[simavr] / simavr / cores / sim_core_declare.h
1 /*
2         sim_core_declare.h
3
4         Copyright 2008, 2009 Michel Pollet <buserror@gmail.com>
5
6         This file is part of simavr.
7
8         simavr is free software: you can redistribute it and/or modify
9         it under the terms of the GNU General Public License as published by
10         the Free Software Foundation, either version 3 of the License, or
11         (at your option) any later version.
12
13         simavr is distributed in the hope that it will be useful,
14         but WITHOUT ANY WARRANTY; without even the implied warranty of
15         MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16         GNU General Public License for more details.
17
18         You should have received a copy of the GNU General Public License
19         along with simavr.  If not, see <http://www.gnu.org/licenses/>.
20  */
21 #ifndef __SIM_CORE_DECLARE_H__
22 #define __SIM_CORE_DECLARE_H__
23
24 /* we have to declare this, as none of the distro but debian has a modern
25  * toolchain and avr-libc. This affects a lot of names, like MCUSR etc
26  */
27 #define __AVR_LIBC_DEPRECATED_ENABLE__
28
29 /*
30  * The macros "fake" the ones in the real avrlib
31  */
32 #define _SFR_IO8(v) ((v)+32)
33 #define _SFR_IO16(v) ((v)+32)
34 #define _SFR_MEM8(v) (v)
35 #define _BV(v) (v)
36 #define _VECTOR(v) (v)
37
38 /*
39  * This declares a typical AVR core, using constants what appears
40  * to be in every io*.h file...
41  */
42 #ifdef SIGNATURE_0
43 #define DEFAULT_CORE(_vector_size) \
44         .ramend = RAMEND, \
45         .flashend = FLASHEND, \
46         .e2end = E2END, \
47         .vector_size = _vector_size, \
48         .fuse = { LFUSE_DEFAULT, HFUSE_DEFAULT, EFUSE_DEFAULT }, \
49         .signature = { SIGNATURE_0,SIGNATURE_1,SIGNATURE_2 }
50 #else
51 // Disable signature for now, for ubuntu, gentoo and other using old avr toolchain
52 #define DEFAULT_CORE(_vector_size) \
53         .ramend = RAMEND, \
54         .flashend = FLASHEND, \
55         .e2end = E2END, \
56         .vector_size = _vector_size
57 #endif
58 #endif /* __SIM_CORE_DECLARE_H__ */