WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
los_tables.h
浏览该文件的文档.
1/* ----------------------------------------------------------------------------
2 * Copyright (c) Huawei Technologies Co., Ltd. 2013-2019. All rights reserved.
3 * Description: Tables
4 * Author: Huawei LiteOS Team
5 * Create: 2013-01-01
6 * Redistribution and use in source and binary forms, with or without modification,
7 * are permitted provided that the following conditions are met:
8 * 1. Redistributions of source code must retain the above copyright notice, this list of
9 * conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright notice, this list
11 * of conditions and the following disclaimer in the documentation and/or other materials
12 * provided with the distribution.
13 * 3. Neither the name of the copyright holder nor the names of its contributors may be used
14 * to endorse or promote products derived from this software without specific prior written
15 * permission.
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
18 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
20 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
23 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
25 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
26 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 * --------------------------------------------------------------------------- */
28
29#ifndef _LOS_TABLES_H
30#define _LOS_TABLES_H
31
32#include "los_typedef.h"
33
34#ifdef __cplusplus
35extern "C" {
36#endif /* __cplusplus */
37
38#ifndef LOS_HAL_TABLE_WOW_BEGIN
39#define LOS_HAL_TABLE_WOW_BEGIN(label, name) \
40 __asm__(".section \".liteos.table." X_STRING(name) ".wow.begin\",\"aw\"\n" \
41 ".globl " X_STRING(LOS_LABEL_DEFN(label)) "\n" \
42 ".type " X_STRING(LOS_LABEL_DEFN(label)) ",object\n" \
43 ".p2align " X_STRING(LOSARC_P2ALIGNMENT) "\n" \
44 X_STRING(LOS_LABEL_DEFN(label)) ":\n" \
45 ".previous\n" \
46 )
47#endif
48
49#ifndef LOS_HAL_TABLE_WOW_END
50#define LOS_HAL_TABLE_WOW_END(label, name) \
51 __asm__(".section \".liteos.table." X_STRING(name) ".wow.finish\",\"aw\"\n" \
52 ".globl " X_STRING(LOS_LABEL_DEFN(label)) "\n" \
53 ".type " X_STRING(LOS_LABEL_DEFN(label)) ",object\n" \
54 ".p2align " X_STRING(LOSARC_P2ALIGNMENT) "\n" \
55 X_STRING(LOS_LABEL_DEFN(label)) ":\n" \
56 ".previous\n" \
57 )
58#endif
59
60#ifndef LOS_HAL_TABLE_SCATTER_BEGIN
61#define LOS_HAL_TABLE_SCATTER_BEGIN(label, name) \
62 __asm__(".section \".liteos.table." X_STRING(name) ".scatter.begin\",\"aw\"\n" \
63 ".globl " X_STRING(LOS_LABEL_DEFN(label)) "\n" \
64 ".type " X_STRING(LOS_LABEL_DEFN(label)) ",object\n" \
65 ".p2align " X_STRING(LOSARC_P2ALIGNMENT) "\n" \
66 X_STRING(LOS_LABEL_DEFN(label)) ":\n" \
67 ".previous\n" \
68 )
69#endif
70
71#ifndef LOS_HAL_TABLE_SCATTER_END
72#define LOS_HAL_TABLE_SCATTER_END(label, name) \
73 __asm__(".section \".liteos.table." X_STRING(name) ".scatter.finish\",\"aw\"\n" \
74 ".globl " X_STRING(LOS_LABEL_DEFN(label)) "\n" \
75 ".type " X_STRING(LOS_LABEL_DEFN(label)) ",object\n" \
76 ".p2align " X_STRING(LOSARC_P2ALIGNMENT) "\n" \
77 X_STRING(LOS_LABEL_DEFN(label)) ":\n" \
78 ".previous\n" \
79 )
80#endif
81
82#ifndef LOS_HAL_TABLE_BEGIN
83#define LOS_HAL_TABLE_BEGIN(label, name) \
84 __asm__(".section \".liteos.table." X_STRING(name) ".begin\",\"aw\"\n" \
85 ".globl " X_STRING(LOS_LABEL_DEFN(label)) "\n" \
86 ".type " X_STRING(LOS_LABEL_DEFN(label)) ",object\n" \
87 ".p2align " X_STRING(LOSARC_P2ALIGNMENT) "\n" \
88 X_STRING(LOS_LABEL_DEFN(label)) ":\n" \
89 ".previous\n" \
90 )
91#endif
92
93#ifndef LOS_HAL_TABLE_END
94#define LOS_HAL_TABLE_END(label, name) \
95 __asm__(".section \".liteos.table." X_STRING(name) ".finish\",\"aw\"\n" \
96 ".globl " X_STRING(LOS_LABEL_DEFN(label)) "\n" \
97 ".type " X_STRING(LOS_LABEL_DEFN(label)) ",object\n" \
98 ".p2align " X_STRING(LOSARC_P2ALIGNMENT) "\n" \
99 X_STRING(LOS_LABEL_DEFN(label)) ":\n" \
100 ".previous\n" \
101 )
102#endif
103
104/* This macro must be applied to any types whose objects are to be placed in tables */
105#ifndef LOS_HAL_TABLE_TYPE
106#define LOS_HAL_TABLE_TYPE LOSBLD_ATTRIB_ALIGN(LOSARC_ALIGNMENT)
107#endif
108
109#ifndef LOS_HAL_TABLE_EXTRA
110#define LOS_HAL_TABLE_EXTRA(name) \
111 LOSBLD_ATTRIB_SECTION(".liteos.table." X_STRING(name) ".extra")
112#endif
113
114#ifndef LOS_HAL_TABLE_WOW_ENTRY
115#define LOS_HAL_TABLE_WOW_ENTRY(name) \
116 LOSBLD_ATTRIB_SECTION(".liteos.table." X_STRING(name) ".wow.data") \
117 LOSBLD_ATTRIB_USED
118#endif
119
120#ifndef LOS_HAL_TABLE_SCATTER_ENTRY
121#define LOS_HAL_TABLE_SCATTER_ENTRY(name) \
122 LOSBLD_ATTRIB_SECTION(".liteos.table." X_STRING(name) ".scatter.data") \
123 LOSBLD_ATTRIB_USED
124#endif
125
126#ifndef LOS_HAL_TABLE_ENTRY
127#define LOS_HAL_TABLE_ENTRY(name) \
128 LOSBLD_ATTRIB_SECTION(".liteos.table." X_STRING(name) ".data") \
129 LOSBLD_ATTRIB_USED
130#endif
131
132#ifndef LOS_HAL_TABLE_QUALIFIED_ENTRY
133#define LOS_HAL_TABLE_QUALIFIED_ENTRY(name, _qual) \
134 LOSBLD_ATTRIB_SECTION(".liteos.table." X_STRING(name) ".data." X_STRING(_qual)) \
135 LOSBLD_ATTRIB_USED
136#endif
137
138#ifdef __cplusplus
139}
140#endif /* __cplusplus */
141
142#endif /* _LOS_TABLES_H */