diff options
author | Joel Hutton <Joel.Hutton@Arm.com> | 2018-03-21 11:40:57 +0000 |
---|---|---|
committer | Joel Hutton <Joel.Hutton@Arm.com> | 2018-03-27 13:20:27 +0100 |
commit | 9f85f9e3796f1c351bbc4c8436dc66d83c140b71 (patch) | |
tree | d9cbd296c7fa0205323ebb5da1ab466b3227f5d5 /services/std_svc | |
parent | f13ef37a38cec17f72f08dc63bbbe546a54d78a7 (diff) | |
download | platform_external_arm-trusted-firmware-9f85f9e3796f1c351bbc4c8436dc66d83c140b71.tar.gz platform_external_arm-trusted-firmware-9f85f9e3796f1c351bbc4c8436dc66d83c140b71.tar.bz2 platform_external_arm-trusted-firmware-9f85f9e3796f1c351bbc4c8436dc66d83c140b71.zip |
Clean usage of void pointers to access symbols
Void pointers have been used to access linker symbols, by declaring an
extern pointer, then taking the address of it. This limits symbols
values to aligned pointer values. To remove this restriction an
IMPORT_SYM macro has been introduced, which declares it as a char
pointer and casts it to the required type.
Change-Id: I89877fc3b13ed311817bb8ba79d4872b89bfd3b0
Signed-off-by: Joel Hutton <Joel.Hutton@Arm.com>
Diffstat (limited to 'services/std_svc')
-rw-r--r-- | services/std_svc/spm/spm_shim_private.h | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/services/std_svc/spm/spm_shim_private.h b/services/std_svc/spm/spm_shim_private.h index ad953cde7..8408d1e04 100644 --- a/services/std_svc/spm/spm_shim_private.h +++ b/services/std_svc/spm/spm_shim_private.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -8,21 +8,17 @@ #define __SPM_SHIM_PRIVATE__ #include <types.h> +#include <utils_def.h> /* Assembly source */ -extern uintptr_t spm_shim_exceptions_ptr; +IMPORT_SYM(uintptr_t, spm_shim_exceptions_ptr, SPM_SHIM_EXCEPTIONS_PTR); /* Linker symbols */ -extern uintptr_t __SPM_SHIM_EXCEPTIONS_START__; -extern uintptr_t __SPM_SHIM_EXCEPTIONS_END__; +IMPORT_SYM(uintptr_t, __SPM_SHIM_EXCEPTIONS_START__, SPM_SHIM_EXCEPTIONS_START); +IMPORT_SYM(uintptr_t, __SPM_SHIM_EXCEPTIONS_END__, SPM_SHIM_EXCEPTIONS_END); /* Definitions */ -#define SPM_SHIM_EXCEPTIONS_PTR (uintptr_t)(&spm_shim_exceptions_ptr) -#define SPM_SHIM_EXCEPTIONS_START \ - (uintptr_t)(&__SPM_SHIM_EXCEPTIONS_START__) -#define SPM_SHIM_EXCEPTIONS_END \ - (uintptr_t)(&__SPM_SHIM_EXCEPTIONS_END__) #define SPM_SHIM_EXCEPTIONS_SIZE \ (SPM_SHIM_EXCEPTIONS_END - SPM_SHIM_EXCEPTIONS_START) |