• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2009-2022 Huawei Technologies Co., Ltd. All rights reserved.
3  *
4  * UniProton is licensed under Mulan PSL v2.
5  * You can use this software according to the terms and conditions of the Mulan PSL v2.
6  * You may obtain a copy of Mulan PSL v2 at:
7  *          http://license.coscl.org.cn/MulanPSL2
8  * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
9  * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
10  * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
11  * See the Mulan PSL v2 for more details.
12  * Create: 2009-12-26
13  * Description: ARM汇编宏, 如initRnd等。
14  */
15 #ifndef PRT_ASM_ARM_EXTERNAL_H
16 #define PRT_ASM_ARM_EXTERNAL_H
17 
18 #if defined(OS_ARCH_ARMV8)
19 #include "../cpu/armv8/common/os_asm_cpu_armv8_external.h"
20 #endif
21 
22 /*
23  * 描述 : stack_chk_guard支持用户传入seed写入函数宏
24  *        argA argB argC 需要使用处传入三个可用寄存器
25  */
26 .macro InitChkGuardRnd argA, argB, argC
27     ldr \argA, = g_memCanaryRdm /* 用户传入seed */
28     ldr \argB, = __stack_chk_guard
29     ldr \argC, [\argA]
30     cmp \argC, #0
31     beq 1f
32     str \argC, [\argB] /* RND写入 */
33     mov \argC, #0
34     str \argC, [\argA] /* 销毁 */
35 1:
36 .endm
37 
38 #endif /* PRT_ASM_ARM_EXTERNAL_H */
39