#include "lib/trace.h"
#include "lib/types.h"
#include "lib/chan.h"
#include "lib/misc.h"
#include "lib/memory.h"
#include "lib/time.h"
#include "lib/vec.h"
#include "fop/fom_generic.h"
#include "fid/fid.h"
#include "ut/ut.h"
#include "rm/rm.h"
#include "rm/rm_internal.h"
#include "rm/rm_rwlock.h"
#include "rm/ut/rmut.h"
Go to the source code of this file.
◆ INREQ
#define INREQ |
( |
|
srv_id | ) |
(&rm_ctxs[srv_id].rc_test_data.rd_in) |
◆ M0_TRACE_SUBSYSTEM
#define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_UT |
◆ OWNER
#define OWNER |
( |
|
srv_id | ) |
rm_ctxs[srv_id].rc_test_data.rd_owner |
◆ rwlock_acquire()
◆ rwlock_acquire_nowait()
◆ rwlock_build_hierarchy()
static void rwlock_build_hierarchy |
( |
void |
| ) |
|
|
static |
◆ rwlock_encdec_test()
static void rwlock_encdec_test |
( |
| ) |
|
|
static |
◆ rwlock_incoming_complete()
static void rwlock_incoming_complete |
( |
struct m0_rm_incoming * |
in, |
|
|
int32_t |
rc |
|
) |
| |
|
static |
◆ rwlock_incoming_conflict()
◆ rwlock_owner_set()
static void rwlock_owner_set |
( |
struct rm_ut_data * |
self | ) |
|
|
static |
◆ rwlock_owner_unset()
static void rwlock_owner_unset |
( |
struct rm_ut_data * |
self | ) |
|
|
static |
◆ rwlock_read_read_hold_test()
void rwlock_read_read_hold_test |
( |
void |
| ) |
|
◆ rwlock_read_read_sharing_test()
void rwlock_read_read_sharing_test |
( |
void |
| ) |
|
◆ rwlock_read_test()
void rwlock_read_test |
( |
void |
| ) |
|
◆ rwlock_read_write_hold_test()
void rwlock_read_write_hold_test |
( |
void |
| ) |
|
◆ rwlock_release()
◆ rwlock_req_wait()
◆ rwlock_servers_disc_fini()
static void rwlock_servers_disc_fini |
( |
void |
| ) |
|
|
static |
◆ rwlock_servers_windup()
static void rwlock_servers_windup |
( |
void |
| ) |
|
|
static |
◆ rwlock_two_read_locks_test()
void rwlock_two_read_locks_test |
( |
void |
| ) |
|
◆ rwlock_utfini()
static void rwlock_utfini |
( |
void |
| ) |
|
|
static |
◆ rwlock_utinit()
static void rwlock_utinit |
( |
void |
| ) |
|
|
static |
◆ rwlock_write_read_hold_test1()
void rwlock_write_read_hold_test1 |
( |
void |
| ) |
|
◆ rwlock_write_read_hold_test2()
void rwlock_write_read_hold_test2 |
( |
void |
| ) |
|
◆ rwlock_write_test()
void rwlock_write_test |
( |
void |
| ) |
|
◆ rwlock_write_write_hold_test()
void rwlock_write_write_hold_test |
( |
void |
| ) |
|
◆ rwlock_writer_starvation_test()
void rwlock_writer_starvation_test |
( |
void |
| ) |
|
◆ rwlockable_res_set()
static void rwlockable_res_set |
( |
struct rm_ut_data * |
self | ) |
|
|
static |
◆ rwlockable_res_unset()
static void rwlockable_res_unset |
( |
struct rm_ut_data * |
self | ) |
|
|
static |
◆ rwlockable_rtype_set()
static void rwlockable_rtype_set |
( |
struct rm_ut_data * |
self | ) |
|
|
static |
◆ rwlockable_rtype_unset()
static void rwlockable_rtype_unset |
( |
struct rm_ut_data * |
self | ) |
|
|
static |
◆ conflict_sem
◆ rm_rwlock_ut
Initial value:= {
.ts_name = "rm-rwlock-ut",
.ts_tests = {
}
}
void rwlock_write_read_hold_test1(void)
void rwlock_write_test(void)
void rwlock_read_read_sharing_test(void)
void rwlock_two_read_locks_test(void)
void rwlock_read_test(void)
void rwlock_write_read_hold_test2(void)
static void rwlock_encdec_test()
void rwlock_write_write_hold_test(void)
void rwlock_read_write_hold_test(void)
void rwlock_read_read_hold_test(void)
void rwlock_writer_starvation_test(void)
Definition at line 572 of file rm_rwlock.c.
◆ rwlock_incoming_ops
Initial value:= {
}
static void rwlock_incoming_complete(struct m0_rm_incoming *in, int32_t rc)
static void rwlock_incoming_conflict(struct m0_rm_incoming *in)
Definition at line 135 of file rm_rwlock.c.
◆ rwlock_ut_data_ops
Initial value:= {
}
static void rwlockable_res_set(struct rm_ut_data *self)
static void rwlockable_rtype_set(struct rm_ut_data *self)
static void rwlockable_res_unset(struct rm_ut_data *self)
static void rwlock_owner_unset(struct rm_ut_data *self)
static void rwlock_owner_set(struct rm_ut_data *self)
static void rwlockable_rtype_unset(struct rm_ut_data *self)
Definition at line 114 of file rm_rwlock.c.
◆ test_servers_nr
◆ waiting_sem