Motr  M0
fom_long_lock.h File Reference
#include "fop/fop.h"
#include "lib/list.h"
#include "lib/chan.h"
#include "lib/mutex.h"
#include "lib/bob.h"
Include dependency graph for fom_long_lock.h:

Go to the source code of this file.

Data Structures

struct  m0_long_lock_addb2
 
struct  m0_long_lock_link
 
struct  m0_long_lock
 
struct  m0_be_long_lock
 

Macros

#define __MOTR_LONG_LOCK_H__
 
#define M0_BE_LONG_LOCK_PAD   (264 + 88)
 
#define M0_FOM_LONG_LOCK_RETURN(rc)   ((rc) ? M0_FSO_AGAIN : M0_FSO_WAIT)
 

Enumerations

enum  m0_long_lock_state { M0_LONG_LOCK_UNLOCKED, M0_LONG_LOCK_RD_LOCKED, M0_LONG_LOCK_WR_LOCKED }
 
enum  m0_long_lock_type { M0_LONG_LOCK_READER, M0_LONG_LOCK_WRITER }
 

Functions

struct m0_be_long_lock M0_XCA_DOMAIN (be)
 
 M0_BASSERT (sizeof(struct m0_long_lock)<=sizeof(M0_FIELD_VALUE(struct m0_be_long_lock, bll_u.pad)))
 
M0_INTERNAL void m0_long_lock_init (struct m0_long_lock *lock)
 
M0_INTERNAL void m0_long_lock_fini (struct m0_long_lock *lock)
 
M0_INTERNAL bool m0_long_read_lock (struct m0_long_lock *lk, struct m0_long_lock_link *link, int next_phase)
 
M0_INTERNAL bool m0_long_write_lock (struct m0_long_lock *lk, struct m0_long_lock_link *link, int next_phase)
 
M0_INTERNAL bool m0_long_lock (struct m0_long_lock *lock, bool write, struct m0_long_lock_link *link, int next_phase)
 
M0_INTERNAL void m0_long_read_unlock (struct m0_long_lock *lock, struct m0_long_lock_link *link)
 
M0_INTERNAL void m0_long_write_unlock (struct m0_long_lock *lock, struct m0_long_lock_link *link)
 
M0_INTERNAL void m0_long_unlock (struct m0_long_lock *lock, struct m0_long_lock_link *link)
 
M0_INTERNAL bool m0_long_is_read_locked (struct m0_long_lock *lock, const struct m0_fom *fom)
 
M0_INTERNAL bool m0_long_is_write_locked (struct m0_long_lock *lock, const struct m0_fom *fom)
 
M0_INTERNAL void m0_long_lock_link_init (struct m0_long_lock_link *link, struct m0_fom *fom, struct m0_long_lock_addb2 *addb2)
 
M0_INTERNAL void m0_long_lock_link_fini (struct m0_long_lock_link *link)
 
 M0_BOB_DECLARE (M0_EXTERN, m0_long_lock)
 
 M0_BOB_DECLARE (M0_EXTERN, m0_long_lock_link)
 
M0_INTERNAL void m0_fom_ll_global_init (void)
 

Variables

union {
   struct m0_long_lock   llock
 
   char   pad [M0_BE_LONG_LOCK_PAD]
 
bll_u
 

Macro Definition Documentation

◆ __MOTR_LONG_LOCK_H__

#define __MOTR_LONG_LOCK_H__

Definition at line 26 of file fom_long_lock.h.

Variable Documentation

◆ bll_u

union { ... } bll_u

◆ llock

struct m0_long_lock llock

Definition at line 362 of file fom_long_lock.h.

◆ pad

Definition at line 363 of file fom_long_lock.h.