summaryrefslogtreecommitdiff
path: root/cactus/cactus.h
blob: 7f86c920be7ff72a180feba59a80019aebb1bc7d (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
/*
 * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

#ifndef __CACTUS_H__
#define __CACTUS_H__

#include <secure_partition.h>
#include <types.h>

/* Linker symbols used to figure out the memory layout of Cactus. */
extern uintptr_t __TEXT_START__, __TEXT_END__;
#define CACTUS_TEXT_START	((uintptr_t)&__TEXT_START__)
#define CACTUS_TEXT_END		((uintptr_t)&__TEXT_END__)

extern uintptr_t __RODATA_START__, __RODATA_END__;
#define CACTUS_RODATA_START	((uintptr_t)&__RODATA_START__)
#define CACTUS_RODATA_END	((uintptr_t)&__RODATA_END__)

extern uintptr_t __RWDATA_START__, __RWDATA_END__;
#define CACTUS_RWDATA_START	((uintptr_t)&__RWDATA_START__)
#define CACTUS_RWDATA_END	((uintptr_t)&__RWDATA_END__)

extern uintptr_t __BSS_START__, __BSS_END__;
#define CACTUS_BSS_START	((uintptr_t)&__BSS_START__)
#define CACTUS_BSS_END		((uintptr_t)&__BSS_END__)

/*
 * Once Cactus has finished its initialisation, this is the function it will
 * jump to to handle runtime services for the rest of its lifetime.
 */
__dead2 void secure_services_loop(void);

#endif /* __CACTUS_H__ */