aboutsummaryrefslogtreecommitdiffstats
path: root/firmware/sparse.h
blob: addaa3fcb138bb35ca2584195d34f0fa773a6b69 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#ifndef SPARSE_H_
#define SPARSE_H_

#ifdef __CHECKER__

/* Dummy declarations for sparse checker. */

#define __flash1			__attribute__((address_space(1)))
#define __flash2			__attribute__((address_space(2)))
#define __flash3			__attribute__((address_space(3)))
#define __flash4			__attribute__((address_space(4)))
#define __flash5			__attribute__((address_space(5)))
#define __flash				__attribute__((address_space(6)))
#define __memx				__attribute__((address_space(7)))
#define __ATTR_PROGMEM__		__flash
#define __OS_main__			dllexport
#define __builtin_avr_delay_cycles(x)

#include <stddef.h>
#include <stdint.h>
#include <stdio.h>
#include <avr/pgmspace.h>

#define __force				__attribute__((force))
#undef PSTR
#define PSTR(x)				((typeof(*x) __flash * __force)(x))
#define to_memx(x)			((typeof(*x) __memx * __force)(x))
#undef FDEV_SETUP_STREAM
#define FDEV_SETUP_STREAM(p, g, f)	{}

typedef int32_t		__int24;
typedef uint32_t	__uint24;

extern void _delay_us(double x);
extern void _delay_ms(double x);
extern void _delay_loop_1(uint8_t x);
extern void _delay_loop_2(uint16_t x);

#else /* __CHECKER__ */

#define to_memx(x)	(x)

#endif /* __CHECKER__ */
#endif /* SPARSE_H_ */
bues.ch cgit interface