// // Purpose: i/o tag alloc // FS_Io_Type *FS_util_io_tag_alloc(FS_Fd_Type *pp_fd, int pv_io_type, SB_Tag_Type pv_tag_user, SB_Transid_Type pv_transid, SB_Transseq_Type pv_startid, char *pp_buffer) { FS_Io_Type *lp_io; int lv_tag; if (pp_fd->ip_io_tag_mgr->size() <= pp_fd->iv_nowait_depth) { lv_tag = pp_fd->ip_io_tag_mgr->alloc(); lp_io = &pp_fd->ip_io[lv_tag]; lp_io->ip_fd = pp_fd; lp_io->iv_io_type = pv_io_type; lp_io->iv_msgid = 0; lp_io->iv_tag_user = pv_tag_user; TRANSID_COPY(lp_io->iv_transid, pv_transid); TRANSSEQ_COPY(lp_io->iv_startid, pv_startid); lp_io->ip_buffer = pp_buffer; // link in lp_io->ip_io_next = NULL; lp_io->ip_io_prev = pp_fd->ip_io_new; if (pp_fd->ip_io_new == NULL) pp_fd->ip_io_old = lp_io; else pp_fd->ip_io_new->ip_io_next = lp_io; pp_fd->ip_io_new = lp_io; lp_io->iv_inuse = true; } else lp_io = NULL; return lp_io; }
void trans_set_curr(MS_Mon_Transid_Type trans) { TRANSID_COPY(curr_transid, trans); }
void trans_set_curr(MS_Mon_Transid_Type trans, MS_Mon_Transseq_Type startid) { TRANSID_COPY(curr_transid, trans); TRANSSEQ_COPY(curr_startid, startid); }