Lines Matching defs:class

56  * Check if a given set/class combination is currently in use
63 mdmn_is_class_busy(set_t setno, md_mn_msgclass_t class)
65 if (mdmn_busy[setno][class] & MDMN_BUSY) {
73 * Mark a given set/class combination as currently in use
74 * If the class was already in use, returns FALSE
78 * if (mdmn_mark_class_busy(setno, class) == FALSE)
86 mdmn_mark_class_busy(set_t setno, md_mn_msgclass_t class)
88 if (mdmn_busy[setno][class] & MDMN_BUSY) {
91 mdmn_busy[setno][class] |= MDMN_BUSY;
92 commd_debug(MD_MMV_MISC, "busy: set=%d, class=%d\n",
93 setno, class);
99 * Mark a given set/class combination as currently available
102 * If this class is marked MDMN_SUSPEND_ALL, we are in the middle of
104 * We have to mark class+1 as MDMN_SUSPEND_ALL too.
105 * If class+2 wasn't busy, we proceed with class+2, and so on
106 * If any class is busy, we return.
108 * that busy class
111 mdmn_mark_class_unbusy(set_t setno, md_mn_msgclass_t class)
113 commd_debug(MD_MMV_MISC, "unbusy: set=%d, class=%d\n", setno, class);
114 mdmn_busy[setno][class] &= ~MDMN_BUSY;
118 if ((mdmn_busy[setno][class] & MDMN_SUSPEND_ALL) == 0) {
122 while (++class < MD_MN_NCLASSES) {
124 "unbusy: suspending set=%d, class=%d\n", setno, class);
125 if (mdmn_mark_class_suspended(setno, class, MDMN_SUSPEND_ALL)
135 * Check if a given set/class combination is locked.
138 mdmn_is_class_locked(set_t setno, md_mn_msgclass_t class)
140 if (mdmn_busy[setno][class] & MDMN_LOCKED) {
148 * Mark a given set/class combination as locked.
150 * Locking a locked set/class is ok.
155 mdmn_mark_class_locked(set_t setno, md_mn_msgclass_t class)
157 mdmn_busy[setno][class] |= MDMN_LOCKED;
161 * Mark a given set/class combination as unlocked.
163 * Unlocking a unlocked set/class is ok.
168 mdmn_mark_class_unlocked(set_t setno, md_mn_msgclass_t class)
170 mdmn_busy[setno][class] &= ~MDMN_LOCKED;
174 * Suspend a set/class combination
177 * If only one class is about to be drained susptype is MDMN_SUSPEND_1.
186 mdmn_mark_class_suspended(set_t setno, md_mn_msgclass_t class, uint_t susptype)
191 mdmn_busy[setno][class] |= susptype;
194 * If there are outstanding messages for this set/class we
197 if (mdmn_is_class_busy(setno, class) == TRUE) {
204 * Resume operation for a set/class combination after it was
207 * If called from mdmn_comm_resume_svc_1 to resume _one_ specific class
217 mdmn_mark_class_resumed(set_t setno, md_mn_msgclass_t class, uint_t susptype)
220 mdmn_busy[setno][class] &= ~susptype;
224 * Check if a drain command was issued for this set/class combination.
229 mdmn_is_class_suspended(set_t setno, md_mn_msgclass_t class)
231 if (mdmn_busy[setno][class] & (MDMN_SUSPEND_ALL | MDMN_SUSPEND_1)) {
244 mdmn_set_master_table_res(set_t setno, md_mn_msgclass_t class,
247 mdmn_master_table[setno][class].wtm_result = res;
250 mdmn_set_master_table_id(set_t setno, md_mn_msgclass_t class, md_mn_msgid_t *id)
252 MSGID_COPY(id, &(mdmn_master_table[setno][class].wtm_id));
256 mdmn_set_master_table_addr(set_t setno, md_mn_msgclass_t class,
259 mdmn_master_table[setno][class].wtm_addr = nid;
264 mdmn_get_master_table_res(set_t setno, md_mn_msgclass_t class)
266 return (mdmn_master_table[setno][class].wtm_result);
270 mdmn_get_master_table_id(set_t setno, md_mn_msgclass_t class, md_mn_msgid_t *id)
272 MSGID_COPY(&(mdmn_master_table[setno][class].wtm_id), id);
276 mdmn_get_master_table_cv(set_t setno, md_mn_msgclass_t class)
278 return (&(mdmn_master_table[setno][class].wtm_cv));
282 mdmn_get_master_table_mx(set_t setno, md_mn_msgclass_t class)
284 return (&(mdmn_master_table[setno][class].wtm_mx));
288 mdmn_get_master_table_addr(set_t setno, md_mn_msgclass_t class)
290 return (mdmn_master_table[setno][class].wtm_addr);
299 mdmn_register_initiator_table(set_t setno, md_mn_msgclass_t class,
307 &(mdmn_initiator_table[setno][class].wti_id));
308 mdmn_initiator_table[setno][class].wti_transp = transp;
309 mdmn_initiator_table[setno][class].wti_args = (char *)msg;
316 mdmn_initiator_table[setno][class].wti_time =
321 * If the set/class combination is currently busy, return MDMNE_CLASS_BUSY
325 mdmn_check_initiator_table(set_t setno, md_mn_msgclass_t class)
327 if ((mdmn_initiator_table[setno][class].wti_id.mid_nid == ~0u) &&
328 (mdmn_initiator_table[setno][class].wti_transp == (SVCXPRT *)NULL))
338 mdmn_unregister_initiator_table(set_t setno, md_mn_msgclass_t class)
340 mdmn_initiator_table[setno][class].wti_id.mid_nid = ~0u;
341 mdmn_initiator_table[setno][class].wti_id.mid_time = 0LL;
342 mdmn_initiator_table[setno][class].wti_transp = (SVCXPRT *)NULL;
343 mdmn_initiator_table[setno][class].wti_args = (char *)0;
344 mdmn_initiator_table[setno][class].wti_time = (time_t)0;
348 mdmn_get_initiator_table_id(set_t setno, md_mn_msgclass_t class,
351 MSGID_COPY(&(mdmn_initiator_table[setno][class].wti_id), mid);
355 mdmn_get_initiator_table_transp(set_t setno, md_mn_msgclass_t class)
357 return (mdmn_initiator_table[setno][class].wti_transp);
361 mdmn_get_initiator_table_args(set_t setno, md_mn_msgclass_t class)
363 return (mdmn_initiator_table[setno][class].wti_args);
367 mdmn_get_initiator_table_mx(set_t setno, md_mn_msgclass_t class)
369 return (&(mdmn_initiator_table[setno][class].wti_mx));
373 mdmn_get_initiator_table_time(set_t setno, md_mn_msgclass_t class)
375 return (mdmn_initiator_table[setno][class].wti_time);
483 * So, for every possible node and for every possible class we can store
487 * class * MAX_SUBMESSAGES +
501 md_mn_msgclass_t class;
510 class = mdmn_get_message_class(msg->msg_type);
512 class = msg->msg_msgid.mid_oclass;
515 mct_index = submsg + class * MAX_SUBMESSAGES +