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;
}
示例#2
0
文件: monreader.c 项目: 274914765/C
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
}
示例#3
0
文件: monreader.c 项目: 274914765/C
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;
}
示例#5
0
文件: monreader.c 项目: 274914765/C
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;
}