VirtualBox

Changeset 108167 in vbox for trunk/include


Ignore:
Timestamp:
Feb 11, 2025 9:22:02 PM (2 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
167482
Message:

Runtime/RTAcpi*: Continue with resource template parsing, bugref:10733

Location:
trunk/include/iprt
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/iprt/acpi.h

    r108150 r108167  
    11391139                                           uint16_t u16OffTrans, uint16_t u16Granularity, uint16_t u16Length);
    11401140
     1141
     1142/**
     1143 * I/O decode type.
     1144 */
     1145typedef enum RTACPIRESIODECODETYPE
     1146{
     1147    /** Invalid value. */
     1148    kAcpiResIoDecodeType_Invalid = 0,
     1149    /** 10-bit decoding. */
     1150    kAcpiResIoDecodeType_Decode10,
     1151    /** 16-bit decoding. */
     1152    kAcpiResIoDecodeType_Decode16,
     1153    /** 32-bit blowup hack. */
     1154    kAcpiResIoDecodeType_32BitHack = 0x7fffffff
     1155} RTACPIRESIODECODETYPE;
     1156
     1157
     1158/**
     1159 * Adds an I/O port descriptor to the given ACPI resource.
     1160 *
     1161 * @returns IPRT status code.
     1162 * @param   hAcpiRes            The ACPI resource handle.
     1163 * @param   enmDecode           The decoding type of the range.
     1164 * @param   u16AddrMin          Minimum base I/O address the range might be configured for.
     1165 * @param   u16AddrMax          Maximum base I/O address the range might be configured for.
     1166 * @param   u8AddrAlignment     Alignment of the minimum base address.
     1167 * @param   u8RangeLength       Number of contiguous I/O ports requested.
     1168 */
     1169RTDECL(int) RTAcpiResourceAddIo(RTACPIRES hAcpiRes, RTACPIRESIODECODETYPE enmDecode, uint16_t u16AddrMin, uint16_t u16AddrMax,
     1170                                uint8_t u8AddrAlignment, uint8_t u8RangeLength);
     1171
     1172
     1173/**
     1174 * Adds an extended interrupt descriptor with the given configuration to the given ACPI resource.
     1175 *
     1176 * @returns IPRT status code.
     1177 * @param   hAcpiRes            The ACPI resource handle.
     1178 * @param   fEdgeTriggered      Flag whether the interrupt is edged (true) or level (false) triggered.
     1179 * @param   fActiveLow          Flag whether the interrupt polarity is active low (true) or active high (false).
     1180 * @param   fShared             Flag whether the interrupt is shared between different entities (true) or exclusive to the assigned entity (false).
     1181 * @param   fWakeCapable        Flag whether the interrupt can wake the system (true) or not (false).
     1182 * @param   bmIntrs             Bitmap of interrupts (0..15) requested.
     1183 */
     1184RTDECL(int) RTAcpiResourceAddIrq(RTACPIRES hAcpiRes, bool fEdgeTriggered, bool fActiveLow, bool fShared,
     1185                                 bool fWakeCapable, uint16_t bmIntrs);
     1186
    11411187/** @} */
    11421188
  • trunk/include/iprt/formats/acpi-resources.h

    r106337 r108167  
    5555/** End tag. */
    5656#define ACPI_RSRCS_TAG_END                              0x79
     57
     58
     59/** @name Small Resource Data Type.
     60 * @{ */
     61/** The bit identifying a small resource data type. */
     62#define ACPI_RSRCS_SMALL_TYPE                           0
     63/** IRQ format descriptor. */
     64#define ACPI_RSRCS_ITEM_IRQ                             0x04
     65/** DMA format descriptor. */
     66#define ACPI_RSRCS_ITEM_DMA                             0x05
     67/** Start dependent functions descriptor. */
     68#define ACPI_RSRCS_ITEM_START_DEP_FN                    0x06
     69/** End dependent functions descriptor. */
     70#define ACPI_RSRCS_ITEM_END_DEP_FN                      0x07
     71/** I/O port descriptor. */
     72#define ACPI_RSRCS_ITEM_IO                              0x08
     73/** Fixed location I/O port descriptor. */
     74#define ACPI_RSRCS_ITEM_FIXED_LOCATION_IO               0x09
     75/** Fixed DMA descriptor. */
     76#define ACPI_RSRCS_ITEM_FIXED_DMA                       0x0a
     77/** End tag descriptor. */
     78#define ACPI_RSRCS_ITEM_END_TAG                         0x0f
     79/** @} */
    5780
    5881
     
    129152
    130153
     154/** @name IRQ descriptor related definitions.
     155 * @{ */
     156/** Interrupt is edge triggered. */
     157#define ACPI_RSRCS_IRQ_F_EDGE_TRIGGERED                 RT_BIT(0)
     158/** Interrupt is level triggered. */
     159#define ACPI_RSRCS_IRQ_F_LEVEL_TRIGGERED                0
     160
     161/** Interrupt polarity is active low. */
     162#define ACPI_RSRCS_IRQ_F_ACTIVE_LOW                     RT_BIT(3)
     163/** Interrupt polarity is active high. */
     164#define ACPI_RSRCS_IRQ_F_ACTIVE_HIGH                    0
     165
     166/** Interrupt is shared. */
     167#define ACPI_RSRCS_IRQ_F_SHARED                         RT_BIT(4)
     168/** Interrupt is exclusive. */
     169#define ACPI_RSRCS_IRQ_F_EXCLUSIVE                      0
     170
     171/** Interrupt is capable of waking the system. */
     172#define ACPI_RSRCS_IRQ_F_WAKE_CAP                       RT_BIT(5)
     173/** Interrupt is not capable of waking the system. */
     174#define ACPI_RSRCS_IRQ_F_NOT_WAKE_CAP                   0
     175/** @} */
     176
     177
    131178/** @name Address space resource descriptors related definitions.
    132179 * @{ */
  • trunk/include/iprt/mangling.h

    r108150 r108167  
    380380# define RTAcpiResourceAddDWordMemoryRange              RT_MANGLER(RTAcpiResourceAddDWordMemoryRange)
    381381# define RTAcpiResourceAddExtendedInterrupt             RT_MANGLER(RTAcpiResourceAddExtendedInterrupt)
     382# define RTAcpiResourceAddIo                            RT_MANGLER(RTAcpiResourceAddIo)
     383# define RTAcpiResourceAddIrq                           RT_MANGLER(RTAcpiResourceAddIrq)
    382384# define RTAcpiResourceAddQWordIoRange                  RT_MANGLER(RTAcpiResourceAddQWordIoRange)
    383385# define RTAcpiResourceAddQWordMemoryRange              RT_MANGLER(RTAcpiResourceAddQWordMemoryRange)
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette