lock_descriptor_t
lock_descriptor_t ld;
if (mdb_vread(&ld, sizeof (lock_descriptor_t), wsp->walk_addr) == -1) {
const lock_descriptor_t *ld = data;
const lock_descriptor_t *ld = data;
flk_free_lock(lock_descriptor_t *lock)
kmem_free((void *)lock, sizeof (lock_descriptor_t));
flk_set_state(lock_descriptor_t *lock, int new_state)
flk_process_request(lock_descriptor_t *request)
lock_descriptor_t *lock;
lock_descriptor_t *covered_by = NULL;
lock_descriptor_t *lk[1];
lock_descriptor_t *first_glock = NULL;
flk_execute_request(lock_descriptor_t *request)
lock_descriptor_t *lock, *lock1;
flk_wait_execute_request(lock_descriptor_t *request)
flk_add_edge(lock_descriptor_t *from_lock, lock_descriptor_t *to_lock,
lock_descriptor_t *vertex;
lock_descriptor_t *vertex_stack;
flk_relation(lock_descriptor_t *lock, lock_descriptor_t *request)
lock_descriptor_t *lock1, *lock2;
lock_descriptor_t *topology[3];
static void create_flock(lock_descriptor_t *, flock64_t *);
static lock_descriptor_t *flk_get_lock(void);
static void flk_free_lock(lock_descriptor_t *lock);
static void flk_get_first_blocking_lock(lock_descriptor_t *request);
static int flk_process_request(lock_descriptor_t *);
static int flk_add_edge(lock_descriptor_t *, lock_descriptor_t *, int, int);
static int flk_wait_execute_request(lock_descriptor_t *);
static int flk_relation(lock_descriptor_t *, lock_descriptor_t *);
static void flk_insert_active_lock(lock_descriptor_t *);
static void flk_delete_active_lock(lock_descriptor_t *, int);
static void flk_insert_sleeping_lock(lock_descriptor_t *);
static void flk_wakeup(lock_descriptor_t *, int);
static void flk_recompute_dependencies(lock_descriptor_t *,
lock_descriptor_t **, int, int);
static int flk_find_barriers(lock_descriptor_t *);
static void flk_update_barriers(lock_descriptor_t *);
static int flk_color_reachables(lock_descriptor_t *);
static int flk_canceled(lock_descriptor_t *);
static void flk_delete_locks_by_sysid(lock_descriptor_t *);
static void report_blocker(lock_descriptor_t *, lock_descriptor_t *);
flk_insert_active_lock(lock_descriptor_t *new_lock)
lock_descriptor_t *first_lock, *lock;
static void wait_for_lock(lock_descriptor_t *);
flk_delete_active_lock(lock_descriptor_t *lock, int free_lock)
flk_insert_sleeping_lock(lock_descriptor_t *request)
lock_descriptor_t *lock;
flk_cancel_sleeping_lock(lock_descriptor_t *request, int remove_from_queue)
lock_descriptor_t **topology = NULL;
lock_descriptor_t *vertex, *lock;
lock_descriptor_t *vertex_stack;
static int no_path(lock_descriptor_t *, lock_descriptor_t *);
topology = kmem_zalloc(nvertex * sizeof (lock_descriptor_t *),
static void path(lock_descriptor_t *, lock_descriptor_t *);
static int level_one_path(lock_descriptor_t *, lock_descriptor_t *);
static int level_two_path(lock_descriptor_t *, lock_descriptor_t *, int);
static int flk_check_deadlock(lock_descriptor_t *);
(nvertex * sizeof (lock_descriptor_t *)));
static proc_vertex_t *flk_get_proc_vertex(lock_descriptor_t *);
lock_descriptor_t *lock;
flk_wakeup(lock_descriptor_t *lock, int adj_list_remove)
lock_descriptor_t *lck;
flk_recompute_dependencies(lock_descriptor_t *request,
lock_descriptor_t **topology, int nvertex, int update_graph)
lock_descriptor_t *vertex, *lock;
lock_descriptor_t *vertex_stack;
flk_color_reachables(lock_descriptor_t *vertex)
lock_descriptor_t *ver, *lock;
lock_descriptor_t *vertex_stack;
flk_update_barriers(lock_descriptor_t *lock)
lock_descriptor_t *vertex, *lck;
lock_descriptor_t *vertex_stack;
flk_find_barriers(lock_descriptor_t *lock)
lock_descriptor_t *vertex, *lck;
lock_descriptor_t *vertex_stack;
flk_get_first_blocking_lock(lock_descriptor_t *request)
lock_descriptor_t *lock, *blocker;
(lock_descriptor_t *)ACTIVE_HEAD(gp_alloc);
(lock_descriptor_t *)SLEEPING_HEAD(gp_alloc);
lock_descriptor_t *lock;
lock_descriptor_t *lock;
lock_descriptor_t *lock;
lock_descriptor_t *lock;
lock_descriptor_t *lock, *nlock;
flk_delete_locks_by_sysid(lock_descriptor_t *request)
lock_descriptor_t *lock, *nlock;
lock_descriptor_t *lock, *nlock;
flk_canceled(lock_descriptor_t *request)
lock_descriptor_t *lock, *nlock;
lock_descriptor_t *lock, *nlock;
lock_descriptor_t *link_stack;
lock_descriptor_t stack_lock_request;
lock_descriptor_t *lock_request;
flk_check_deadlock(lock_descriptor_t *lock)
flk_get_proc_vertex(lock_descriptor_t *lock)
sizeof (lock_descriptor_t));
lock_descriptor_t *lock;
lock_descriptor_t *graph_head;
lock_descriptor_t *lock; /* lock */
lock_descriptor_t *nlock = NULL; /* next lock */
lock_descriptor_t *lock;
lock_descriptor_t *nlock = NULL; /* next lock */
lock_descriptor_t *lock;
lock_descriptor_t *nlock = NULL; /* next lock */
lock_descriptor_t *lock;
lock_descriptor_t *nlock = NULL; /* next lock */
lock_descriptor_t *lock;
lock_descriptor_t *nlock = NULL; /* next lock */
wait_for_lock(lock_descriptor_t *request)
create_flock(lock_descriptor_t *lp, flock64_t *flp)
report_blocker(lock_descriptor_t *blocker, lock_descriptor_t *request)
lock_descriptor_t *lock;
lock_descriptor_t *, lock);
lock_descriptor_t *lock, *lock1;
lock_descriptor_t *lock1, *lock2;
level_two_path(lock_descriptor_t *lock1, lock_descriptor_t *lock2, int no_path)
lock_descriptor_t *vertex;
lock_descriptor_t *vertex_stack;
lock_descriptor_t *lock;
level_one_path(lock_descriptor_t *lock1, lock_descriptor_t *lock2)
no_path(lock_descriptor_t *lock1, lock_descriptor_t *lock2)
path(lock_descriptor_t *lock1, lock_descriptor_t *lock2)
lock_descriptor_t *fplock, *lock, *nlock;
if ((fplock = (lock_descriptor_t *)fp->f_filock) == NULL)
lock_descriptor_t stack_lock_request;
lock_descriptor_t *lock_request;
sizeof (lock_descriptor_t));
static lock_descriptor_t *
lock_descriptor_t *l;
l = kmem_zalloc(sizeof (lock_descriptor_t), KM_SLEEP);
int flk_execute_request(lock_descriptor_t *);
void flk_cancel_sleeping_lock(lock_descriptor_t *, int);
void flk_set_state(lock_descriptor_t *, int);
(lock) = (lock_descriptor_t *)vp->v_filocks; \
extern void cl_flk_state_transition_notify(lock_descriptor_t *lock,
(lock)->l_next = (lock)->l_prev = (lock_descriptor_t *)NULL; \