| * Copyright (c) 2017-2023, Arm Limited and Contributors. All rights reserved. |
| * SPDX-License-Identifier: BSD-3-Clause |
| #ifndef ARM_RECLAIM_INIT_LD_S |
| #define ARM_RECLAIM_INIT_LD_S |
| .init __STACKS_START__ : { |
| . = . + PLATFORM_STACK_SIZE; |
| INIT_CODE_END_ALIGNED = ALIGN(PAGE_SIZE); |
| #ifdef BL31_PROGBITS_LIMIT |
| ASSERT(__INIT_CODE_END__ <= BL31_PROGBITS_LIMIT, |
| "BL31 init has exceeded progbits limit.") |
| /* Allow room for the init section where necessary. */ \ |
| OFFSET = ABS(SIZEOF(.init) - (. - __STACKS_START__)); \ |
| SIGN = ABS(OFFSET) & (1 << 63); \ |
| MASK = ABS(SIGN >> 63) - 1; \ |
| . += ABS(OFFSET) & ABS(MASK); \ |
| #endif /* ARM_RECLAIM_INIT_LD_S */ |