summaryrefslogtreecommitdiff
path: root/bsp/rx/RPDL/r_pdl_intc_rx62nxx.h
blob: aad34d6a474a968a9ad93e9829b4ccf99adc6e6e (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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
/*""FILE COMMENT""*******************************************************
* System Name	: External interrupt API for RX62Nxx
* File Name		: r_pdl_intc_RX62Nxx.h
* Version		: 1.02
* Contents		: INTC API header
* Customer		:
* Model			:
* Order			:
* CPU			: RX
* Compiler		: RXC
* OS			: Nothing
* Programmer	:
* Note			:
************************************************************************
* Copyright, 2011. Renesas Electronics Corporation
* and Renesas Solutions Corporation
************************************************************************
* History		: 2011.04.08
*				: Ver 1.02
*				: CS-5 release.
*""FILE COMMENT END""**************************************************/

#ifndef R_PDL_INTC_RX62Nxx_H
#define R_PDL_INTC_RX62Nxx_H

/* Callback function storage */
extern VoidCallBackFunc rpdl_INTC_callback_func[];

/* Library prototypes */
bool R_INTC_CreateExtInterruptAll(
	const uint8_t,
	const uint32_t,
	VoidCallBackFunc const,
	const uint8_t
);
bool R_INTC_CreateSoftwareInterruptAll(
	const uint8_t,
	VoidCallBackFunc const,
	const uint8_t
);
bool R_INTC_CreateFastInterruptAll(
	const uint8_t
);
bool R_INTC_CreateExceptionHandlersAll(
	VoidCallBackFunc const,
	VoidCallBackFunc const,
	VoidCallBackFunc const
);
bool R_INTC_ControlExtInterruptAll(
	const uint8_t,
	const uint32_t
);
bool R_INTC_GetExtInterruptStatusAll(
	const uint8_t,
	volatile uint8_t * const
);
bool R_INTC_ReadAll(
	const uint16_t,
	volatile uint8_t * const
);
bool R_INTC_WriteAll(
	const uint16_t,
	const uint8_t
);
bool R_INTC_ModifyAll(
	const uint16_t,
	const uint8_t,
	const uint8_t
);
bool ReturnFalse(void);

/* Macro definitions */

#define R_INTC_CreateExtInterrupt(a, b, c, d) \
( \
( ( (a) <= PDL_INTC_NMI ) && ((d) <= IPL_MAX) ) ? \
R_INTC_CreateExtInterruptAll( (a), (b), (c), (d) ) : \
ReturnFalse() \
)

#define R_INTC_CreateSoftwareInterrupt(a, b, c) \
( \
( (c) <= IPL_MAX ) ? \
R_INTC_CreateSoftwareInterruptAll( (a), (b), (c) ) : \
ReturnFalse() \
)

#define R_INTC_ControlExtInterrupt(a, b) \
( \
( (a) <= PDL_INTC_NMI ) ? \
R_INTC_ControlExtInterruptAll( (a), (b) ) : \
ReturnFalse() \
)

#define R_INTC_GetExtInterruptStatus(a, b) \
( \
( (a) <= PDL_INTC_NMI ) ? \
R_INTC_GetExtInterruptStatusAll( (a), (b) ) : \
ReturnFalse() \
)

#define R_INTC_CreateFastInterrupt(a) \
( R_INTC_CreateFastInterruptAll( (a) ) )

#define R_INTC_CreateExceptionHandlers(a, b, c) \
( R_INTC_CreateExceptionHandlersAll( (a), (b), (c) ) )

#define R_INTC_Read(a, b) \
( R_INTC_ReadAll( (a), (b) ) )

#define R_INTC_Write(a, b) \
( R_INTC_WriteAll( (a), (b) ) )

#define R_INTC_Modify(a, b, c) \
( R_INTC_ModifyAll( (a), (b), (c) ) )

#endif
/* End of file */