Rtos API example

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers uvisor-lib.h Source File

uvisor-lib.h

00001 /*
00002  * Copyright (c) 2013-2016, ARM Limited, All Rights Reserved
00003  * SPDX-License-Identifier: Apache-2.0
00004  *
00005  * Licensed under the Apache License, Version 2.0 (the "License"); you may
00006  * not use this file except in compliance with the License.
00007  * You may obtain a copy of the License at
00008  *
00009  * http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
00013  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 #ifndef __UVISOR_API_UVISOR_LIB_H__
00018 #define __UVISOR_API_UVISOR_LIB_H__
00019 
00020 /* This file includes all the uVisor library header files at once.
00021  * If uVisor is used on a host OS that includes unsupported targets, then
00022  * unsupported.h is included, which defines a fallback version of those APIs,
00023  * with no security feature. */
00024 
00025 #if defined(UVISOR_PRESENT) && UVISOR_PRESENT == 1
00026 
00027 /* Library header files */
00028 #include "api/inc/api.h"
00029 #include "api/inc/box_config.h"
00030 #include "api/inc/box_id.h"
00031 #include "api/inc/disabled.h"
00032 #include "api/inc/error.h"
00033 #include "api/inc/interrupts.h"
00034 #include "api/inc/register_gateway.h"
00035 #include "api/inc/rpc.h"
00036 #include "api/inc/ipc.h"
00037 #include "api/inc/rpc_gateway.h"
00038 #include "api/inc/secure_access.h"
00039 #include "api/inc/uvisor_semaphore.h"
00040 #include "api/inc/vmpu.h"
00041 
00042 #else /* defined(UVISOR_PRESENT) && UVISOR_PRESENT == 1 */
00043 
00044 #include "api/inc/unsupported.h"
00045 
00046 #endif /* defined(UVISOR_PRESENT) && UVISOR_PRESENT == 1 */
00047 
00048 /* On ARMv7-M, the host startup needs to call this after osKernelInitialize to
00049  * initialize uvisor-lib. The function can fail. It's up the the host startup
00050  * to decide what to do with any failures. */
00051 UVISOR_EXTERN int uvisor_lib_init(void); /* FIXME: Remove this when we move ARMv7-M to the hypervisor model. */
00052 
00053 /* The host startup needs to call this after osKernelInitialize to start
00054  * uVisor. The function will halt if errors are encountered. */
00055 UVISOR_EXTERN void uvisor_start(void);
00056 
00057 #include "api/inc/page_allocator.h"
00058 
00059 /* Include all exported header files used by uVisor internally.
00060  * These are included independently on whether uVisor is supported or not by the
00061  * target platform. */
00062 #include "api/inc/debug_exports.h"
00063 #include "api/inc/context_exports.h"
00064 #include "api/inc/halt_exports.h"
00065 #include "api/inc/register_gateway_exports.h"
00066 #include "api/inc/rpc_gateway_exports.h"
00067 #include "api/inc/priv_sys_hooks_exports.h"
00068 #include "api/inc/virq_exports.h"
00069 #include "api/inc/uvisor_exports.h"
00070 #include "api/inc/vmpu_exports.h"
00071 #include "api/inc/page_allocator_exports.h"
00072 #include "api/inc/pool_queue_exports.h"
00073 
00074 #endif /* __UVISOR_API_UVISOR_LIB_H__ */