VirtualBox

Changeset 89904 in vbox


Ignore:
Timestamp:
Jun 24, 2021 7:52:47 PM (4 years ago)
Author:
vboxsync
Message:

DevHda: Optimize HDAREGDESC a little more by reducing the size, fFlags and mem_idx members to uint8_t. bugref:9890

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Audio/DevHda.cpp

    r89903 r89904  
    237237    uint32_t        offset;
    238238    /** Size in bytes. Registers of size > 4 are in fact tables. */
    239     uint32_t        size;
     239    uint8_t         size;
     240    /** Register descriptor (RD) flags of type HDA_RD_F_XXX. These are used to
     241     *  specify the read/write handling policy of the register. */
     242    uint8_t         fFlags;
     243    /** Index into the register storage array. */
     244    uint8_t         mem_idx;
     245    uint8_t         bUnused;
    240246    /** Readable bits. */
    241247    uint32_t        readable;
    242248    /** Writable bits. */
    243249    uint32_t        writable;
    244     /** Register descriptor (RD) flags of type HDA_RD_F_XXX. These are used to
    245      *  specify the read/write handling policy of the register. */
    246     uint32_t        fFlags;
    247     /** Index into the register storage array.
    248      * @todo r=bird: Bad structure layout. Move up before pfnRead. */
    249     uint32_t        mem_idx;
    250250    /** Read callback. */
    251251    FNHDAREGREAD   *pfnRead;
     
    359359#if defined(IN_RING3) || defined(LOG_ENABLED)
    360360# define HDA_REG_ENTRY_EX(a_offBar, a_cbReg, a_fReadMask, a_fWriteMask, a_fFlags, a_pfnRead, a_pfnWrite, a_idxMap, a_szName, a_szDesc) \
    361     { a_offBar, a_cbReg, a_fReadMask, a_fWriteMask, a_fFlags, a_idxMap, a_pfnRead, a_pfnWrite, a_szName, a_szDesc }
     361    { a_offBar, a_cbReg, a_fFlags, a_idxMap, 0, a_fReadMask, a_fWriteMask, a_pfnRead, a_pfnWrite, a_szName, a_szDesc }
    362362#else
    363363# define HDA_REG_ENTRY_EX(a_offBar, a_cbReg, a_fReadMask, a_fWriteMask, a_fFlags, a_pfnRead, a_pfnWrite, a_idxMap, a_szName, a_szDesc) \
    364     { a_offBar, a_cbReg, a_fReadMask, a_fWriteMask, a_fFlags, a_idxMap, a_pfnRead, a_pfnWrite }
     364    { a_offBar, a_cbReg, a_fFlags, a_idxMap, 0, a_fReadMask, a_fWriteMask, a_pfnRead, a_pfnWrite }
    365365#endif
    366366#define HDA_REG_ENTRY(a_offBar, a_cbReg, a_fReadMask, a_fWriteMask, a_fFlags, a_pfnRead, a_pfnWrite, a_ShortRegNm, a_szDesc) \
     
    50625062     * Asserting sanity.
    50635063     */
     5064    AssertCompile(RT_ELEMENTS(pThis->au32Regs) < 256 /* assumption by HDAREGDESC::mem_idx */);
    50645065    for (unsigned i = 0; i < RT_ELEMENTS(g_aHdaRegMap); i++)
    50655066    {
Note: See TracChangeset for help on using the changeset viewer.

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