Lines Matching full:pf
58 ck_pflock_init(struct ck_pflock *pf) in ck_pflock_init() argument
61 pf->rin = 0; in ck_pflock_init()
62 pf->rout = 0; in ck_pflock_init()
63 pf->win = 0; in ck_pflock_init()
64 pf->wout = 0; in ck_pflock_init()
71 ck_pflock_write_unlock(ck_pflock_t *pf) in ck_pflock_write_unlock() argument
77 ck_pr_and_32(&pf->rin, CK_PFLOCK_LSB); in ck_pflock_write_unlock()
80 ck_pr_faa_32(&pf->wout, 1); in ck_pflock_write_unlock()
85 ck_pflock_write_lock(ck_pflock_t *pf) in ck_pflock_write_lock() argument
90 ticket = ck_pr_faa_32(&pf->win, 1); in ck_pflock_write_lock()
91 while (ck_pr_load_32(&pf->wout) != ticket) in ck_pflock_write_lock()
99 ticket = ck_pr_faa_32(&pf->rin, in ck_pflock_write_lock()
103 while (ck_pr_load_32(&pf->rout) != ticket) in ck_pflock_write_lock()
111 ck_pflock_read_unlock(ck_pflock_t *pf) in ck_pflock_read_unlock() argument
115 ck_pr_faa_32(&pf->rout, CK_PFLOCK_RINC); in ck_pflock_read_unlock()
120 ck_pflock_read_lock(ck_pflock_t *pf) in ck_pflock_read_lock() argument
128 w = ck_pr_faa_32(&pf->rin, CK_PFLOCK_RINC) & CK_PFLOCK_WBITS; in ck_pflock_read_lock()
133 while ((ck_pr_load_32(&pf->rin) & CK_PFLOCK_WBITS) == w) in ck_pflock_read_lock()