POK(kernelpart)
lockobj.h File Reference
#include <types.h>
#include <arch.h>

Go to the source code of this file.

Data Structures

struct  pok_lockobj_attr_t
struct  pok_lockobj_t
struct  pok_lockobj_lockattr_t

Macros

#define POK_CONFIG_NB_LOCKOBJECTS   0

Enumerations

enum  pok_lockobj_kind_t { POK_LOCKOBJ_KIND_MUTEX = 1, POK_LOCKOBJ_KIND_SEMAPHORE = 2, POK_LOCKOBJ_KIND_EVENT = 3 }
enum  pok_locking_policy_t { POK_LOCKOBJ_POLICY_STANDARD = 0, POK_LOCKOBJ_POLICY_PIP = 1, POK_LOCKOBJ_POLICY_PCP = 2 }
enum  pok_mutex_state_t { LOCKOBJ_STATE_LOCK = 0, LOCKOBJ_STATE_UNLOCK = 1, LOCKOBJ_STATE_WAITEVENT = 2 }
enum  pok_lockobj_lock_kind_t { LOCKOBK_LOCK_REGULAR = 1, LOCKOBJ_LOCK_TIMED = 2 }
enum  pok_lockobj_operation_t {
  LOCKOBJ_OPERATION_LOCK = 1, LOCKOBJ_OPERATION_UNLOCK = 2, LOCKOBJ_OPERATION_WAIT = 3, LOCKOBJ_OPERATION_SIGNAL = 4,
  LOCKOBJ_OPERATION_BROADCAST = 5
}

Functions

pok_ret_t pok_lockobj_create (pok_lockobj_t *obj, const pok_lockobj_attr_t *attr)
pok_ret_t pok_lockobj_init ()
pok_ret_t pok_lockobj_partition_create (pok_lockobj_id_t *id, const pok_lockobj_attr_t *attr)
pok_ret_t pok_lockobj_lock (pok_lockobj_t *obj, const pok_lockobj_lockattr_t *attr)
pok_ret_t pok_lockobj_unlock (pok_lockobj_t *obj, const pok_lockobj_lockattr_t *attr)
pok_ret_t pok_lockobj_eventwait (pok_lockobj_t *obj, const uint64_t timeout)
pok_ret_t pok_lockobj_eventsignal (pok_lockobj_t *obj)
pok_ret_t pok_lockobj_eventbroadcast (pok_lockobj_t *obj)
pok_ret_t pok_lockobj_partition_wrapper (const pok_lockobj_id_t id, const pok_lockobj_lockattr_t *attr)

Macro Definition Documentation

#define POK_CONFIG_NB_LOCKOBJECTS   0

Definition at line 25 of file lockobj.h.


Enumeration Type Documentation

Enumerator:
POK_LOCKOBJ_POLICY_STANDARD 
POK_LOCKOBJ_POLICY_PIP 
POK_LOCKOBJ_POLICY_PCP 

Definition at line 47 of file lockobj.h.

Enumerator:
POK_LOCKOBJ_KIND_MUTEX 
POK_LOCKOBJ_KIND_SEMAPHORE 
POK_LOCKOBJ_KIND_EVENT 

Definition at line 38 of file lockobj.h.

Enumerator:
LOCKOBK_LOCK_REGULAR 
LOCKOBJ_LOCK_TIMED 

Definition at line 100 of file lockobj.h.

Enumerator:
LOCKOBJ_OPERATION_LOCK 
LOCKOBJ_OPERATION_UNLOCK 
LOCKOBJ_OPERATION_WAIT 
LOCKOBJ_OPERATION_SIGNAL 
LOCKOBJ_OPERATION_BROADCAST 

Definition at line 106 of file lockobj.h.

Enumerator:
LOCKOBJ_STATE_LOCK 
LOCKOBJ_STATE_UNLOCK 
LOCKOBJ_STATE_WAITEVENT 

Definition at line 55 of file lockobj.h.


Function Documentation

pok_ret_t pok_lockobj_create ( pok_lockobj_t obj,
const pok_lockobj_attr_t attr 
)
pok_ret_t pok_lockobj_eventbroadcast ( pok_lockobj_t obj)
pok_ret_t pok_lockobj_eventsignal ( pok_lockobj_t obj)
pok_ret_t pok_lockobj_eventwait ( pok_lockobj_t obj,
const uint64_t  timeout 
)
pok_ret_t pok_lockobj_init ( )
pok_ret_t pok_lockobj_lock ( pok_lockobj_t obj,
const pok_lockobj_lockattr_t attr 
)
pok_ret_t pok_lockobj_partition_create ( pok_lockobj_id_t id,
const pok_lockobj_attr_t attr 
)
pok_ret_t pok_lockobj_partition_wrapper ( const pok_lockobj_id_t  id,
const pok_lockobj_lockattr_t attr 
)
pok_ret_t pok_lockobj_unlock ( pok_lockobj_t obj,
const pok_lockobj_lockattr_t attr 
)