static inline void mon_next_mca(struct mon_msg *monmsg) { if (likely((mon_mca_size(monmsg) - monmsg->mca_offset) == 12)) return; monmsg->mca_offset += 12; monmsg->pos = 0; }
static inline void mon_read_debug(struct mon_msg *monmsg, struct mon_private *monpriv) { #ifdef MON_DEBUG u8 msg_type[2], mca_type; unsigned long records_len; records_len = mon_rec_end(monmsg) - mon_rec_start(monmsg) + 1; memcpy(msg_type, &monmsg->msg.class, 2); EBCASC(msg_type, 2); mca_type = mon_mca_type(monmsg, 0); EBCASC(&mca_type, 1); P_DEBUG("read, mon_read_index = %i, mon_write_index = %i\n", monpriv->read_index, monpriv->write_index); P_DEBUG("read, pathid = 0x%04X, msgid = 0x%08X, trgcls = 0x%08X\n", monpriv->path->pathid, monmsg->msg.id, monmsg->msg.class); P_DEBUG("read, msg_type = '%c%c', mca_type = '%c' / 0x%X / 0x%X\n", msg_type[0], msg_type[1], mca_type ? mca_type : 'X', mon_mca_type(monmsg, 1), mon_mca_type(monmsg, 2)); P_DEBUG("read, MCA: start = 0x%lX, end = 0x%lX\n", mon_mca_start(monmsg), mon_mca_end(monmsg)); P_DEBUG("read, REC: start = 0x%X, end = 0x%X, len = %lu\n\n", mon_rec_start(monmsg), mon_rec_end(monmsg), records_len); if (mon_mca_size(monmsg) > 12) P_DEBUG("READ, MORE THAN ONE MCA\n\n"); #endif }
static inline void mon_next_mca(struct mon_msg *monmsg) { if (likely((mon_mca_size(monmsg) - monmsg->mca_offset) == 12)) return; P_DEBUG("READ, NEXT MCA\n\n"); monmsg->mca_offset += 12; monmsg->pos = 0; }
static int mon_check_mca(struct mon_msg *monmsg) { if ((mon_rec_end(monmsg) <= mon_rec_start(monmsg)) || (mon_rec_start(monmsg) < mon_dcss_start) || (mon_rec_end(monmsg) > mon_dcss_end) || (mon_mca_type(monmsg, 0) == 0) || (mon_mca_size(monmsg) % 12 != 0) || (mon_mca_end(monmsg) <= mon_mca_start(monmsg)) || (mon_mca_end(monmsg) > mon_dcss_end) || (mon_mca_start(monmsg) < mon_dcss_start) || ((mon_mca_type(monmsg, 1) == 0) && (mon_mca_type(monmsg, 2) == 0))) return -EINVAL; return 0; }
static int mon_check_mca(struct mon_msg *monmsg) { if ((mon_rec_end(monmsg) <= mon_rec_start(monmsg)) || (mon_rec_start(monmsg) < mon_dcss_start) || (mon_rec_end(monmsg) > mon_dcss_end) || (mon_mca_type(monmsg, 0) == 0) || (mon_mca_size(monmsg) % 12 != 0) || (mon_mca_end(monmsg) <= mon_mca_start(monmsg)) || (mon_mca_end(monmsg) > mon_dcss_end) || (mon_mca_start(monmsg) < mon_dcss_start) || ((mon_mca_type(monmsg, 1) == 0) && (mon_mca_type(monmsg, 2) == 0))) { P_DEBUG("READ, IGNORED INVALID MCA\n\n"); return -EINVAL; } return 0; }