>
> Thanks!
> eric
I don't care either way.
> >
> >
> > >
> > > >
> > > >
> > > > > #define SERIALIZATIONINSTRUCTIONCTX(name, \
> > > > > inst, bit_width, offset) \
> > > > > BuildSerializationInstructionEntry name = { \
> > > > > .table_data = table_instruction_data, \
> > > > > .bar = bar0, \
> > > > > .instruction = inst, \
> > > > > .flags = 0, \
> > > > > .register_bit_width = bit_width, \
> > > > > .register_offset = offset, \
> > > > > }
> > > > > SERIALIZATIONINSTRUCTIONCTX(rd_value_32_val,
> > > > > INST_READ_REGISTER_VALUE, 32, ERST_VALUE_OFFSET);
> > > > > SERIALIZATIONINSTRUCTIONCTX(rd_value_32,
> > > > > INST_READ_REGISTER, 32, ERST_VALUE_OFFSET);
> > > > > SERIALIZATIONINSTRUCTIONCTX(rd_value_64,
> > > > > INST_READ_REGISTER, 64, ERST_VALUE_OFFSET);
> > > > > SERIALIZATIONINSTRUCTIONCTX(wr_value_32_val,
> > > > > INST_WRITE_REGISTER_VALUE, 32, ERST_VALUE_OFFSET);
> > > > > SERIALIZATIONINSTRUCTIONCTX(wr_value_32,
> > > > > INST_WRITE_REGISTER, 32, ERST_VALUE_OFFSET);
> > > > > SERIALIZATIONINSTRUCTIONCTX(wr_value_64,
> > > > > INST_WRITE_REGISTER, 64, ERST_VALUE_OFFSET);
> > > > > SERIALIZATIONINSTRUCTIONCTX(wr_action,
> > > > > INST_WRITE_REGISTER_VALUE, 32, ERST_ACTION_OFFSET);
> > > > >
> > > > > These are the 7 accessors needed.
> > > >
> > > > not at all sure this one is worth the macro mess.
> > >
> > > I'm hoping to produce a v15 with the style you want.
> > > eric
> > >
> > > >
> > > > > >
> > > > > > > + unsigned action;
> > > > > > > +
> > > > > > > + trace_acpi_erst_pci_bar_0(bar0);
> > > > > > > +
> > > > > > > + /* Serialization Instruction Entries */
> > > > > > > + action = ACTION_BEGIN_WRITE_OPERATION;
> > > > > > > + build_serialization_instruction(&wr_action, action,
action);
> > > > > > > +
> > > > > > > + action = ACTION_BEGIN_READ_OPERATION;
> > > > > > > + build_serialization_instruction(&wr_action, action,
action);
> > > > > > > +
> > > > > > > + action = ACTION_BEGIN_CLEAR_OPERATION;
> > > > > > > + build_serialization_instruction(&wr_action, action,
action);
> > > > > > > +
> > > > > > > + action = ACTION_END_OPERATION;
> > > > > > > + build_serialization_instruction(&wr_action, action,
action);
> > > > > > > +
> > > > > > > + action = ACTION_SET_RECORD_OFFSET;
> > > > > > > + build_serialization_instruction(&wr_value_32, action,
0);
> > > > > > > + build_serialization_instruction(&wr_action, action,
action);
> > > > > > > +
> > > > > > > + action = ACTION_EXECUTE_OPERATION;
> > > > > > > + build_serialization_instruction(&wr_value_32_val,
action,
> > > > > > > + ERST_EXECUTE_OPERATION_MAGIC);
> > > > > > > + build_serialization_instruction(&wr_action, action,
action);
> > > > > > > +
> > > > > > > + action = ACTION_CHECK_BUSY_STATUS;
> > > > > > > + build_serialization_instruction(&wr_action, action,
action);
> > > > > > > + build_serialization_instruction(&rd_value_32_val,
action, 0x01);
> > > > > > > +
> > > > > > > + action = ACTION_GET_COMMAND_STATUS;
> > > > > > > + build_serialization_instruction(&wr_action, action,
action);
> > > > > > > + build_serialization_instruction(&rd_value_32, action,
0);
> > > > > > > +
> > > > > > > + action = ACTION_GET_RECORD_IDENTIFIER;
> > > > > > > + build_serialization_instruction(&wr_action, action,
action);
> > > > > > > + build_serialization_instruction(&rd_value_64, action,
0);
> > > > > > > +
> > > > > > > + action = ACTION_SET_RECORD_IDENTIFIER;
> > > > > > > + build_serialization_instruction(&wr_value_64, action,
0);
> > > > > > > + build_serialization_instruction(&wr_action, action,
action);
> > > > > > > +
> > > > > > > + action = ACTION_GET_RECORD_COUNT;
> > > > > > > + build_serialization_instruction(&wr_action, action,
action);
> > > > > > > + build_serialization_instruction(&rd_value_32, action,
0);
> > > > > > > +
> > > > > > > + action = ACTION_BEGIN_DUMMY_WRITE_OPERATION;
> > > > > > > + build_serialization_instruction(&wr_action, action,
action);
> > > > > > > +
> > > > > > > + action = ACTION_GET_ERROR_LOG_ADDRESS_RANGE;
> > > > > > > + build_serialization_instruction(&wr_action, action,
action);
> > > > > > > + build_serialization_instruction(&rd_value_64, action,
0);
> > > > > > > +
> > > > > > > + action = ACTION_GET_ERROR_LOG_ADDRESS_LENGTH;
> > > > > > > + build_serialization_instruction(&wr_action, action,
action);
> > > > > > > + build_serialization_instruction(&rd_value_64, action,
0);
> > > > > > > +
> > > > > > > + action = ACTION_GET_ERROR_LOG_ADDRESS_RANGE_ATTRIBUTES;
> > > > > > > + build_serialization_instruction(&wr_action, action,
action);
> > > > > > > + build_serialization_instruction(&rd_value_32, action,
0);
> > > > > > > +
> > > > > > > + action = ACTION_GET_EXECUTE_OPERATION_TIMINGS;
> > > > > > > + build_serialization_instruction(&wr_action, action,
action);
> > > > > > > + build_serialization_instruction(&rd_value_64, action,
0);
> > > > > > > +
> > > > > > > + /* Serialization Header */
> > > > > > > + acpi_table_begin(&table, table_data);
> > > > > > > +
> > > > > > > + /* Serialization Header Size */
> > > > > > > + build_append_int_noprefix(table_data, 48, 4);
> > > > > > > +
> > > > > > > + /* Reserved */
> > > > > > > + build_append_int_noprefix(table_data, 0, 4);
> > > > > > > +
> > > > > > > + /*
> > > > > > > + * Instruction Entry Count
> > > > > > > + * Each instruction entry is 32 bytes
> > > > > > > + */
> > > > > > > + g_assert((table_instruction_data->len) % 32 == 0);
> > > > > > > + build_append_int_noprefix(table_data,
> > > > > > > + (table_instruction_data->len / 32), 4);
> > > > > > > +
> > > > > > > + /* Serialization Instruction Entries */
> > > > > > > + g_array_append_vals(table_data,
table_instruction_data->data,
> > > > > > > + table_instruction_data->len);
> > > > > > > + g_array_free(table_instruction_data, TRUE);
> > > > > > > +
> > > > > > > + acpi_table_end(linker, &table);
> > > > > > > +}
> > > > > > > +
> > > > > > >
+/*******************************************************************/
> > > > > > >
+/*******************************************************************/
> > > > > > > static uint8_t *get_nvram_ptr_by_index(ERSTDeviceState
*s, unsigned index)
> > > > > > > {
> > > > > > > uint8_t *rc = NULL;
> > > > > > > --
> > > > > > > 1.8.3.1
> > > > > > >
> > > > > > >
> > > >
> >