更新日期: 2022/06/01 来源: https://gitee.com/weharmony/kernel_liteos_a_note
los_rwlock_pri.h
浏览该文件的文档.
1/*
2 * Copyright (c) 2013-2019 Huawei Technologies Co., Ltd. All rights reserved.
3 * Copyright (c) 2020-2021 Huawei Device Co., Ltd. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without modification,
6 * are permitted provided that the following conditions are met:
7 *
8 * 1. Redistributions of source code must retain the above copyright notice, this list of
9 * conditions and the following disclaimer.
10 *
11 * 2. Redistributions in binary form must reproduce the above copyright notice, this list
12 * of conditions and the following disclaimer in the documentation and/or other materials
13 * provided with the distribution.
14 *
15 * 3. Neither the name of the copyright holder nor the names of its contributors may be used
16 * to endorse or promote products derived from this software without specific prior written
17 * permission.
18 *
19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
21 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
23 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
24 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
25 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
26 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
27 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
28 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
29 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 */
31
32#ifndef _LOS_RWLOCK_PRI_H
33#define _LOS_RWLOCK_PRI_H
34
35#include "los_rwlock.h"
36#include "los_task_pri.h"
37
38#ifdef __cplusplus
39#if __cplusplus
40extern "C" {
41#endif /* __cplusplus */
42#endif /* __cplusplus */
43
44#define OS_RWLOCK_MAGIC 0xEFDCAU ///< 读写锁魔法数字
45
47 RWLOCK_NONE_MODE, ///< 自由模式: 读写链表都没有内容
48 RWLOCK_READ_MODE, ///< 读模式: 读链表有数据,写链表没有数据
49 RWLOCK_WRITE_MODE, ///< 写模式: 写链表有数据,读链表没有数据
50 RWLOCK_READFIRST_MODE, ///< 读优先模式: 读链表中的任务最高优先级高于写链表中任务最高优先级
51 RWLOCK_WRITEFIRST_MODE ///< 写优先模式: 写链表中的任务最高优先级高于读链表中任务最高优先级
52};
53
54extern UINT32 OsRwlockRdUnsafe(LosRwlock *rwlock, UINT32 timeout);
55extern UINT32 OsRwlockTryRdUnsafe(LosRwlock *rwlock, UINT32 timeout);
56extern UINT32 OsRwlockWrUnsafe(LosRwlock *rwlock, UINT32 timeout);
57extern UINT32 OsRwlockTryWrUnsafe(LosRwlock *rwlock, UINT32 timeout);
58extern UINT32 OsRwlockUnlockUnsafe(LosRwlock *rwlock, BOOL *needSched);
59
60#ifdef __cplusplus
61#if __cplusplus
62}
63#endif /* __cplusplus */
64#endif /* __cplusplus */
65
66#endif /* _LOS_RWLOCK_PRI_H */
UINT32 OsRwlockWrUnsafe(LosRwlock *rwlock, UINT32 timeout)
Definition: los_rwlock.c:290
UINT32 OsRwlockTryWrUnsafe(LosRwlock *rwlock, UINT32 timeout)
Definition: los_rwlock.c:299
UINT32 OsRwlockRdUnsafe(LosRwlock *rwlock, UINT32 timeout)
Definition: los_rwlock.c:252
UINT32 OsRwlockUnlockUnsafe(LosRwlock *rwlock, BOOL *needSched)
释放锁,唤醒任务
Definition: los_rwlock.c:449
UINT32 OsRwlockTryRdUnsafe(LosRwlock *rwlock, UINT32 timeout)
Definition: los_rwlock.c:261
RwlockMode
@ RWLOCK_READ_MODE
读模式: 读链表有数据,写链表没有数据
@ RWLOCK_WRITE_MODE
写模式: 写链表有数据,读链表没有数据
@ RWLOCK_READFIRST_MODE
读优先模式: 读链表中的任务最高优先级高于写链表中任务最高优先级
@ RWLOCK_NONE_MODE
自由模式: 读写链表都没有内容
@ RWLOCK_WRITEFIRST_MODE
写优先模式: 写链表中的任务最高优先级高于读链表中任务最高优先级
unsigned int UINT32
Definition: los_typedef.h:57
size_t BOOL
Definition: los_typedef.h:88