/* * A Marvel machine check frame is always packaged in an * el_subpacket of class HEADER, type LOGOUT_FRAME.
*/ if (el_ptr->class != EL_CLASS__HEADER ||
el_ptr->type != EL_TYPE__HEADER__LOGOUT_FRAME) return NULL;
/* * It is a logout frame header. Look at the one subpacket.
*/
el_ptr = (struct el_subpacket *)
((unsignedlong)el_ptr + el_ptr->length);
/* * It has to be class PAL, type LOGOUT_FRAME.
*/ if (el_ptr->class != EL_CLASS__PAL ||
el_ptr->type != EL_TYPE__PAL__LOGOUT_FRAME) return NULL;
/* * Process the subpackets.
*/
subpacket = (struct el_subpacket *)
((unsignedlong)el_ptr + el_ptr->length); for (i = 0;
subpacket && i < lf_subpackets->logout->subpacket_count;
subpacket = (struct el_subpacket *)
((unsignedlong)subpacket + subpacket->length), i++) { /* * All subpackets should be class PAL.
*/ if (subpacket->class != EL_CLASS__PAL) {
printk("%s**UNEXPECTED SUBPACKET CLASS %d " "IN LOGOUT FRAME (packet %d\n",
err_print_prefix, subpacket->class, i); return NULL;
}
/* * Remember the subpacket.
*/ switch(subpacket->type) { case EL_TYPE__PAL__EV7_PROCESSOR:
lf_subpackets->ev7 =
(struct ev7_pal_processor_subpacket *)
subpacket->by_type.raw.data_start; break;
case EL_TYPE__PAL__EV7_RBOX:
lf_subpackets->rbox = (struct ev7_pal_rbox_subpacket *)
subpacket->by_type.raw.data_start; break;
case EL_TYPE__PAL__EV7_ZBOX:
lf_subpackets->zbox = (struct ev7_pal_zbox_subpacket *)
subpacket->by_type.raw.data_start; break;
case EL_TYPE__PAL__EV7_IO:
lf_subpackets->io = (struct ev7_pal_io_subpacket *)
subpacket->by_type.raw.data_start; break;
case EL_TYPE__PAL__ENV__AMBIENT_TEMPERATURE: case EL_TYPE__PAL__ENV__AIRMOVER_FAN: case EL_TYPE__PAL__ENV__VOLTAGE: case EL_TYPE__PAL__ENV__INTRUSION: case EL_TYPE__PAL__ENV__POWER_SUPPLY: case EL_TYPE__PAL__ENV__LAN: case EL_TYPE__PAL__ENV__HOT_PLUG:
lf_subpackets->env[ev7_lf_env_index(subpacket->type)] =
(struct ev7_pal_environmental_subpacket *)
subpacket->by_type.raw.data_start; break;
default: /* * Don't know what kind of frame this is.
*/ return NULL;
}
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.