Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Utils Native Lite
提交
ff5f89d5
U
Utils Native Lite
项目概览
OpenHarmony
/
Utils Native Lite
9 个月 前同步成功
通知
2
Star
19
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
Utils Native Lite
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
ff5f89d5
编写于
9月 22, 2020
作者:
B
BreakChen
提交者:
Gitee
9月 22, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Use doxygen comments in utils
上级
c062381b
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
427 addition
and
113 deletion
+427
-113
include/hos_errno.h
include/hos_errno.h
+58
-33
include/hos_init.h
include/hos_init.h
+208
-5
include/hos_types.h
include/hos_types.h
+29
-3
include/kv_store.h
include/kv_store.h
+2
-0
include/ohos_errno.h
include/ohos_errno.h
+58
-33
include/ohos_init.h
include/ohos_init.h
+3
-1
include/ohos_types.h
include/ohos_types.h
+29
-3
include/utils_config.h
include/utils_config.h
+2
-0
include/utils_file.h
include/utils_file.h
+6
-4
include/utils_list.h
include/utils_list.h
+32
-31
未找到文件。
include/hos_errno.h
浏览文件 @
ff5f89d5
...
@@ -12,6 +12,28 @@
...
@@ -12,6 +12,28 @@
* See the License for the specific language governing permissions and
* See the License for the specific language governing permissions and
* limitations under the License.
* limitations under the License.
*/
*/
/**
* @defgroup hos_errno System Error No
* @ingroup utils
* @addtogroup Errno
* @{
*
* @brief Defintion of error code. The error codes are applicable to both the application and kernel.
*
* @since 1.0
* @version 1.0
*/
/**
* @file hos_errno.h
*
* @brief Defintion of error code. The error codes are applicable to both the application and kernel.
*
* @since 1.0
* @version 1.0
*/
#ifndef OHOS_ERRNO_H
#ifndef OHOS_ERRNO_H
#define OHOS_ERRNO_H
#define OHOS_ERRNO_H
#ifdef __cplusplus
#ifdef __cplusplus
...
@@ -19,40 +41,41 @@
...
@@ -19,40 +41,41 @@
extern
"C"
{
extern
"C"
{
#endif
/* __cpluscplus */
#endif
/* __cpluscplus */
#endif
/* __cpluscplus */
#endif
/* __cpluscplus */
/* --------------------------------------------------------------------------------------------*
* Defintion of error code. The error codes are applicable to both the application and kernel
/**
*-------------------------------------------------------------------------------------------- */
* @brief Defintion of error code. The error codes are applicable to both the application and kernel
*/
enum
OHOSLiteErrorCode
{
enum
OHOSLiteErrorCode
{
EC_SUCCESS
=
0
,
/*
OK or No error */
EC_SUCCESS
=
0
,
/*<
OK or No error */
EC_FAILURE
=
-
1
,
/*
Execution failed */
EC_FAILURE
=
-
1
,
/*<
Execution failed */
EC_BADPTR
=
-
2
,
/*
Bad pointer value */
EC_BADPTR
=
-
2
,
/*<
Bad pointer value */
EC_NOMEMORY
=
-
3
,
/*
No enough memory */
EC_NOMEMORY
=
-
3
,
/*<
No enough memory */
EC_ADDRESS
=
-
4
,
/*
Memory or bus address error */
EC_ADDRESS
=
-
4
,
/*<
Memory or bus address error */
EC_IOERROR
=
-
5
,
/*
I/O error */
EC_IOERROR
=
-
5
,
/*<
I/O error */
EC_BUSBUSY
=
-
6
,
/*
xxx bus busy */
EC_BUSBUSY
=
-
6
,
/*<
xxx bus busy */
EC_NORESPONCE
=
-
7
,
/*
Function is no responce */
EC_NORESPONCE
=
-
7
,
/*<
Function is no responce */
EC_NODEVICE
=
-
8
,
/*
No such device */
EC_NODEVICE
=
-
8
,
/*<
No such device */
EC_INVALID
=
-
9
,
/*
Invalid argument */
EC_INVALID
=
-
9
,
/*<
Invalid argument */
EC_BUSY
=
-
10
,
/*
Device or resource busy */
EC_BUSY
=
-
10
,
/*<
Device or resource busy */
EC_NOSERVICE
=
-
11
,
/*
No service */
EC_NOSERVICE
=
-
11
,
/*<
No service */
EC_PERMISSION
=
-
12
,
/*
Permission denied */
EC_PERMISSION
=
-
12
,
/*<
Permission denied */
EC_NOFILE
=
-
13
,
/*
No this file */
EC_NOFILE
=
-
13
,
/*<
No this file */
EC_NOSPACE
=
-
14
,
/*
No space left on device */
EC_NOSPACE
=
-
14
,
/*<
No space left on device */
EC_NODIR
=
-
15
,
/*
Not a directory */
EC_NODIR
=
-
15
,
/*<
Not a directory */
EC_ROFILE
=
-
16
,
/*
Read-only file system */
EC_ROFILE
=
-
16
,
/*<
Read-only file system */
EC_NAMETOOLONG
=
-
17
,
/*
File name too long */
EC_NAMETOOLONG
=
-
17
,
/*<
File name too long */
EC_OPBLOCK
=
-
18
,
/*
Operation would block */
EC_OPBLOCK
=
-
18
,
/*<
Operation would block */
EC_TIMEOUT
=
-
19
,
/*
Timer expired */
EC_TIMEOUT
=
-
19
,
/*<
Timer expired */
EC_COMMU
=
-
20
,
/*
Communication error on send */
EC_COMMU
=
-
20
,
/*<
Communication error on send */
EC_PROTOCOL
=
-
21
,
/*
Protocol error */
EC_PROTOCOL
=
-
21
,
/*<
Protocol error */
EC_CANCELED
=
-
22
,
/*
Operation Canceled */
EC_CANCELED
=
-
22
,
/*<
Operation Canceled */
EC_NOKEY
=
-
23
,
/*
Required key not available */
EC_NOKEY
=
-
23
,
/*<
Required key not available */
EC_NOHANDLER
=
-
24
,
/*
No handler to execute */
EC_NOHANDLER
=
-
24
,
/*<
No handler to execute */
EC_FLOWCTRL
=
-
25
,
/*
Flow control */
EC_FLOWCTRL
=
-
25
,
/*<
Flow control */
EC_NOINIT
=
-
26
,
/*
device hasn't been initializeed */
EC_NOINIT
=
-
26
,
/*<
device hasn't been initializeed */
EC_NORESOURCE
=
-
27
,
/*
resource error */
EC_NORESOURCE
=
-
27
,
/*<
resource error */
EC_LLERRTOP
=
-
127
,
/*
Low level function error code max value */
EC_LLERRTOP
=
-
127
,
/*<
Low level function error code max value */
EC_HLERRBASE
=
-
128
/*
High level function error code baseline */
EC_HLERRBASE
=
-
128
/*<
High level function error code baseline */
};
};
#ifdef __cplusplus
#ifdef __cplusplus
...
@@ -60,4 +83,6 @@ enum OHOSLiteErrorCode {
...
@@ -60,4 +83,6 @@ enum OHOSLiteErrorCode {
}
}
#endif
/* __cpluscplus */
#endif
/* __cpluscplus */
#endif
/* __cpluscplus */
#endif
/* __cpluscplus */
#endif // OHOS_ERRNO_H
#endif // OHOS_ERRNO_H
/** @} */
\ No newline at end of file
include/hos_init.h
浏览文件 @
ff5f89d5
...
@@ -13,8 +13,38 @@
...
@@ -13,8 +13,38 @@
* limitations under the License.
* limitations under the License.
*/
*/
#ifndef OHOS_LAYER_INIT_H
/**
#define OHOS_LAYER_INIT_H
* @defgroup hos_init HOS Init
* @ingroup utils
* @addtogroup Init
* @{
*
* @brief Provides the entries for initializing and starting services and features.
*
* This module provides the entries for initializing services and features during service
* development. \n
* Services and features are initialized in the following sequence: core phase, core system
* service, core system feature, system startup, system service, system feature, application-layer
* service, and application-layer feature. \n
*
* @since 1.0
* @version 1.0
*/
/**
* @file hos_init.h
*
* @brief Provides the entries for initializing and starting services and features.
*
* This file provides the entries for initializing services and features during service
* development. \n
*
* @since 1.0
* @version 1.0
*/
#ifndef HOS_LAYER_INIT_H
#define HOS_LAYER_INIT_H
#ifdef __cplusplus
#ifdef __cplusplus
#if __cplusplus
#if __cplusplus
extern
"C"
{
extern
"C"
{
...
@@ -49,31 +79,203 @@ typedef void (*InitCall)(void);
...
@@ -49,31 +79,203 @@ typedef void (*InitCall)(void);
#define LAYER_INITCALL_DEF(func, layer, clayer) \
#define LAYER_INITCALL_DEF(func, layer, clayer) \
LAYER_INITCALL
(
func
,
layer
,
clayer
,
2
)
LAYER_INITCALL
(
func
,
layer
,
clayer
,
2
)
/**
* @brief Identifies the entry for initializing and starting a core phase by the priority 2.
*
* This macro is used when Samgr is initialized and started. \n
* This macro is used to identify the entry called at the priority 2 of the core phase of
* the startup process. \n
*
* @param func Indicates the entry function for initializing and starting a core phase.
* The type is void (*)(void).
*/
#define CORE_INIT(func) LAYER_INITCALL_DEF(func, core, "core")
#define CORE_INIT(func) LAYER_INITCALL_DEF(func, core, "core")
/**
* @brief Identifies the entry for initializing and starting a core phase by the specified
* priority.
*
* This macro is used when Samgr is initialized and started. \n
* This macro is used to identify the entry called at the specified priority of the core phase of
* the startup process. \n
*
* @param func Indicates the entry function for initializing and starting a core phase.
* The type is void (*)(void).
* @param priority Indicates the calling priority when starting the core phase.
* The value range is [0,5), and the calling sequence is 0, 1, 2, 3, and 4.
*/
#define CORE_INIT_PRI(func, priority) LAYER_INITCALL(func, core, "core", priority)
#define CORE_INIT_PRI(func, priority) LAYER_INITCALL(func, core, "core", priority)
/**
* @brief Identifies the entry for initializing and starting a core system service by the
* priority 2.
*
* This macro is used to identify the entry called at the priority 2 in the core system
* service phase of the startup process. \n
*
* @param func Indicates the entry function for initializing and starting a core system service.
* The type is void (*)(void).
*/
#define SYS_SERVICE_INIT(func) LAYER_INITCALL_DEF(func, sys_service, "sys.service")
#define SYS_SERVICE_INIT(func) LAYER_INITCALL_DEF(func, sys_service, "sys.service")
/**
* @brief Identifies the entry for initializing and starting a core system service by the
* specified priority.
*
* This macro is used to identify the entry called at the specified priority in the core system
* service phase of the startup process. \n
*
* @param func Indicates the entry function for initializing and starting a core system service.
* The type is void (*)(void).
* @param priority Indicates the calling priority when starting the core system service in the
* startup phase. The value range is [0,5), and the calling sequence is 0, 1, 2, 3, and 4.
*/
#define SYS_SERVICE_INIT_PRI(func, priority) LAYER_INITCALL(func, sys_service, "sys.service", priority)
#define SYS_SERVICE_INIT_PRI(func, priority) LAYER_INITCALL(func, sys_service, "sys.service", priority)
/**
* @brief Identifies the entry for initializing and starting a core system feature by the
* priority 2.
*
* This macro is used to identify the entry called at the priority 2 in the core system
* feature phase of the startup process. \n
*
* @param func Indicates the entry function for initializing and starting a core system service.
* The type is void (*)(void).
*/
#define SYS_FEATURE_INIT(func) LAYER_INITCALL_DEF(func, sys_feature, "sys.feature")
#define SYS_FEATURE_INIT(func) LAYER_INITCALL_DEF(func, sys_feature, "sys.feature")
/**
* @brief Identifies the entry for initializing and starting a core system feature by the
* specified priority.
*
* This macro is used to identify the entry called at the specified priority in the core system
* feature phase of the startup process. \n
*
* @param func Indicates the entry function for initializing and starting a core system feature.
* The type is void (*)(void).
* @param priority Indicates the calling priority when starting the core system feature phase.
* The value range is [0, 5), and the calling sequence is 0, 1, 2, 3, and 4.
*/
#define SYS_FEATURE_INIT_PRI(func, priority) LAYER_INITCALL(func, sys_feature, "sys.feature", priority)
#define SYS_FEATURE_INIT_PRI(func, priority) LAYER_INITCALL(func, sys_feature, "sys.feature", priority)
/**
* @brief Identifies the entry for initializing and starting a system running phase by the
* priority 2.
*
* This macro is used to identify the entry called at the priority 2 in the system startup
* phase of the startup process. \n
*
* @param func Indicates the entry function for initializing and starting a system running phase.
* The type is void (*)(void).
*/
#define SYS_RUN(func) LAYER_INITCALL_DEF(func, run, "run")
#define SYS_RUN(func) LAYER_INITCALL_DEF(func, run, "run")
/**
* @brief Identifies the entry for initializing and starting a system running phase by the
* specified priority.
*
* This macro is used to identify the entry called at the specified priority in the system startup
* phase of the startup process. \n
*
* @param func Indicates the entry function for initializing and starting a system running phase.
* The type is void (*)(void).
* @param priority Indicates the calling priority when starting the system startup phase.
* The value range is [0, 5), and the calling sequence is 0, 1, 2, 3, and 4.
*/
#define SYS_RUN_PRI(func, priority) LAYER_INITCALL(func, run, "run", priority)
#define SYS_RUN_PRI(func, priority) LAYER_INITCALL(func, run, "run", priority)
/**
* @brief Identifies the entry for initializing and starting a system service by the priority 2.
*
* This macro is used to identify the entry called at the priority 2 in the system service
* phase of the startup process. \n
*
* @param func Indicates the entry function for initializing and starting a system service.
* The type is void (*)(void).
*/
#define SYSEX_SERVICE_INIT(func) LAYER_INITCALL_DEF(func, app_service, "app.service")
#define SYSEX_SERVICE_INIT(func) LAYER_INITCALL_DEF(func, app_service, "app.service")
/**
* @brief Identifies the entry for initializing and starting a system service by the specified
* priority.
*
* This macro is used to identify the entry called at the specified priority of the system service
* phase of the startup process. \n
*
* @param func Indicates the entry function for initializing and starting a system service.
* The type is void (*)(void).
* @param priority Indicates the calling priority when starting the system service phase.
* The value range is [0,5), and the calling sequence is 0, 1, 2, 3, and 4.
*/
#define SYSEX_SERVICE_INIT_PRI(func, priority) LAYER_INITCALL(func, app_service, "app.service", priority)
#define SYSEX_SERVICE_INIT_PRI(func, priority) LAYER_INITCALL(func, app_service, "app.service", priority)
/**
* @brief Identifies the entry for initializing and starting a system feature by the priority 2.
*
* This macro is used to identify the entry called at the priority 2 of the system feature
* phase of the startup process. \n
*
* @param func Indicates the entry function for initializing and starting a system feature.
* The type is void (*)(void).
*/
#define SYSEX_FEATURE_INIT(func) LAYER_INITCALL_DEF(func, app_feature, "app.feature")
#define SYSEX_FEATURE_INIT(func) LAYER_INITCALL_DEF(func, app_feature, "app.feature")
/**
* @brief Identifies the entry for initializing and starting a system feature by the specified
* priority.
*
* This macro is used to identify the entry called at the specified priority of the system feature
* phase of the startup process. \n
*
* @param func Indicates the entry function for initializing and starting a system feature.
* The type is void (*)(void).
* @param priority Indicates the calling priority when starting the system feature phase.
* The value range is [0,5), and the calling sequence is 0, 1, 2, 3, and 4.
*/
#define SYSEX_FEATURE_INIT_PRI(func, priority) LAYER_INITCALL(func, app_feature, "app.feature", priority)
#define SYSEX_FEATURE_INIT_PRI(func, priority) LAYER_INITCALL(func, app_feature, "app.feature", priority)
/**
* @brief Identifies the entry for initializing and starting an application-layer service by the
* priority 2.
*
* This macro is used to identify the entry called at the priority 2 of the application-layer
* service phase of the startup process. \n
*
* @param func Indicates the entry function for initializing and starting an application-layer
* service. The type is void (*)(void).
*/
#define APP_SERVICE_INIT(func) LAYER_INITCALL_DEF(func, app_service, "app.service")
#define APP_SERVICE_INIT(func) LAYER_INITCALL_DEF(func, app_service, "app.service")
/**
* @brief Identifies the entry for initializing and starting an application-layer service by the
* specified priority.
*
* This macro is used to identify the entry called at the specified priority of the
* application-layer service phase of the startup process. \n
*
* @param func Indicates the entry function for initializing and starting an application-layer
* service. The type is void (*)(void).
* @param priority Indicates the calling priority when starting the application-layer service
* phase. The value range is [0,5), and the calling sequence is 0, 1, 2, 3, and 4.
*/
#define APP_SERVICE_INIT_PRI(func, priority) LAYER_INITCALL(func, app_service, "app.service", priority)
#define APP_SERVICE_INIT_PRI(func, priority) LAYER_INITCALL(func, app_service, "app.service", priority)
/**
* @brief Identifies the entry for initializing and starting an application-layer feature by the
* priority 2.
*
* This macro is used to identify the entry called at the priority 2 of the application-layer
* feature phase of the startup process. \n
*
* @param func Indicates the entry function for initializing and starting an application-layer
* feature. The type is void (*)(void).
*/
#define APP_FEATURE_INIT(func) LAYER_INITCALL_DEF(func, app_feature, "app.feature")
#define APP_FEATURE_INIT(func) LAYER_INITCALL_DEF(func, app_feature, "app.feature")
/**
* @brief Identifies the entry for initializing and starting an application-layer feature by
* the specified priority.
*
* This macro is used to identify the entry called at the specified priority of the
* application-layer feature phase of the startup process. \n
*
* @param func Indicates the entry function for initializing and starting an application-layer
* feature. The type is void (*)(void).
* @param priority Indicates the calling priority when starting the application-layer feature.
* The value range is [0, 5), and the calling sequence is 0, 1, 2, 3, and 4.
*/
#define APP_FEATURE_INIT_PRI(func, priority) LAYER_INITCALL(func, app_feature, "app.feature", priority)
#define APP_FEATURE_INIT_PRI(func, priority) LAYER_INITCALL(func, app_feature, "app.feature", priority)
#ifdef __cplusplus
#ifdef __cplusplus
...
@@ -82,3 +284,4 @@ typedef void (*InitCall)(void);
...
@@ -82,3 +284,4 @@ typedef void (*InitCall)(void);
#endif
#endif
#endif
#endif
#endif // OHOS_LAYER_INIT_H
#endif // OHOS_LAYER_INIT_H
/** @} */
\ No newline at end of file
include/hos_types.h
浏览文件 @
ff5f89d5
...
@@ -12,6 +12,32 @@
...
@@ -12,6 +12,32 @@
* See the License for the specific language governing permissions and
* See the License for the specific language governing permissions and
* limitations under the License.
* limitations under the License.
*/
*/
/**
* @defgroup hos_types HOS Types
* @ingroup utils
* @addtogroup Types
* @{
*
* @brief Defintion of basic data types.
*
* The data types are applicable to both the application and kernel. \n
*
* @since 1.0
* @version 1.0
*/
/**
* @file ohos_init.h
*
* @brief Defintion of basic data types.
*
* The data types are applicable to both the application and kernel. \n
*
* @since 1.0
* @version 1.0
*/
#ifndef OHOS_TYPES_H
#ifndef OHOS_TYPES_H
#define OHOS_TYPES_H
#define OHOS_TYPES_H
...
@@ -21,8 +47,8 @@ extern "C"{
...
@@ -21,8 +47,8 @@ extern "C"{
#endif
#endif
#endif
/* __cplusplus */
#endif
/* __cplusplus */
/*
/*
*
* Defintion of basic data types.
*
@brief
Defintion of basic data types.
* The data types are applicable to both the application and kernel.
* The data types are applicable to both the application and kernel.
*/
*/
typedef
unsigned
char
uint8
;
typedef
unsigned
char
uint8
;
...
@@ -76,4 +102,4 @@ typedef unsigned int BOOL;
...
@@ -76,4 +102,4 @@ typedef unsigned int BOOL;
#endif
/* __cplusplus */
#endif
/* __cplusplus */
#endif
/* OHOS_TYPES_H */
#endif
/* OHOS_TYPES_H */
/** @} */
\ No newline at end of file
include/kv_store.h
浏览文件 @
ff5f89d5
...
@@ -14,6 +14,8 @@
...
@@ -14,6 +14,8 @@
*/
*/
/**
/**
* @defgroup kv_store KV Storage
* @ingroup utils
* @addtogroup kv_store
* @addtogroup kv_store
* @{
* @{
*
*
...
...
include/ohos_errno.h
浏览文件 @
ff5f89d5
...
@@ -12,6 +12,28 @@
...
@@ -12,6 +12,28 @@
* See the License for the specific language governing permissions and
* See the License for the specific language governing permissions and
* limitations under the License.
* limitations under the License.
*/
*/
/**
* @defgroup ohos_errno System Error No
* @ingroup utils
* @addtogroup Errno
* @{
*
* @brief Defintion of error code. The error codes are applicable to both the application and kernel.
*
* @since 1.0
* @version 1.0
*/
/**
* @file ohos_errno.h
*
* @brief Defintion of error code. The error codes are applicable to both the application and kernel.
*
* @since 1.0
* @version 1.0
*/
#ifndef OHOS_ERRNO_H
#ifndef OHOS_ERRNO_H
#define OHOS_ERRNO_H
#define OHOS_ERRNO_H
#ifdef __cplusplus
#ifdef __cplusplus
...
@@ -19,40 +41,41 @@
...
@@ -19,40 +41,41 @@
extern
"C"
{
extern
"C"
{
#endif
/* __cpluscplus */
#endif
/* __cpluscplus */
#endif
/* __cpluscplus */
#endif
/* __cpluscplus */
/* --------------------------------------------------------------------------------------------*
* Defintion of error code. The error codes are applicable to both the application and kernel
/**
*-------------------------------------------------------------------------------------------- */
* @brief Defintion of error code. The error codes are applicable to both the application and kernel
*/
enum
OHOSLiteErrorCode
{
enum
OHOSLiteErrorCode
{
EC_SUCCESS
=
0
,
/*
OK or No error */
EC_SUCCESS
=
0
,
/*<
OK or No error */
EC_FAILURE
=
-
1
,
/*
Execution failed */
EC_FAILURE
=
-
1
,
/*<
Execution failed */
EC_BADPTR
=
-
2
,
/*
Bad pointer value */
EC_BADPTR
=
-
2
,
/*<
Bad pointer value */
EC_NOMEMORY
=
-
3
,
/*
No enough memory */
EC_NOMEMORY
=
-
3
,
/*<
No enough memory */
EC_ADDRESS
=
-
4
,
/*
Memory or bus address error */
EC_ADDRESS
=
-
4
,
/*<
Memory or bus address error */
EC_IOERROR
=
-
5
,
/*
I/O error */
EC_IOERROR
=
-
5
,
/*<
I/O error */
EC_BUSBUSY
=
-
6
,
/*
xxx bus busy */
EC_BUSBUSY
=
-
6
,
/*<
xxx bus busy */
EC_NORESPONCE
=
-
7
,
/*
Function is no responce */
EC_NORESPONCE
=
-
7
,
/*<
Function is no responce */
EC_NODEVICE
=
-
8
,
/*
No such device */
EC_NODEVICE
=
-
8
,
/*<
No such device */
EC_INVALID
=
-
9
,
/*
Invalid argument */
EC_INVALID
=
-
9
,
/*<
Invalid argument */
EC_BUSY
=
-
10
,
/*
Device or resource busy */
EC_BUSY
=
-
10
,
/*<
Device or resource busy */
EC_NOSERVICE
=
-
11
,
/*
No service */
EC_NOSERVICE
=
-
11
,
/*<
No service */
EC_PERMISSION
=
-
12
,
/*
Permission denied */
EC_PERMISSION
=
-
12
,
/*<
Permission denied */
EC_NOFILE
=
-
13
,
/*
No this file */
EC_NOFILE
=
-
13
,
/*<
No this file */
EC_NOSPACE
=
-
14
,
/*
No space left on device */
EC_NOSPACE
=
-
14
,
/*<
No space left on device */
EC_NODIR
=
-
15
,
/*
Not a directory */
EC_NODIR
=
-
15
,
/*<
Not a directory */
EC_ROFILE
=
-
16
,
/*
Read-only file system */
EC_ROFILE
=
-
16
,
/*<
Read-only file system */
EC_NAMETOOLONG
=
-
17
,
/*
File name too long */
EC_NAMETOOLONG
=
-
17
,
/*<
File name too long */
EC_OPBLOCK
=
-
18
,
/*
Operation would block */
EC_OPBLOCK
=
-
18
,
/*<
Operation would block */
EC_TIMEOUT
=
-
19
,
/*
Timer expired */
EC_TIMEOUT
=
-
19
,
/*<
Timer expired */
EC_COMMU
=
-
20
,
/*
Communication error on send */
EC_COMMU
=
-
20
,
/*<
Communication error on send */
EC_PROTOCOL
=
-
21
,
/*
Protocol error */
EC_PROTOCOL
=
-
21
,
/*<
Protocol error */
EC_CANCELED
=
-
22
,
/*
Operation Canceled */
EC_CANCELED
=
-
22
,
/*<
Operation Canceled */
EC_NOKEY
=
-
23
,
/*
Required key not available */
EC_NOKEY
=
-
23
,
/*<
Required key not available */
EC_NOHANDLER
=
-
24
,
/*
No handler to execute */
EC_NOHANDLER
=
-
24
,
/*<
No handler to execute */
EC_FLOWCTRL
=
-
25
,
/*
Flow control */
EC_FLOWCTRL
=
-
25
,
/*<
Flow control */
EC_NOINIT
=
-
26
,
/*
device hasn't been initializeed */
EC_NOINIT
=
-
26
,
/*<
device hasn't been initializeed */
EC_NORESOURCE
=
-
27
,
/*
resource error */
EC_NORESOURCE
=
-
27
,
/*<
resource error */
EC_LLERRTOP
=
-
127
,
/*
Low level function error code max value */
EC_LLERRTOP
=
-
127
,
/*<
Low level function error code max value */
EC_HLERRBASE
=
-
128
/*
High level function error code baseline */
EC_HLERRBASE
=
-
128
/*<
High level function error code baseline */
};
};
#ifdef __cplusplus
#ifdef __cplusplus
...
@@ -60,4 +83,6 @@ enum OHOSLiteErrorCode {
...
@@ -60,4 +83,6 @@ enum OHOSLiteErrorCode {
}
}
#endif
/* __cpluscplus */
#endif
/* __cpluscplus */
#endif
/* __cpluscplus */
#endif
/* __cpluscplus */
#endif // OHOS_ERRNO_H
#endif // OHOS_ERRNO_H
/** @} */
\ No newline at end of file
include/ohos_init.h
浏览文件 @
ff5f89d5
...
@@ -14,7 +14,9 @@
...
@@ -14,7 +14,9 @@
*/
*/
/**
/**
* @addtogroup Init OHOS Init
* @defgroup ohos_init OHOS Init
* @ingroup utils
* @addtogroup Init
* @{
* @{
*
*
* @brief Provides the entries for initializing and starting services and features.
* @brief Provides the entries for initializing and starting services and features.
...
...
include/ohos_types.h
浏览文件 @
ff5f89d5
...
@@ -12,6 +12,32 @@
...
@@ -12,6 +12,32 @@
* See the License for the specific language governing permissions and
* See the License for the specific language governing permissions and
* limitations under the License.
* limitations under the License.
*/
*/
/**
* @defgroup ohos_types OHOS Types
* @ingroup utils
* @addtogroup Types
* @{
*
* @brief Defintion of basic data types.
*
* The data types are applicable to both the application and kernel. \n
*
* @since 1.0
* @version 1.0
*/
/**
* @file ohos_init.h
*
* @brief Defintion of basic data types.
*
* The data types are applicable to both the application and kernel. \n
*
* @since 1.0
* @version 1.0
*/
#ifndef OHOS_TYPES_H
#ifndef OHOS_TYPES_H
#define OHOS_TYPES_H
#define OHOS_TYPES_H
...
@@ -21,8 +47,8 @@ extern "C"{
...
@@ -21,8 +47,8 @@ extern "C"{
#endif
#endif
#endif
/* __cplusplus */
#endif
/* __cplusplus */
/*
/*
*
* Defintion of basic data types.
*
@brief
Defintion of basic data types.
* The data types are applicable to both the application and kernel.
* The data types are applicable to both the application and kernel.
*/
*/
typedef
unsigned
char
uint8
;
typedef
unsigned
char
uint8
;
...
@@ -79,4 +105,4 @@ typedef unsigned int BOOL;
...
@@ -79,4 +105,4 @@ typedef unsigned int BOOL;
#endif
/* __cplusplus */
#endif
/* __cplusplus */
#endif
/* OHOS_TYPES_H */
#endif
/* OHOS_TYPES_H */
/** @} */
\ No newline at end of file
include/utils_config.h
浏览文件 @
ff5f89d5
...
@@ -14,6 +14,8 @@
...
@@ -14,6 +14,8 @@
*/
*/
/**
/**
* @defgroup utils_config System Config
* @ingroup utils
* @addtogroup utils_config
* @addtogroup utils_config
* @{
* @{
*
*
...
...
include/utils_file.h
浏览文件 @
ff5f89d5
...
@@ -14,6 +14,8 @@
...
@@ -14,6 +14,8 @@
*/
*/
/**
/**
* @defgroup utils_file File Operations.
* @ingroup utils
* @addtogroup utils_file
* @addtogroup utils_file
* @{
* @{
*
*
...
@@ -182,7 +184,7 @@ int UtilsFileClose(int fd);
...
@@ -182,7 +184,7 @@ int UtilsFileClose(int fd);
* @since 1.0
* @since 1.0
* @version 1.0
* @version 1.0
*/
*/
int
UtilsFileRead
(
int
fd
,
char
*
buf
,
unsigned
int
len
);
int
UtilsFileRead
(
int
fd
,
char
*
buf
,
unsigned
int
len
);
/**
/**
* @brief Writes a specified length of data into a file with the specified file descriptor.
* @brief Writes a specified length of data into a file with the specified file descriptor.
...
@@ -194,7 +196,7 @@ int UtilsFileRead(int fd, char* buf, unsigned int len);
...
@@ -194,7 +196,7 @@ int UtilsFileRead(int fd, char* buf, unsigned int len);
* @since 1.0
* @since 1.0
* @version 1.0
* @version 1.0
*/
*/
int
UtilsFileWrite
(
int
fd
,
const
char
*
buf
,
unsigned
int
len
);
int
UtilsFileWrite
(
int
fd
,
const
char
*
buf
,
unsigned
int
len
);
/**
/**
* @brief Deletes a specified file.
* @brief Deletes a specified file.
...
@@ -206,7 +208,7 @@ int UtilsFileWrite(int fd, const char* buf, unsigned int len);
...
@@ -206,7 +208,7 @@ int UtilsFileWrite(int fd, const char* buf, unsigned int len);
* @since 1.0
* @since 1.0
* @version 1.0
* @version 1.0
*/
*/
int
UtilsFileDelete
(
const
char
*
path
);
int
UtilsFileDelete
(
const
char
*
path
);
/**
/**
* @brief Obtains the file size.
* @brief Obtains the file size.
...
@@ -217,7 +219,7 @@ int UtilsFileDelete(const char* path);
...
@@ -217,7 +219,7 @@ int UtilsFileDelete(const char* path);
* @since 1.0
* @since 1.0
* @version 1.0
* @version 1.0
*/
*/
int
UtilsFileStat
(
const
char
*
path
,
unsigned
int
*
fileSize
);
int
UtilsFileStat
(
const
char
*
path
,
unsigned
int
*
fileSize
);
/**
/**
* @brief Adjusts the read and write position offset in a file.
* @brief Adjusts the read and write position offset in a file.
...
...
include/utils_list.h
浏览文件 @
ff5f89d5
...
@@ -13,7 +13,7 @@
...
@@ -13,7 +13,7 @@
* limitations under the License.
* limitations under the License.
*/
*/
/*
/*
*
* @defgroup utils_list Doubly linked list
* @defgroup utils_list Doubly linked list
* @ingroup utils
* @ingroup utils
* @attention
* @attention
...
@@ -39,7 +39,7 @@ typedef struct UTILS_DL_LIST {
...
@@ -39,7 +39,7 @@ typedef struct UTILS_DL_LIST {
struct
UTILS_DL_LIST
*
pstNext
;
/* < Current node's pointer to the next node */
struct
UTILS_DL_LIST
*
pstNext
;
/* < Current node's pointer to the next node */
}
UTILS_DL_LIST
;
}
UTILS_DL_LIST
;
/*
/*
*
* @ingroup utils_list
* @ingroup utils_list
*
*
* @par Description:
* @par Description:
...
@@ -62,7 +62,7 @@ static inline void UtilsListInit(UTILS_DL_LIST *list)
...
@@ -62,7 +62,7 @@ static inline void UtilsListInit(UTILS_DL_LIST *list)
list
->
pstPrev
=
list
;
list
->
pstPrev
=
list
;
}
}
/*
/*
*
* @ingroup utils_list
* @ingroup utils_list
* @brief Point to the next node pointed to by the current node.
* @brief Point to the next node pointed to by the current node.
*
*
...
@@ -84,7 +84,7 @@ static inline void UtilsListInit(UTILS_DL_LIST *list)
...
@@ -84,7 +84,7 @@ static inline void UtilsListInit(UTILS_DL_LIST *list)
*/
*/
#define UTILS_DL_LIST_FIRST(object) ((object)->pstNext)
#define UTILS_DL_LIST_FIRST(object) ((object)->pstNext)
/*
/*
*
* @ingroup utils_list
* @ingroup utils_list
* @brief Node is the end of the list.
* @brief Node is the end of the list.
*
*
...
@@ -106,7 +106,7 @@ static inline void UtilsListInit(UTILS_DL_LIST *list)
...
@@ -106,7 +106,7 @@ static inline void UtilsListInit(UTILS_DL_LIST *list)
*/
*/
#define UTILS_DL_LIST_IS_END(list, node) ((list) == (node) ? TRUE : FALSE)
#define UTILS_DL_LIST_IS_END(list, node) ((list) == (node) ? TRUE : FALSE)
/*
/*
*
* @ingroup utils_list
* @ingroup utils_list
* @brief Node is on the list.
* @brief Node is on the list.
*
*
...
@@ -128,7 +128,7 @@ static inline void UtilsListInit(UTILS_DL_LIST *list)
...
@@ -128,7 +128,7 @@ static inline void UtilsListInit(UTILS_DL_LIST *list)
*/
*/
#define UTILS_DL_LIST_IS_ON_QUEUE(node) ((node)->pstPrev != NULL && (node)->pstNext != NULL)
#define UTILS_DL_LIST_IS_ON_QUEUE(node) ((node)->pstPrev != NULL && (node)->pstNext != NULL)
/*
/*
*
* @ingroup utils_list
* @ingroup utils_list
* @brief Point to the previous node pointed to by the current node.
* @brief Point to the previous node pointed to by the current node.
*
*
...
@@ -150,7 +150,7 @@ static inline void UtilsListInit(UTILS_DL_LIST *list)
...
@@ -150,7 +150,7 @@ static inline void UtilsListInit(UTILS_DL_LIST *list)
*/
*/
#define UTILS_DL_LIST_LAST(object) ((object)->pstPrev)
#define UTILS_DL_LIST_LAST(object) ((object)->pstPrev)
/*
/*
*
* @ingroup utils_list
* @ingroup utils_list
* @brief Insert a new node to a doubly linked list.
* @brief Insert a new node to a doubly linked list.
*
*
...
@@ -177,7 +177,7 @@ static inline void UtilsListAdd(UTILS_DL_LIST *list, UTILS_DL_LIST *node)
...
@@ -177,7 +177,7 @@ static inline void UtilsListAdd(UTILS_DL_LIST *list, UTILS_DL_LIST *node)
list
->
pstNext
=
node
;
list
->
pstNext
=
node
;
}
}
/*
/*
*
* @ingroup utils_list
* @ingroup utils_list
* @brief Insert a node to the tail of a doubly linked list.
* @brief Insert a node to the tail of a doubly linked list.
*
*
...
@@ -201,7 +201,7 @@ static inline void UtilsListTailInsert(UTILS_DL_LIST *list, UTILS_DL_LIST *node)
...
@@ -201,7 +201,7 @@ static inline void UtilsListTailInsert(UTILS_DL_LIST *list, UTILS_DL_LIST *node)
UtilsListAdd
(
list
->
pstPrev
,
node
);
UtilsListAdd
(
list
->
pstPrev
,
node
);
}
}
/*
/*
*
* @ingroup utils_list
* @ingroup utils_list
* @brief Insert a node to the head of a doubly linked list.
* @brief Insert a node to the head of a doubly linked list.
*
*
...
@@ -225,7 +225,7 @@ static inline void UtilsListHeadInsert(UTILS_DL_LIST *list, UTILS_DL_LIST *node)
...
@@ -225,7 +225,7 @@ static inline void UtilsListHeadInsert(UTILS_DL_LIST *list, UTILS_DL_LIST *node)
UtilsListAdd
(
list
,
node
);
UtilsListAdd
(
list
,
node
);
}
}
/*
/*
*
* @ingroup utils_list
* @ingroup utils_list
*
*
* @par Description:
* @par Description:
...
@@ -252,7 +252,7 @@ static inline void UtilsListDelete(UTILS_DL_LIST *node)
...
@@ -252,7 +252,7 @@ static inline void UtilsListDelete(UTILS_DL_LIST *node)
node
->
pstPrev
=
NULL
;
node
->
pstPrev
=
NULL
;
}
}
/*
/*
*
* @ingroup utils_list
* @ingroup utils_list
* @brief Identify whether a specified doubly linked list is empty.
* @brief Identify whether a specified doubly linked list is empty.
*
*
...
@@ -278,7 +278,7 @@ static inline bool UtilsListEmpty(UTILS_DL_LIST *list)
...
@@ -278,7 +278,7 @@ static inline bool UtilsListEmpty(UTILS_DL_LIST *list)
return
(
bool
)(
list
->
pstNext
==
list
);
return
(
bool
)(
list
->
pstNext
==
list
);
}
}
/*
/*
*
* @ingroup utils_list
* @ingroup utils_list
* @brief Insert a new list to a doubly linked list.
* @brief Insert a new list to a doubly linked list.
*
*
...
@@ -310,7 +310,7 @@ static inline void UtilsListAddList(UTILS_DL_LIST *oldList, UTILS_DL_LIST *newLi
...
@@ -310,7 +310,7 @@ static inline void UtilsListAddList(UTILS_DL_LIST *oldList, UTILS_DL_LIST *newLi
newListTail
->
pstNext
=
oldListHead
;
newListTail
->
pstNext
=
oldListHead
;
}
}
/*
/*
*
* @ingroup utils_list
* @ingroup utils_list
* @brief Insert a doubly list to the tail of a doubly linked list.
* @brief Insert a doubly list to the tail of a doubly linked list.
*
*
...
@@ -334,7 +334,7 @@ static inline void UtilsListTailInsertList(UTILS_DL_LIST *oldList, UTILS_DL_LIST
...
@@ -334,7 +334,7 @@ static inline void UtilsListTailInsertList(UTILS_DL_LIST *oldList, UTILS_DL_LIST
UtilsListAddList
(
oldList
->
pstPrev
,
newList
);
UtilsListAddList
(
oldList
->
pstPrev
,
newList
);
}
}
/*
/*
*
* @ingroup utils_list
* @ingroup utils_list
* @brief Insert a doubly list to the head of a doubly linked list.
* @brief Insert a doubly list to the head of a doubly linked list.
*
*
...
@@ -358,7 +358,7 @@ static inline void UtilsListHeadInsertList(UTILS_DL_LIST *oldList, UTILS_DL_LIST
...
@@ -358,7 +358,7 @@ static inline void UtilsListHeadInsertList(UTILS_DL_LIST *oldList, UTILS_DL_LIST
UtilsListAddList
(
oldList
,
newList
);
UtilsListAddList
(
oldList
,
newList
);
}
}
/*
/*
*
* @ingroup utils_list
* @ingroup utils_list
* @brief Obtain the offset of a field to a structure address.
* @brief Obtain the offset of a field to a structure address.
*
*
...
@@ -379,7 +379,7 @@ static inline void UtilsListHeadInsertList(UTILS_DL_LIST *oldList, UTILS_DL_LIST
...
@@ -379,7 +379,7 @@ static inline void UtilsListHeadInsertList(UTILS_DL_LIST *oldList, UTILS_DL_LIST
*/
*/
#define OFFSET_OF_FIELD(type, field) ((unsigned int)&((type *)0)->field)
#define OFFSET_OF_FIELD(type, field) ((unsigned int)&((type *)0)->field)
/*
/*
*
* @ingroup utils_list
* @ingroup utils_list
* @brief Obtain the pointer to a doubly linked list in a structure.
* @brief Obtain the pointer to a doubly linked list in a structure.
*
*
...
@@ -400,7 +400,7 @@ static inline void UtilsListHeadInsertList(UTILS_DL_LIST *oldList, UTILS_DL_LIST
...
@@ -400,7 +400,7 @@ static inline void UtilsListHeadInsertList(UTILS_DL_LIST *oldList, UTILS_DL_LIST
*/
*/
#define UTILS_OFF_SET_OF(type, member) ((unsigned int)&((type *)0)->member)
#define UTILS_OFF_SET_OF(type, member) ((unsigned int)&((type *)0)->member)
/*
/*
*
* @ingroup utils_list
* @ingroup utils_list
* @brief Obtain the pointer to a structure that contains a doubly linked list.
* @brief Obtain the pointer to a structure that contains a doubly linked list.
*
*
...
@@ -426,7 +426,7 @@ static inline void UtilsListHeadInsertList(UTILS_DL_LIST *oldList, UTILS_DL_LIST
...
@@ -426,7 +426,7 @@ static inline void UtilsListHeadInsertList(UTILS_DL_LIST *oldList, UTILS_DL_LIST
#define UTILS_DL_LIST_ENTRY(item, type, member) \
#define UTILS_DL_LIST_ENTRY(item, type, member) \
((
type
*
)(
void
*
)((
char
*
)(
item
)
-
UTILS_OFF_SET_OF
(
type
,
member
)))
((
type
*
)(
void
*
)((
char
*
)(
item
)
-
UTILS_OFF_SET_OF
(
type
,
member
)))
/*
/*
*
* @ingroup utils_list
* @ingroup utils_list
* @brief Iterate over a doubly linked list of given type.
* @brief Iterate over a doubly linked list of given type.
*
*
...
@@ -449,10 +449,10 @@ static inline void UtilsListHeadInsertList(UTILS_DL_LIST *oldList, UTILS_DL_LIST
...
@@ -449,10 +449,10 @@ static inline void UtilsListHeadInsertList(UTILS_DL_LIST *oldList, UTILS_DL_LIST
*/
*/
#define UTILS_DL_LIST_FOR_EACH_ENTRY(item, list, type, member) \
#define UTILS_DL_LIST_FOR_EACH_ENTRY(item, list, type, member) \
for
(
item
=
UTILS_DL_LIST_ENTRY
((
list
)
->
pstNext
,
type
,
member
);
\
for
(
item
=
UTILS_DL_LIST_ENTRY
((
list
)
->
pstNext
,
type
,
member
);
\
&
(
item
)
->
member
!=
(
list
);
\
&
(
item
)
->
member
!=
(
list
);
\
item
=
UTILS_DL_LIST_ENTRY
((
item
)
->
member
.
pstNext
,
type
,
member
))
item
=
UTILS_DL_LIST_ENTRY
((
item
)
->
member
.
pstNext
,
type
,
member
))
/*
/*
*
* @ingroup utils_list
* @ingroup utils_list
* @brief iterate over a doubly linked list safe against removal of list entry.
* @brief iterate over a doubly linked list safe against removal of list entry.
*
*
...
@@ -477,10 +477,10 @@ static inline void UtilsListHeadInsertList(UTILS_DL_LIST *oldList, UTILS_DL_LIST
...
@@ -477,10 +477,10 @@ static inline void UtilsListHeadInsertList(UTILS_DL_LIST *oldList, UTILS_DL_LIST
#define UTILS_DL_LIST_FOR_EACH_ENTRY_SAFE(item, next, list, type, member) \
#define UTILS_DL_LIST_FOR_EACH_ENTRY_SAFE(item, next, list, type, member) \
for
(
item
=
UTILS_DL_LIST_ENTRY
((
list
)
->
pstNext
,
type
,
member
),
\
for
(
item
=
UTILS_DL_LIST_ENTRY
((
list
)
->
pstNext
,
type
,
member
),
\
next
=
UTILS_DL_LIST_ENTRY
((
item
)
->
member
.
pstNext
,
type
,
member
);
\
next
=
UTILS_DL_LIST_ENTRY
((
item
)
->
member
.
pstNext
,
type
,
member
);
\
&
(
item
)
->
member
!=
(
list
);
\
&
(
item
)
->
member
!=
(
list
);
\
item
=
next
,
next
=
UTILS_DL_LIST_ENTRY
((
item
)
->
member
.
pstNext
,
type
,
member
))
item
=
next
,
next
=
UTILS_DL_LIST_ENTRY
((
item
)
->
member
.
pstNext
,
type
,
member
))
/*
/*
*
* @ingroup utils_list
* @ingroup utils_list
* @brief Delete initialize a doubly linked list.
* @brief Delete initialize a doubly linked list.
*
*
...
@@ -505,7 +505,7 @@ static inline void UtilsListDelInit(UTILS_DL_LIST *list)
...
@@ -505,7 +505,7 @@ static inline void UtilsListDelInit(UTILS_DL_LIST *list)
UtilsListInit
(
list
);
UtilsListInit
(
list
);
}
}
/*
/*
*
* @ingroup utils_list
* @ingroup utils_list
* @brief iterate over a doubly linked list.
* @brief iterate over a doubly linked list.
*
*
...
@@ -525,11 +525,11 @@ static inline void UtilsListDelInit(UTILS_DL_LIST *list)
...
@@ -525,11 +525,11 @@ static inline void UtilsListDelInit(UTILS_DL_LIST *list)
* @see
* @see
*/
*/
#define UTILS_DL_LIST_FOR_EACH(item, list) \
#define UTILS_DL_LIST_FOR_EACH(item, list) \
for
(
item
=
(
list
)
->
pstNext
;
\
for
(
item
=
(
list
)
->
pstNext
;
\
(
item
)
!=
(
list
);
\
(
item
)
!=
(
list
);
\
item
=
(
item
)
->
pstNext
)
item
=
(
item
)
->
pstNext
)
/*
/*
*
* @ingroup utils_list
* @ingroup utils_list
* @brief Iterate over a doubly linked list safe against removal of list entry.
* @brief Iterate over a doubly linked list safe against removal of list entry.
*
*
...
@@ -550,11 +550,11 @@ static inline void UtilsListDelInit(UTILS_DL_LIST *list)
...
@@ -550,11 +550,11 @@ static inline void UtilsListDelInit(UTILS_DL_LIST *list)
* @see
* @see
*/
*/
#define UTILS_DL_LIST_FOR_EACH_SAFE(item, next, list) \
#define UTILS_DL_LIST_FOR_EACH_SAFE(item, next, list) \
for
(
item
=
(
list
)
->
pstNext
,
next
=
(
item
)
->
pstNext
;
\
for
(
item
=
(
list
)
->
pstNext
,
next
=
(
item
)
->
pstNext
;
\
(
item
)
!=
(
list
);
\
(
item
)
!=
(
list
);
\
item
=
next
,
next
=
(
item
)
->
pstNext
)
item
=
next
,
next
=
(
item
)
->
pstNext
)
/*
/*
*
* @ingroup utils_list
* @ingroup utils_list
* @brief Initialize a double linked list.
* @brief Initialize a double linked list.
*
*
...
@@ -592,7 +592,7 @@ static inline void UtilsListDelInit(UTILS_DL_LIST *list)
...
@@ -592,7 +592,7 @@ static inline void UtilsListDelInit(UTILS_DL_LIST *list)
__t
=
NULL
;
\
__t
=
NULL
;
\
}
else
{
\
}
else
{
\
__t
=
UTILS_DL_LIST_ENTRY
((
list
)
->
pstNext
,
type
,
element
);
\
__t
=
UTILS_DL_LIST_ENTRY
((
list
)
->
pstNext
,
type
,
element
);
\
UtilsListDelete
((
list
)
->
pstNext
);
\
UtilsListDelete
((
list
)
->
pstNext
);
\
}
\
}
\
__t
;
\
__t
;
\
}
while
(
0
)
}
while
(
0
)
...
@@ -614,4 +614,5 @@ static inline void UtilsListDelInit(UTILS_DL_LIST *list)
...
@@ -614,4 +614,5 @@ static inline void UtilsListDelInit(UTILS_DL_LIST *list)
#endif
/* __cplusplus */
#endif
/* __cplusplus */
#endif
/* __cplusplus */
#endif
/* __cplusplus */
#endif
/* _UTILS_LIST_H */
#endif
/* _UTILS_LIST_H */
\ No newline at end of file
/** @} */
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录