blob: 966b154d83c190bd7a3df8a58c274f4149e1cf04 [file] [log] [blame]
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +02001/*
2 * Copyright (c) 2017, Arm Limited. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7#ifndef __CACTUS_H__
8#define __CACTUS_H__
9
10#include <secure_partition.h>
11#include <types.h>
12
13/* Linker symbols used to figure out the memory layout of Cactus. */
14extern uintptr_t __TEXT_START__, __TEXT_END__;
15#define CACTUS_TEXT_START ((uintptr_t)&__TEXT_START__)
16#define CACTUS_TEXT_END ((uintptr_t)&__TEXT_END__)
17
18extern uintptr_t __RODATA_START__, __RODATA_END__;
19#define CACTUS_RODATA_START ((uintptr_t)&__RODATA_START__)
20#define CACTUS_RODATA_END ((uintptr_t)&__RODATA_END__)
21
22extern uintptr_t __RWDATA_START__, __RWDATA_END__;
23#define CACTUS_RWDATA_START ((uintptr_t)&__RWDATA_START__)
24#define CACTUS_RWDATA_END ((uintptr_t)&__RWDATA_END__)
25
26extern uintptr_t __BSS_START__, __BSS_END__;
27#define CACTUS_BSS_START ((uintptr_t)&__BSS_START__)
28#define CACTUS_BSS_END ((uintptr_t)&__BSS_END__)
29
30/*
31 * Once Cactus has finished its initialisation, this is the function it will
32 * jump to to handle runtime services for the rest of its lifetime.
33 */
34__dead2 void secure_services_loop(void);
35
36#endif /* __CACTUS_H__ */