Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/drivers/acpi/acpica/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 26 kB image not shown  

Quelle  rsserial.c   Sprache: C

 
// SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0
/*******************************************************************************
 *
 * Module Name: rsserial - GPIO/serial_bus resource descriptors
 *
 ******************************************************************************/


#include <acpi/acpi.h>
#include "accommon.h"
#include "acresrc.h"

#define _COMPONENT          ACPI_RESOURCES
ACPI_MODULE_NAME("rsserial")

/*******************************************************************************
 *
 * acpi_rs_convert_gpio
 *
 ******************************************************************************/

struct acpi_rsconvert_info acpi_rs_convert_gpio[18] = {
 {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_GPIO,
  ACPI_RS_SIZE(struct acpi_resource_gpio),
  ACPI_RSC_TABLE_SIZE(acpi_rs_convert_gpio)},

 {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_GPIO,
  sizeof(struct aml_resource_gpio),
  0},

 /*
 * These fields are contiguous in both the source and destination:
 * revision_id
 * connection_type
 */

 {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.gpio.revision_id),
  AML_OFFSET(gpio.revision_id),
  2},

 {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.gpio.producer_consumer),
  AML_OFFSET(gpio.flags),
  0},

 {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.gpio.shareable),
  AML_OFFSET(gpio.int_flags),
  3},

 {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.gpio.wake_capable),
  AML_OFFSET(gpio.int_flags),
  4},

 {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET(data.gpio.io_restriction),
  AML_OFFSET(gpio.int_flags),
  0},

 {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.gpio.triggering),
  AML_OFFSET(gpio.int_flags),
  0},

 {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET(data.gpio.polarity),
  AML_OFFSET(gpio.int_flags),
  1},

 {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.gpio.pin_config),
  AML_OFFSET(gpio.pin_config),
  1},

 /*
 * These fields are contiguous in both the source and destination:
 * drive_strength
 * debounce_timeout
 */

 {ACPI_RSC_MOVE16, ACPI_RS_OFFSET(data.gpio.drive_strength),
  AML_OFFSET(gpio.drive_strength),
  2},

 /* Pin Table */

 {ACPI_RSC_COUNT_GPIO_PIN, ACPI_RS_OFFSET(data.gpio.pin_table_length),
  AML_OFFSET(gpio.pin_table_offset),
  AML_OFFSET(gpio.res_source_offset)},

 {ACPI_RSC_MOVE_GPIO_PIN, ACPI_RS_OFFSET(data.gpio.pin_table),
  AML_OFFSET(gpio.pin_table_offset),
  0},

 /* Resource Source */

 {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.gpio.resource_source.index),
  AML_OFFSET(gpio.res_source_index),
  1},

 {ACPI_RSC_COUNT_GPIO_RES,
  ACPI_RS_OFFSET(data.gpio.resource_source.string_length),
  AML_OFFSET(gpio.res_source_offset),
  AML_OFFSET(gpio.vendor_offset)},

 {ACPI_RSC_MOVE_GPIO_RES,
  ACPI_RS_OFFSET(data.gpio.resource_source.string_ptr),
  AML_OFFSET(gpio.res_source_offset),
  0},

 /* Vendor Data */

 {ACPI_RSC_COUNT_GPIO_VEN, ACPI_RS_OFFSET(data.gpio.vendor_length),
  AML_OFFSET(gpio.vendor_length),
  1},

 {ACPI_RSC_MOVE_GPIO_RES, ACPI_RS_OFFSET(data.gpio.vendor_data),
  AML_OFFSET(gpio.vendor_offset),
  0},
};

/*******************************************************************************
 *
 * acpi_rs_convert_clock_input
 *
 ******************************************************************************/


struct acpi_rsconvert_info acpi_rs_convert_clock_input[8] = {
 {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_CLOCK_INPUT,
  ACPI_RS_SIZE(struct acpi_resource_clock_input),
  ACPI_RSC_TABLE_SIZE(acpi_rs_convert_clock_input)},

 {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_CLOCK_INPUT,
  sizeof(struct aml_resource_clock_input),
  0}
 ,

 {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.clock_input.revision_id),
  AML_OFFSET(clock_input.revision_id),
  1}
 ,

 {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.clock_input.mode),
  AML_OFFSET(clock_input.flags),
  0}
 ,

 {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET(data.clock_input.scale),
  AML_OFFSET(clock_input.flags),
  1}
 ,

 {ACPI_RSC_MOVE16, ACPI_RS_OFFSET(data.clock_input.frequency_divisor),
  AML_OFFSET(clock_input.frequency_divisor),
  2}
 ,

 {ACPI_RSC_MOVE32, ACPI_RS_OFFSET(data.clock_input.frequency_numerator),
  AML_OFFSET(clock_input.frequency_numerator),
  4}
 ,

 /* Resource Source */
 {ACPI_RSC_SOURCE, ACPI_RS_OFFSET(data.clock_input.resource_source),
  0,
  sizeof(struct aml_resource_clock_input)}
 ,

};

/*******************************************************************************
 *
 * acpi_rs_convert_pinfunction
 *
 ******************************************************************************/


struct acpi_rsconvert_info acpi_rs_convert_pin_function[13] = {
 {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_PIN_FUNCTION,
  ACPI_RS_SIZE(struct acpi_resource_pin_function),
  ACPI_RSC_TABLE_SIZE(acpi_rs_convert_pin_function)},

 {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_PIN_FUNCTION,
  sizeof(struct aml_resource_pin_function),
  0},

 {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.pin_function.revision_id),
  AML_OFFSET(pin_function.revision_id),
  1},

 {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.pin_function.shareable),
  AML_OFFSET(pin_function.flags),
  0},

 {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.pin_function.pin_config),
  AML_OFFSET(pin_function.pin_config),
  1},

 {ACPI_RSC_MOVE16, ACPI_RS_OFFSET(data.pin_function.function_number),
  AML_OFFSET(pin_function.function_number),
  2},

 /* Pin Table */

 /*
 * It is OK to use GPIO operations here because none of them refer GPIO
 * structures directly but instead use offsets given here.
 */


 {ACPI_RSC_COUNT_GPIO_PIN,
  ACPI_RS_OFFSET(data.pin_function.pin_table_length),
  AML_OFFSET(pin_function.pin_table_offset),
  AML_OFFSET(pin_function.res_source_offset)},

 {ACPI_RSC_MOVE_GPIO_PIN, ACPI_RS_OFFSET(data.pin_function.pin_table),
  AML_OFFSET(pin_function.pin_table_offset),
  0},

 /* Resource Source */

 {ACPI_RSC_MOVE8,
  ACPI_RS_OFFSET(data.pin_function.resource_source.index),
  AML_OFFSET(pin_function.res_source_index),
  1},

 {ACPI_RSC_COUNT_GPIO_RES,
  ACPI_RS_OFFSET(data.pin_function.resource_source.string_length),
  AML_OFFSET(pin_function.res_source_offset),
  AML_OFFSET(pin_function.vendor_offset)},

 {ACPI_RSC_MOVE_GPIO_RES,
  ACPI_RS_OFFSET(data.pin_function.resource_source.string_ptr),
  AML_OFFSET(pin_function.res_source_offset),
  0},

 /* Vendor Data */

 {ACPI_RSC_COUNT_GPIO_VEN,
  ACPI_RS_OFFSET(data.pin_function.vendor_length),
  AML_OFFSET(pin_function.vendor_length),
  1},

 {ACPI_RSC_MOVE_GPIO_RES, ACPI_RS_OFFSET(data.pin_function.vendor_data),
  AML_OFFSET(pin_function.vendor_offset),
  0},
};

/*******************************************************************************
 *
 * acpi_rs_convert_csi2_serial_bus
 *
 ******************************************************************************/


struct acpi_rsconvert_info acpi_rs_convert_csi2_serial_bus[14] = {
 { ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_SERIAL_BUS,
  ACPI_RS_SIZE(struct acpi_resource_csi2_serialbus),
  ACPI_RSC_TABLE_SIZE(acpi_rs_convert_csi2_serial_bus) },

 { ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_SERIAL_BUS,
  sizeof(struct aml_resource_csi2_serialbus),
  0 },

 { ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.common_serial_bus.revision_id),
  AML_OFFSET(common_serial_bus.revision_id),
  1 },

 { ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.csi2_serial_bus.type),
  AML_OFFSET(csi2_serial_bus.type),
  1 },

 { ACPI_RSC_1BITFLAG,
  ACPI_RS_OFFSET(data.csi2_serial_bus.producer_consumer),
  AML_OFFSET(csi2_serial_bus.flags),
  1 },

 { ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.csi2_serial_bus.slave_mode),
  AML_OFFSET(csi2_serial_bus.flags),
  0 },

 { ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET(data.csi2_serial_bus.phy_type),
  AML_OFFSET(csi2_serial_bus.type_specific_flags),
  0 },

 { ACPI_RSC_6BITFLAG,
  ACPI_RS_OFFSET(data.csi2_serial_bus.local_port_instance),
  AML_OFFSET(csi2_serial_bus.type_specific_flags),
  2 },

 { ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.csi2_serial_bus.type_revision_id),
  AML_OFFSET(csi2_serial_bus.type_revision_id),
  1 },

 /* Vendor data */

 { ACPI_RSC_COUNT_SERIAL_VEN,
  ACPI_RS_OFFSET(data.csi2_serial_bus.vendor_length),
  AML_OFFSET(csi2_serial_bus.type_data_length),
  AML_RESOURCE_CSI2_MIN_DATA_LEN },

 { ACPI_RSC_MOVE_SERIAL_VEN,
  ACPI_RS_OFFSET(data.csi2_serial_bus.vendor_data),
  0,
  sizeof(struct aml_resource_csi2_serialbus) },

 /* Resource Source */

 { ACPI_RSC_MOVE8,
  ACPI_RS_OFFSET(data.csi2_serial_bus.resource_source.index),
  AML_OFFSET(csi2_serial_bus.res_source_index),
  1 },

 { ACPI_RSC_COUNT_SERIAL_RES,
  ACPI_RS_OFFSET(data.csi2_serial_bus.resource_source.string_length),
  AML_OFFSET(csi2_serial_bus.type_data_length),
  sizeof(struct aml_resource_csi2_serialbus) },

 { ACPI_RSC_MOVE_SERIAL_RES,
  ACPI_RS_OFFSET(data.csi2_serial_bus.resource_source.string_ptr),
  AML_OFFSET(csi2_serial_bus.type_data_length),
  sizeof(struct aml_resource_csi2_serialbus) },
};

/*******************************************************************************
 *
 * acpi_rs_convert_i2c_serial_bus
 *
 ******************************************************************************/


struct acpi_rsconvert_info acpi_rs_convert_i2c_serial_bus[17] = {
 {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_SERIAL_BUS,
  ACPI_RS_SIZE(struct acpi_resource_i2c_serialbus),
  ACPI_RSC_TABLE_SIZE(acpi_rs_convert_i2c_serial_bus)},

 {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_SERIAL_BUS,
  sizeof(struct aml_resource_i2c_serialbus),
  0},

 {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.common_serial_bus.revision_id),
  AML_OFFSET(common_serial_bus.revision_id),
  1},

 {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.common_serial_bus.type),
  AML_OFFSET(common_serial_bus.type),
  1},

 {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.common_serial_bus.slave_mode),
  AML_OFFSET(common_serial_bus.flags),
  0},

 {ACPI_RSC_1BITFLAG,
  ACPI_RS_OFFSET(data.common_serial_bus.producer_consumer),
  AML_OFFSET(common_serial_bus.flags),
  1},

 {ACPI_RSC_1BITFLAG,
  ACPI_RS_OFFSET(data.common_serial_bus.connection_sharing),
  AML_OFFSET(common_serial_bus.flags),
  2},

 {ACPI_RSC_MOVE8,
  ACPI_RS_OFFSET(data.common_serial_bus.type_revision_id),
  AML_OFFSET(common_serial_bus.type_revision_id),
  1},

 {ACPI_RSC_MOVE16,
  ACPI_RS_OFFSET(data.common_serial_bus.type_data_length),
  AML_OFFSET(common_serial_bus.type_data_length),
  1},

 /* Vendor data */

 {ACPI_RSC_COUNT_SERIAL_VEN,
  ACPI_RS_OFFSET(data.common_serial_bus.vendor_length),
  AML_OFFSET(common_serial_bus.type_data_length),
  AML_RESOURCE_I2C_MIN_DATA_LEN},

 {ACPI_RSC_MOVE_SERIAL_VEN,
  ACPI_RS_OFFSET(data.common_serial_bus.vendor_data),
  0,
  sizeof(struct aml_resource_i2c_serialbus)},

 /* Resource Source */

 {ACPI_RSC_MOVE8,
  ACPI_RS_OFFSET(data.common_serial_bus.resource_source.index),
  AML_OFFSET(common_serial_bus.res_source_index),
  1},

 {ACPI_RSC_COUNT_SERIAL_RES,
  ACPI_RS_OFFSET(data.common_serial_bus.resource_source.string_length),
  AML_OFFSET(common_serial_bus.type_data_length),
  sizeof(struct aml_resource_common_serialbus)},

 {ACPI_RSC_MOVE_SERIAL_RES,
  ACPI_RS_OFFSET(data.common_serial_bus.resource_source.string_ptr),
  AML_OFFSET(common_serial_bus.type_data_length),
  sizeof(struct aml_resource_common_serialbus)},

 /* I2C bus type specific */

 {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.i2c_serial_bus.access_mode),
  AML_OFFSET(i2c_serial_bus.type_specific_flags),
  0},

 {ACPI_RSC_MOVE32, ACPI_RS_OFFSET(data.i2c_serial_bus.connection_speed),
  AML_OFFSET(i2c_serial_bus.connection_speed),
  1},

 {ACPI_RSC_MOVE16, ACPI_RS_OFFSET(data.i2c_serial_bus.slave_address),
  AML_OFFSET(i2c_serial_bus.slave_address),
  1},
};

/*******************************************************************************
 *
 * acpi_rs_convert_spi_serial_bus
 *
 ******************************************************************************/


struct acpi_rsconvert_info acpi_rs_convert_spi_serial_bus[21] = {
 {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_SERIAL_BUS,
  ACPI_RS_SIZE(struct acpi_resource_spi_serialbus),
  ACPI_RSC_TABLE_SIZE(acpi_rs_convert_spi_serial_bus)},

 {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_SERIAL_BUS,
  sizeof(struct aml_resource_spi_serialbus),
  0},

 {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.common_serial_bus.revision_id),
  AML_OFFSET(common_serial_bus.revision_id),
  1},

 {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.common_serial_bus.type),
  AML_OFFSET(common_serial_bus.type),
  1},

 {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.common_serial_bus.slave_mode),
  AML_OFFSET(common_serial_bus.flags),
  0},

 {ACPI_RSC_1BITFLAG,
  ACPI_RS_OFFSET(data.common_serial_bus.producer_consumer),
  AML_OFFSET(common_serial_bus.flags),
  1},

 {ACPI_RSC_1BITFLAG,
  ACPI_RS_OFFSET(data.common_serial_bus.connection_sharing),
  AML_OFFSET(common_serial_bus.flags),
  2},

 {ACPI_RSC_MOVE8,
  ACPI_RS_OFFSET(data.common_serial_bus.type_revision_id),
  AML_OFFSET(common_serial_bus.type_revision_id),
  1},

 {ACPI_RSC_MOVE16,
  ACPI_RS_OFFSET(data.common_serial_bus.type_data_length),
  AML_OFFSET(common_serial_bus.type_data_length),
  1},

 /* Vendor data */

 {ACPI_RSC_COUNT_SERIAL_VEN,
  ACPI_RS_OFFSET(data.common_serial_bus.vendor_length),
  AML_OFFSET(common_serial_bus.type_data_length),
  AML_RESOURCE_SPI_MIN_DATA_LEN},

 {ACPI_RSC_MOVE_SERIAL_VEN,
  ACPI_RS_OFFSET(data.common_serial_bus.vendor_data),
  0,
  sizeof(struct aml_resource_spi_serialbus)},

 /* Resource Source */

 {ACPI_RSC_MOVE8,
  ACPI_RS_OFFSET(data.common_serial_bus.resource_source.index),
  AML_OFFSET(common_serial_bus.res_source_index),
  1},

 {ACPI_RSC_COUNT_SERIAL_RES,
  ACPI_RS_OFFSET(data.common_serial_bus.resource_source.string_length),
  AML_OFFSET(common_serial_bus.type_data_length),
  sizeof(struct aml_resource_common_serialbus)},

 {ACPI_RSC_MOVE_SERIAL_RES,
  ACPI_RS_OFFSET(data.common_serial_bus.resource_source.string_ptr),
  AML_OFFSET(common_serial_bus.type_data_length),
  sizeof(struct aml_resource_common_serialbus)},

 /* Spi bus type specific  */

 {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.spi_serial_bus.wire_mode),
  AML_OFFSET(spi_serial_bus.type_specific_flags),
  0},

 {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.spi_serial_bus.device_polarity),
  AML_OFFSET(spi_serial_bus.type_specific_flags),
  1},

 {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.spi_serial_bus.data_bit_length),
  AML_OFFSET(spi_serial_bus.data_bit_length),
  1},

 {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.spi_serial_bus.clock_phase),
  AML_OFFSET(spi_serial_bus.clock_phase),
  1},

 {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.spi_serial_bus.clock_polarity),
  AML_OFFSET(spi_serial_bus.clock_polarity),
  1},

 {ACPI_RSC_MOVE16, ACPI_RS_OFFSET(data.spi_serial_bus.device_selection),
  AML_OFFSET(spi_serial_bus.device_selection),
  1},

 {ACPI_RSC_MOVE32, ACPI_RS_OFFSET(data.spi_serial_bus.connection_speed),
  AML_OFFSET(spi_serial_bus.connection_speed),
  1},
};

/*******************************************************************************
 *
 * acpi_rs_convert_uart_serial_bus
 *
 ******************************************************************************/


struct acpi_rsconvert_info acpi_rs_convert_uart_serial_bus[23] = {
 {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_SERIAL_BUS,
  ACPI_RS_SIZE(struct acpi_resource_uart_serialbus),
  ACPI_RSC_TABLE_SIZE(acpi_rs_convert_uart_serial_bus)},

 {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_SERIAL_BUS,
  sizeof(struct aml_resource_uart_serialbus),
  0},

 {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.common_serial_bus.revision_id),
  AML_OFFSET(common_serial_bus.revision_id),
  1},

 {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.common_serial_bus.type),
  AML_OFFSET(common_serial_bus.type),
  1},

 {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.common_serial_bus.slave_mode),
  AML_OFFSET(common_serial_bus.flags),
  0},

 {ACPI_RSC_1BITFLAG,
  ACPI_RS_OFFSET(data.common_serial_bus.producer_consumer),
  AML_OFFSET(common_serial_bus.flags),
  1},

 {ACPI_RSC_1BITFLAG,
  ACPI_RS_OFFSET(data.common_serial_bus.connection_sharing),
  AML_OFFSET(common_serial_bus.flags),
  2},

 {ACPI_RSC_MOVE8,
  ACPI_RS_OFFSET(data.common_serial_bus.type_revision_id),
  AML_OFFSET(common_serial_bus.type_revision_id),
  1},

 {ACPI_RSC_MOVE16,
  ACPI_RS_OFFSET(data.common_serial_bus.type_data_length),
  AML_OFFSET(common_serial_bus.type_data_length),
  1},

 /* Vendor data */

 {ACPI_RSC_COUNT_SERIAL_VEN,
  ACPI_RS_OFFSET(data.common_serial_bus.vendor_length),
  AML_OFFSET(common_serial_bus.type_data_length),
  AML_RESOURCE_UART_MIN_DATA_LEN},

 {ACPI_RSC_MOVE_SERIAL_VEN,
  ACPI_RS_OFFSET(data.common_serial_bus.vendor_data),
  0,
  sizeof(struct aml_resource_uart_serialbus)},

 /* Resource Source */

 {ACPI_RSC_MOVE8,
  ACPI_RS_OFFSET(data.common_serial_bus.resource_source.index),
  AML_OFFSET(common_serial_bus.res_source_index),
  1},

 {ACPI_RSC_COUNT_SERIAL_RES,
  ACPI_RS_OFFSET(data.common_serial_bus.resource_source.string_length),
  AML_OFFSET(common_serial_bus.type_data_length),
  sizeof(struct aml_resource_common_serialbus)},

 {ACPI_RSC_MOVE_SERIAL_RES,
  ACPI_RS_OFFSET(data.common_serial_bus.resource_source.string_ptr),
  AML_OFFSET(common_serial_bus.type_data_length),
  sizeof(struct aml_resource_common_serialbus)},

 /* Uart bus type specific  */

 {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET(data.uart_serial_bus.flow_control),
  AML_OFFSET(uart_serial_bus.type_specific_flags),
  0},

 {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET(data.uart_serial_bus.stop_bits),
  AML_OFFSET(uart_serial_bus.type_specific_flags),
  2},

 {ACPI_RSC_3BITFLAG, ACPI_RS_OFFSET(data.uart_serial_bus.data_bits),
  AML_OFFSET(uart_serial_bus.type_specific_flags),
  4},

 {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.uart_serial_bus.endian),
  AML_OFFSET(uart_serial_bus.type_specific_flags),
  7},

 {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.uart_serial_bus.parity),
  AML_OFFSET(uart_serial_bus.parity),
  1},

 {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.uart_serial_bus.lines_enabled),
  AML_OFFSET(uart_serial_bus.lines_enabled),
  1},

 {ACPI_RSC_MOVE16, ACPI_RS_OFFSET(data.uart_serial_bus.rx_fifo_size),
  AML_OFFSET(uart_serial_bus.rx_fifo_size),
  1},

 {ACPI_RSC_MOVE16, ACPI_RS_OFFSET(data.uart_serial_bus.tx_fifo_size),
  AML_OFFSET(uart_serial_bus.tx_fifo_size),
  1},

 {ACPI_RSC_MOVE32,
  ACPI_RS_OFFSET(data.uart_serial_bus.default_baud_rate),
  AML_OFFSET(uart_serial_bus.default_baud_rate),
  1},
};

/*******************************************************************************
 *
 * acpi_rs_convert_pin_config
 *
 ******************************************************************************/


struct acpi_rsconvert_info acpi_rs_convert_pin_config[14] = {
 {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_PIN_CONFIG,
  ACPI_RS_SIZE(struct acpi_resource_pin_config),
  ACPI_RSC_TABLE_SIZE(acpi_rs_convert_pin_config)},

 {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_PIN_CONFIG,
  sizeof(struct aml_resource_pin_config),
  0},

 {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.pin_config.revision_id),
  AML_OFFSET(pin_config.revision_id),
  1},

 {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.pin_config.shareable),
  AML_OFFSET(pin_config.flags),
  0},

 {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.pin_config.producer_consumer),
  AML_OFFSET(pin_config.flags),
  1},

 {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.pin_config.pin_config_type),
  AML_OFFSET(pin_config.pin_config_type),
  1},

 {ACPI_RSC_MOVE32, ACPI_RS_OFFSET(data.pin_config.pin_config_value),
  AML_OFFSET(pin_config.pin_config_value),
  1},

 /* Pin Table */

 /*
 * It is OK to use GPIO operations here because none of them refer GPIO
 * structures directly but instead use offsets given here.
 */


 {ACPI_RSC_COUNT_GPIO_PIN,
  ACPI_RS_OFFSET(data.pin_config.pin_table_length),
  AML_OFFSET(pin_config.pin_table_offset),
  AML_OFFSET(pin_config.res_source_offset)},

 {ACPI_RSC_MOVE_GPIO_PIN, ACPI_RS_OFFSET(data.pin_config.pin_table),
  AML_OFFSET(pin_config.pin_table_offset),
  0},

 /* Resource Source */

 {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.pin_config.resource_source.index),
  AML_OFFSET(pin_config.res_source_index),
  1},

 {ACPI_RSC_COUNT_GPIO_RES,
  ACPI_RS_OFFSET(data.pin_config.resource_source.string_length),
  AML_OFFSET(pin_config.res_source_offset),
  AML_OFFSET(pin_config.vendor_offset)},

 {ACPI_RSC_MOVE_GPIO_RES,
  ACPI_RS_OFFSET(data.pin_config.resource_source.string_ptr),
  AML_OFFSET(pin_config.res_source_offset),
  0},

 /* Vendor Data */

 {ACPI_RSC_COUNT_GPIO_VEN, ACPI_RS_OFFSET(data.pin_config.vendor_length),
  AML_OFFSET(pin_config.vendor_length),
  1},

 {ACPI_RSC_MOVE_GPIO_RES, ACPI_RS_OFFSET(data.pin_config.vendor_data),
  AML_OFFSET(pin_config.vendor_offset),
  0},
};

/*******************************************************************************
 *
 * acpi_rs_convert_pin_group
 *
 ******************************************************************************/


struct acpi_rsconvert_info acpi_rs_convert_pin_group[10] = {
 {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_PIN_GROUP,
  ACPI_RS_SIZE(struct acpi_resource_pin_group),
  ACPI_RSC_TABLE_SIZE(acpi_rs_convert_pin_group)},

 {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_PIN_GROUP,
  sizeof(struct aml_resource_pin_group),
  0},

 {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.pin_group.revision_id),
  AML_OFFSET(pin_group.revision_id),
  1},

 {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.pin_group.producer_consumer),
  AML_OFFSET(pin_group.flags),
  0},

 /* Pin Table */

 /*
 * It is OK to use GPIO operations here because none of them refer GPIO
 * structures directly but instead use offsets given here.
 */


 {ACPI_RSC_COUNT_GPIO_PIN,
  ACPI_RS_OFFSET(data.pin_group.pin_table_length),
  AML_OFFSET(pin_group.pin_table_offset),
  AML_OFFSET(pin_group.label_offset)},

 {ACPI_RSC_MOVE_GPIO_PIN, ACPI_RS_OFFSET(data.pin_group.pin_table),
  AML_OFFSET(pin_group.pin_table_offset),
  0},

 /* Resource Label */

 {ACPI_RSC_COUNT_GPIO_RES,
  ACPI_RS_OFFSET(data.pin_group.resource_label.string_length),
  AML_OFFSET(pin_group.label_offset),
  AML_OFFSET(pin_group.vendor_offset)},

 {ACPI_RSC_MOVE_GPIO_RES,
  ACPI_RS_OFFSET(data.pin_group.resource_label.string_ptr),
  AML_OFFSET(pin_group.label_offset),
  0},

 /* Vendor Data */

 {ACPI_RSC_COUNT_GPIO_VEN, ACPI_RS_OFFSET(data.pin_group.vendor_length),
  AML_OFFSET(pin_group.vendor_length),
  1},

 {ACPI_RSC_MOVE_GPIO_RES, ACPI_RS_OFFSET(data.pin_group.vendor_data),
  AML_OFFSET(pin_group.vendor_offset),
  0},
};

/*******************************************************************************
 *
 * acpi_rs_convert_pin_group_function
 *
 ******************************************************************************/


struct acpi_rsconvert_info acpi_rs_convert_pin_group_function[13] = {
 {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_PIN_GROUP_FUNCTION,
  ACPI_RS_SIZE(struct acpi_resource_pin_group_function),
  ACPI_RSC_TABLE_SIZE(acpi_rs_convert_pin_group_function)},

 {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_PIN_GROUP_FUNCTION,
  sizeof(struct aml_resource_pin_group_function),
  0},

 {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.pin_group_function.revision_id),
  AML_OFFSET(pin_group_function.revision_id),
  1},

 {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.pin_group_function.shareable),
  AML_OFFSET(pin_group_function.flags),
  0},

 {ACPI_RSC_1BITFLAG,
  ACPI_RS_OFFSET(data.pin_group_function.producer_consumer),
  AML_OFFSET(pin_group_function.flags),
  1},

 {ACPI_RSC_MOVE16,
  ACPI_RS_OFFSET(data.pin_group_function.function_number),
  AML_OFFSET(pin_group_function.function_number),
  1},

 /* Resource Source */

 {ACPI_RSC_MOVE8,
  ACPI_RS_OFFSET(data.pin_group_function.resource_source.index),
  AML_OFFSET(pin_group_function.res_source_index),
  1},

 {ACPI_RSC_COUNT_GPIO_RES,
  ACPI_RS_OFFSET(data.pin_group_function.resource_source.string_length),
  AML_OFFSET(pin_group_function.res_source_offset),
  AML_OFFSET(pin_group_function.res_source_label_offset)},

 {ACPI_RSC_MOVE_GPIO_RES,
  ACPI_RS_OFFSET(data.pin_group_function.resource_source.string_ptr),
  AML_OFFSET(pin_group_function.res_source_offset),
  0},

 /* Resource Source Label */

 {ACPI_RSC_COUNT_GPIO_RES,
  ACPI_RS_OFFSET(data.pin_group_function.resource_source_label.
   string_length),
  AML_OFFSET(pin_group_function.res_source_label_offset),
  AML_OFFSET(pin_group_function.vendor_offset)},

 {ACPI_RSC_MOVE_GPIO_RES,
  ACPI_RS_OFFSET(data.pin_group_function.resource_source_label.
   string_ptr),
  AML_OFFSET(pin_group_function.res_source_label_offset),
  0},

 /* Vendor Data */

 {ACPI_RSC_COUNT_GPIO_VEN,
  ACPI_RS_OFFSET(data.pin_group_function.vendor_length),
  AML_OFFSET(pin_group_function.vendor_length),
  1},

 {ACPI_RSC_MOVE_GPIO_RES,
  ACPI_RS_OFFSET(data.pin_group_function.vendor_data),
  AML_OFFSET(pin_group_function.vendor_offset),
  0},
};

/*******************************************************************************
 *
 * acpi_rs_convert_pin_group_config
 *
 ******************************************************************************/


struct acpi_rsconvert_info acpi_rs_convert_pin_group_config[14] = {
 {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_PIN_GROUP_CONFIG,
  ACPI_RS_SIZE(struct acpi_resource_pin_group_config),
  ACPI_RSC_TABLE_SIZE(acpi_rs_convert_pin_group_config)},

 {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_PIN_GROUP_CONFIG,
  sizeof(struct aml_resource_pin_group_config),
  0},

 {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.pin_group_config.revision_id),
  AML_OFFSET(pin_group_config.revision_id),
  1},

 {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.pin_group_config.shareable),
  AML_OFFSET(pin_group_config.flags),
  0},

 {ACPI_RSC_1BITFLAG,
  ACPI_RS_OFFSET(data.pin_group_config.producer_consumer),
  AML_OFFSET(pin_group_config.flags),
  1},

 {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.pin_group_config.pin_config_type),
  AML_OFFSET(pin_group_config.pin_config_type),
  1},

 {ACPI_RSC_MOVE32,
  ACPI_RS_OFFSET(data.pin_group_config.pin_config_value),
  AML_OFFSET(pin_group_config.pin_config_value),
  1},

 /* Resource Source */

 {ACPI_RSC_MOVE8,
  ACPI_RS_OFFSET(data.pin_group_config.resource_source.index),
  AML_OFFSET(pin_group_config.res_source_index),
  1},

 {ACPI_RSC_COUNT_GPIO_RES,
  ACPI_RS_OFFSET(data.pin_group_config.resource_source.string_length),
  AML_OFFSET(pin_group_config.res_source_offset),
  AML_OFFSET(pin_group_config.res_source_label_offset)},

 {ACPI_RSC_MOVE_GPIO_RES,
  ACPI_RS_OFFSET(data.pin_group_config.resource_source.string_ptr),
  AML_OFFSET(pin_group_config.res_source_offset),
  0},

 /* Resource Source Label */

 {ACPI_RSC_COUNT_GPIO_RES,
  ACPI_RS_OFFSET(data.pin_group_config.resource_source_label.
   string_length),
  AML_OFFSET(pin_group_config.res_source_label_offset),
  AML_OFFSET(pin_group_config.vendor_offset)},

 {ACPI_RSC_MOVE_GPIO_RES,
  ACPI_RS_OFFSET(data.pin_group_config.resource_source_label.string_ptr),
  AML_OFFSET(pin_group_config.res_source_label_offset),
  0},

 /* Vendor Data */

 {ACPI_RSC_COUNT_GPIO_VEN,
  ACPI_RS_OFFSET(data.pin_group_config.vendor_length),
  AML_OFFSET(pin_group_config.vendor_length),
  1},

 {ACPI_RSC_MOVE_GPIO_RES,
  ACPI_RS_OFFSET(data.pin_group_config.vendor_data),
  AML_OFFSET(pin_group_config.vendor_offset),
  0},
};

Messung V0.5
C=96 H=86 G=90

¤ Dauer der Verarbeitung: 0.5 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

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.