XFusion API
v1.3.0
载入中...
搜索中...
未找到
xf_lock.c
浏览该文件的文档.
1
12
/* ==================== [Includes] ========================================== */
13
14
#include "
xf_lock.h
"
15
#include "../xf_std/xf_stddef.h"
16
17
/* ==================== [Defines] =========================================== */
18
19
/* ==================== [Typedefs] ========================================== */
20
21
/* ==================== [Static Prototypes] ================================= */
22
23
/* ==================== [Static Variables] ================================== */
24
25
static
const
xf_lock_ops_t
*
sp_ops
= NULL;
26
27
/* ==================== [Macros] ============================================ */
28
29
/* ==================== [Global Functions] ================================== */
30
31
xf_err_t
xf_lock_register
(
const
xf_lock_ops_t
*
const
p_ops)
32
{
33
if
((NULL == p_ops)
34
|| (NULL == p_ops->
init
)
35
|| (NULL == p_ops->
trylock
)
36
|| (NULL == p_ops->
unlock
)) {
37
return
XF_FAIL
;
38
}
39
sp_ops
= p_ops;
40
return
XF_OK
;
41
}
42
48
xf_err_t
xf_lock_init
(
xf_lock_t
*p_lock)
49
{
50
if
((NULL ==
sp_ops
) || (NULL == p_lock)) {
51
return
XF_FAIL
;
52
}
53
return
sp_ops
->
init
(p_lock);
54
}
55
56
xf_err_t
xf_lock_destroy
(
xf_lock_t
lock
)
57
{
58
if
((NULL ==
sp_ops
) || (NULL ==
sp_ops
->
destroy
)) {
59
return
XF_FAIL
;
60
}
61
return
(
sp_ops
->
destroy
(
lock
));
62
}
63
64
int
xf_lock_trylock
(
xf_lock_t
lock
)
65
{
66
if
((NULL ==
sp_ops
) || (NULL ==
sp_ops
->
trylock
)) {
67
return
XF_LOCK_FAIL
;
68
}
69
return
sp_ops
->
trylock
(
lock
);
70
}
71
72
int
xf_lock_lock
(
xf_lock_t
lock
)
73
{
74
if
((NULL ==
sp_ops
) || (NULL ==
sp_ops
->
lock
)) {
75
return
XF_LOCK_FAIL
;
76
}
77
return
sp_ops
->
lock
(
lock
);
78
}
79
80
int
xf_lock_timedlock
(
xf_lock_t
lock
, uint32_t timeout_ms)
81
{
82
if
((NULL ==
sp_ops
) || (NULL ==
sp_ops
->
timedlock
)) {
83
return
XF_LOCK_FAIL
;
84
}
85
return
sp_ops
->
timedlock
(
lock
, timeout_ms);
86
}
87
88
int
xf_lock_unlock
(
xf_lock_t
lock
)
89
{
90
if
((NULL ==
sp_ops
) || (NULL ==
sp_ops
->
unlock
)) {
91
return
XF_LOCK_FAIL
;
92
}
93
return
sp_ops
->
unlock
(
lock
);
94
}
95
96
/* ==================== [Static Functions] ================================== */
97
xf_err_t
int32_t xf_err_t
整形错误类型。 错误码具体值见 xf_err_code_t.
Definition
xf_err.h:69
XF_FAIL
@ XF_FAIL
Definition
xf_err.h:42
XF_OK
@ XF_OK
Definition
xf_err.h:43
xf_lock_init
xf_err_t xf_lock_init(xf_lock_t *p_lock)
初始化锁.
Definition
xf_lock.c:48
xf_lock_unlock
int xf_lock_unlock(xf_lock_t lock)
解锁.
Definition
xf_lock.c:88
XF_LOCK_FAIL
#define XF_LOCK_FAIL
Definition
xf_lock_types.h:33
xf_lock_lock
int xf_lock_lock(xf_lock_t lock)
锁定直至成功.
Definition
xf_lock.c:72
xf_lock_trylock
int xf_lock_trylock(xf_lock_t lock)
尝试上锁.
Definition
xf_lock.c:64
xf_lock_timedlock
int xf_lock_timedlock(xf_lock_t lock, uint32_t timeout_ms)
锁定直至成功或者超时.
Definition
xf_lock.c:80
xf_lock_t
void * xf_lock_t
lock 句柄.
Definition
xf_lock_types.h:40
xf_lock_destroy
xf_err_t xf_lock_destroy(xf_lock_t lock)
销毁锁.
Definition
xf_lock.c:56
lock
static void lock(fdb_db_t db)
Definition
xf_main.c:199
xf_lock_ops_s
锁操作结构体.
Definition
xf_lock_types.h:144
xf_lock_ops_s::timedlock
xf_lock_ops_timedlock_t timedlock
Definition
xf_lock_types.h:149
xf_lock_ops_s::init
xf_lock_ops_init_t init
Definition
xf_lock_types.h:145
xf_lock_ops_s::lock
xf_lock_ops_lock_t lock
Definition
xf_lock_types.h:148
xf_lock_ops_s::trylock
xf_lock_ops_trylock_t trylock
Definition
xf_lock_types.h:147
xf_lock_ops_s::unlock
xf_lock_ops_unlock_t unlock
Definition
xf_lock_types.h:150
xf_lock_ops_s::destroy
xf_lock_ops_destroy_t destroy
Definition
xf_lock_types.h:146
sp_ops
static const xf_lock_ops_t * sp_ops
Definition
xf_lock.c:25
xf_lock_register
xf_err_t xf_lock_register(const xf_lock_ops_t *const p_ops)
注册锁操作.
Definition
xf_lock.c:31
xf_lock.h
锁抽象层。
components
xf_utils
xf_utils
src
xf_lock
xf_lock.c
生成于 2025年 一月 21日 星期二 17:25:09 , 为 XFusion API使用
1.9.8