xref: /nrf52832-nimble/rt-thread/components/vmm/vmm.h (revision 104654410c56c573564690304ae786df310c91fc)
1*10465441SEvalZero /*
2*10465441SEvalZero  *  VMM startup file.
3*10465441SEvalZero  *
4*10465441SEvalZero  * COPYRIGHT (C) 2013-2014, Real-Thread Information Technology Ltd
5*10465441SEvalZero  * All rights reserved
6*10465441SEvalZero  *
7*10465441SEvalZero  * SPDX-License-Identifier: Apache-2.0
8*10465441SEvalZero  *
9*10465441SEvalZero  * Change Logs:
10*10465441SEvalZero  * Date           Author       Notes
11*10465441SEvalZero  * 2013-06-15     Bernard      the first verion
12*10465441SEvalZero  */
13*10465441SEvalZero 
14*10465441SEvalZero #ifndef __VMM_H__
15*10465441SEvalZero #define __VMM_H__
16*10465441SEvalZero 
17*10465441SEvalZero #ifndef __ASSEMBLY__
18*10465441SEvalZero #include <stddef.h> // for size_t
19*10465441SEvalZero #endif
20*10465441SEvalZero 
21*10465441SEvalZero #define VMM_VERIFY_GUEST
22*10465441SEvalZero 
23*10465441SEvalZero #include <rtt_api.h>
24*10465441SEvalZero 
25*10465441SEvalZero #ifndef __ASSEMBLY__
26*10465441SEvalZero 
27*10465441SEvalZero void vmm_iomap_init(struct vmm_iomap *iomap);
28*10465441SEvalZero unsigned long vmm_find_iomap(const char *name);
29*10465441SEvalZero unsigned long vmm_find_iomap_by_pa(unsigned long pa);
30*10465441SEvalZero 
31*10465441SEvalZero void vmm_vector_init(void);
32*10465441SEvalZero 
33*10465441SEvalZero #ifndef RT_USING_LOGTRACE
34*10465441SEvalZero /* If the rshell is run, we could not rt_kprintf in some situation because
35*10465441SEvalZero  * write to a vbus channel *Would BLOCK*. So we cannot use it in interrupt
36*10465441SEvalZero  * context, we cannot use it within the context of idle(vmm). */
37*10465441SEvalZero #define vmm_debug(fmt, ...)
38*10465441SEvalZero #define vmm_verbose(fmt, ...)
39*10465441SEvalZero #define vmm_info(fmt, ...)
40*10465441SEvalZero #else // have RT_USING_LOGTRACE
41*10465441SEvalZero #define vmm_debug(fmt, ...)   log_trace(LOG_TRACE_DEBUG  "[vmm]"fmt, ##__VA_ARGS__)
42*10465441SEvalZero #define vmm_verbose(fmt, ...) log_trace(LOG_TRACE_VERBOSE"[vmm]"fmt, ##__VA_ARGS__)
43*10465441SEvalZero #define vmm_info(fmt, ...)    log_trace(LOG_TRACE_INFO   "[vmm]"fmt, ##__VA_ARGS__)
44*10465441SEvalZero #endif // RT_USING_LOGTRACE
45*10465441SEvalZero #endif
46*10465441SEvalZero 
47*10465441SEvalZero #define ARRAY_SIZE(ar)     (sizeof(ar)/sizeof(ar[0]))
48*10465441SEvalZero 
49*10465441SEvalZero #endif
50