Sandrine Bailleux | 3cd87d7 | 2018-10-09 11:12:55 +0200 | [diff] [blame^] | 1 | /* |
| 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. */ |
| 14 | extern 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 | |
| 18 | extern 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 | |
| 22 | extern 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 | |
| 26 | extern 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__ */ |