VirtualBox

Changeset 102276 in vbox


Ignore:
Timestamp:
Nov 23, 2023 3:41:16 PM (10 months ago)
Author:
vboxsync
Message:

IPRT/ldr: Added RTLdrLxSetSegmentSelectors. bugref:10371

Location:
trunk
Files:
3 edited

Legend:

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

    r99739 r102276  
    10111011
    10121012/**
     1013 * LX specific API for setting the selectors of a segment before getting
     1014 * segment bits.
     1015 *
     1016 * @returns IPRT status code.
     1017 * @param   hLdrMod         The module handle.
     1018 * @param   iSegment        The segment to set the selectors for.
     1019 * @param   Sel16bit        The 16-bit selector.
     1020 * @param   SelFlat         The flat selector.
     1021 */
     1022RTDECL(int) RTLdrLxSetSegmentSelectors(RTLDRMOD hLdrMod, uint32_t iSegment, uint16_t Sel16bit, uint16_t SelFlat);
     1023
     1024/**
    10131025 * Converts a link address to a segment:offset address.
    10141026 *
  • trunk/include/iprt/mangling.h

    r101470 r102276  
    13451345# define RTLdrLoadSystem                                RT_MANGLER(RTLdrLoadSystem)
    13461346# define RTLdrLoadSystemEx                              RT_MANGLER(RTLdrLoadSystemEx)
     1347# define RTLdrLxSetSegmentSelectors                     RT_MANGLER(RTLdrLxSetSegmentSelectors)
    13471348# define RTLdrOpen                                      RT_MANGLER(RTLdrOpen)
    13481349# define RTLdrOpenEx                                    RT_MANGLER(RTLdrOpenEx)
  • trunk/src/VBox/Runtime/common/ldr/ldrLX.cpp

    r102156 r102276  
    31263126}
    31273127
     3128
     3129RTDECL(int) RTLdrLxSetSegmentSelectors(RTLDRMOD hLdrMod, uint32_t iSegment, uint16_t Sel16bit, uint16_t SelFlat)
     3130{
     3131    AssertMsgReturn(rtldrIsValid(hLdrMod), ("hLdrMod=%p\n", hLdrMod), VERR_INVALID_HANDLE);
     3132    PKLDRMODLX pThis = RT_FROM_MEMBER(hLdrMod, KLDRMODLX, Core);
     3133    AssertReturn(pThis->Core.pOps == &s_rtldrLXOps, VERR_NOT_SUPPORTED);
     3134    AssertReturn(iSegment < pThis->cSegments, VERR_OUT_OF_RANGE);
     3135    pThis->aSegments[iSegment].Sel16bit = Sel16bit;
     3136    pThis->aSegments[iSegment].SelFlat  = SelFlat;
     3137    return VINF_SUCCESS;
     3138}
     3139
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