/* Get SEL Info */ static void rs40(tvbuff_t *tvb, proto_tree *tree) { static const int *ops[] = { &hf_ipmi_stor_40_op_overflow, &hf_ipmi_stor_40_op_delete, &hf_ipmi_stor_40_op_partial_add, &hf_ipmi_stor_40_op_reserve, &hf_ipmi_stor_40_op_allocinfo, NULL }; proto_tree_add_item(tree, hf_ipmi_stor_40_sel_version, tvb, 0, 1, ENC_LITTLE_ENDIAN); proto_tree_add_item(tree, hf_ipmi_stor_40_entries, tvb, 1, 2, ENC_LITTLE_ENDIAN); proto_tree_add_item(tree, hf_ipmi_stor_40_free_space, tvb, 3, 2, ENC_LITTLE_ENDIAN); ipmi_add_timestamp(tree, hf_ipmi_stor_40_ts_add, tvb, 5); ipmi_add_timestamp(tree, hf_ipmi_stor_40_ts_erase, tvb, 9); proto_tree_add_bitmask_text(tree, tvb, 13, 1, "Operation Support: ", NULL, ett_ipmi_stor_40_ops, ops, ENC_LITTLE_ENDIAN, 0); }
/* Get SDR Repository Info */ static void rs20(tvbuff_t *tvb, proto_tree *tree) { static const int *ops[] = { &hf_ipmi_stor_20_op_overflow, &hf_ipmi_stor_20_op_update, &hf_ipmi_stor_20_op_delete, &hf_ipmi_stor_20_op_partial_add, &hf_ipmi_stor_20_op_reserve, &hf_ipmi_stor_20_op_allocinfo, NULL }; guint8 v; v = tvb_get_guint8(tvb, 0); proto_tree_add_item(tree, hf_ipmi_stor_20_sdr_version, tvb, 0, 1, TRUE); proto_tree_add_item(tree, hf_ipmi_stor_20_rec_count, tvb, 1, 2, TRUE); proto_tree_add_item(tree, hf_ipmi_stor_20_free_space, tvb, 3, 2, TRUE); ipmi_add_timestamp(tree, hf_ipmi_stor_20_ts_add, tvb, 5); ipmi_add_timestamp(tree, hf_ipmi_stor_20_ts_erase, tvb, 9); proto_tree_add_bitmask_text(tree, tvb, 13, 1, "Operation Support: ", NULL, ett_ipmi_stor_20_ops, ops, TRUE, 0); }
static void bootopt_06(tvbuff_t *tvb, proto_tree *tree) { static const int *byte1[] = { &hf_ipmi_chs_bo06_chan_num, NULL }; proto_tree_add_bitmask_text(tree, tvb, 0, 1, NULL, NULL, ett_ipmi_chs_bo06_byte1, byte1, TRUE, 0); proto_tree_add_item(tree, hf_ipmi_chs_bo06_session_id, tvb, 1, 4, TRUE); ipmi_add_timestamp(tree, hf_ipmi_chs_bo06_bootinfo_timestamp, tvb, 5); }
static void rs5a(tvbuff_t *tvb, proto_tree *tree) { guint32 v; if (!ipmi_getsaveddata(0, &v) || v > 2) { proto_tree_add_item(tree, hf_ipmi_stor_5a_unknown, tvb, 0, tvb_length(tvb), TRUE); return; } ipmi_add_timestamp(tree, hf_ipmi_stor_5a_ts_add, tvb, 0); if (v == 0) { proto_tree_add_item(tree, hf_ipmi_stor_5a_num_entries, tvb, 4, 4, TRUE); } else if (v == 1 || v == 2) { proto_tree_add_item(tree, hf_ipmi_stor_5a_iana, tvb, 4, 3, TRUE); proto_tree_add_item(tree, hf_ipmi_stor_5a_bytes, tvb, 7, 7, TRUE); } }
/* Set Auxiliary Log Status */ static void rq5b(tvbuff_t *tvb, proto_tree *tree) { static const int *byte1[] = { &hf_ipmi_stor_5b_log_type, NULL }; guint8 v = tvb_get_guint8(tvb, 0); proto_tree_add_bitmask_text(tree, tvb, 0, 1, NULL, NULL, ett_ipmi_stor_5b_byte1, byte1, TRUE, 0); if (v > 2) { proto_tree_add_item(tree, hf_ipmi_stor_5b_unknown, tvb, 1, tvb_length(tvb) - 1, TRUE); return; } ipmi_add_timestamp(tree, hf_ipmi_stor_5b_ts_add, tvb, 1); if (v == 0) { proto_tree_add_item(tree, hf_ipmi_stor_5b_num_entries, tvb, 5, 4, TRUE); } else if (v == 1 || v == 2) { proto_tree_add_item(tree, hf_ipmi_stor_5b_iana, tvb, 5, 3, TRUE); proto_tree_add_item(tree, hf_ipmi_stor_5b_bytes, tvb, 8, 8, TRUE); } }
/* Set SEL Time */ static void rq49(tvbuff_t *tvb, proto_tree *tree) { ipmi_add_timestamp(tree, hf_ipmi_stor_49_time, tvb, 0); }