Lines Matching refs:cp
137 #define CALLB_CPR_INIT(cp, lockp, func, name) { \ argument
138 bzero((caddr_t)(cp), sizeof (callb_cpr_t)); \
139 (cp)->cc_lockp = lockp; \
140 (cp)->cc_id = callb_add(func, (void *)(cp), \
145 #define CALLB_CPR_ASSERT(cp) ASSERT(MUTEX_HELD((cp)->cc_lockp)); argument
147 #define CALLB_CPR_ASSERT(cp) argument
171 #define CALLB_CPR_SAFE_BEGIN(cp) { \ argument
172 CALLB_CPR_ASSERT(cp) \
173 (cp)->cc_events |= CALLB_CPR_SAFE; \
174 if ((cp)->cc_events & CALLB_CPR_START) \
175 cv_signal(&(cp)->cc_callb_cv); \
177 #define CALLB_CPR_SAFE_END(cp, lockp) { \ argument
178 CALLB_CPR_ASSERT(cp) \
179 while ((cp)->cc_events & CALLB_CPR_START) \
180 cv_wait(&(cp)->cc_stop_cv, lockp); \
181 (cp)->cc_events &= ~CALLB_CPR_SAFE; \
186 #define CALLB_CPR_EXIT(cp) { \ argument
187 CALLB_CPR_ASSERT(cp) \
188 (cp)->cc_events |= CALLB_CPR_SAFE; \
189 if ((cp)->cc_events & CALLB_CPR_START) \
190 cv_signal(&(cp)->cc_callb_cv); \
191 mutex_exit((cp)->cc_lockp); \
192 (void) callb_delete((cp)->cc_id); \
193 cv_destroy(&(cp)->cc_callb_cv); \
194 cv_destroy(&(cp)->cc_stop_cv); \