Copying utility headers from optee_os.
Provides an interface for the following common tasks:
- defining functions in assembly
- setting function and variable attributes
- safe integer operations
The files in this commit were forked from optee_os, keeping the
original license header intact:
tag name: v3.10.0
tagged commit: d1c635434c55b7d75eadf471bde04926bd1e50a7
From 'lib/libutils/ext/include/' of optee_os to
'components/common/utils/include/':
asm.S
compiler.h
util.h
Change-Id: I5d83618fa157a4b14f86e522c5def40c74c4ad95
Signed-off-by: Imre Kis <imre.kis@arm.com>
diff --git a/components/common/utils/include/asm.S b/components/common/utils/include/asm.S
new file mode 100644
index 0000000..d3cecc3
--- /dev/null
+++ b/components/common/utils/include/asm.S
@@ -0,0 +1,46 @@
+/* SPDX-License-Identifier: BSD-2-Clause */
+/*
+ * Copyright (c) 2014, STMicroelectronics International N.V.
+ */
+
+ .macro FUNC name colon section=default
+ .ifc \section\(),default
+ .section .text.\name
+ .else
+ .section \section , "ax" , %progbits
+ .endif
+ .global \name
+ .type \name , %function
+ .balign 4
+ \name \colon
+ .endm
+
+ .macro DATA name colon
+ .global \name
+ .type \name , %object
+ \name \colon
+ .endm
+
+ .macro LOCAL_FUNC name colon section=default
+ .ifc \section\(),default
+ .section .text.\name
+ .else
+ .section \section , "ax" , %progbits
+ .endif
+ .type \name , %function
+ .balign 4
+ \name \colon
+ .endm
+
+ .macro LOCAL_DATA name colon
+ .type \name , %object
+ \name \colon
+ .endm
+
+ .macro END_DATA name
+ .size \name , .-\name
+ .endm
+
+ .macro END_FUNC name
+ .size \name , .-\name
+ .endm