Changeset 55


Ignore:
Timestamp:
Oct 11, 2013, 2:55:44 AM (12 years ago)
Author:
bird
Message:

Mach-O: Accept MH_KEXT_BUNDLE (untested for loading purposes).

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/k/kLdrFmts/mach-o.h

    r50 r55  
    145145#define MH_DYLIB_STUB       KU32_C(9) /**< Shared library stub for static linking. */
    146146#define MH_DSYM             KU32_C(10)/**< Debug symbols. */
     147#define MH_KEXT_BUNDLE      KU32_C(11)/**< Kernel extension (introduced with the AMD64 kernel). */
    147148
    148149/** @} */
  • trunk/kLdr/kLdrModMachO.c

    r54 r55  
    345345        && s.Hdr32.filetype != MH_EXECUTE
    346346        && s.Hdr32.filetype != MH_DYLIB
    347         && s.Hdr32.filetype != MH_DSYM)
     347        && s.Hdr32.filetype != MH_DSYM
     348        && s.Hdr32.filetype != MH_KEXT_BUNDLE)
    348349        return KLDR_ERR_MACHO_UNSUPPORTED_FILE_TYPE;
    349350
     
    451452        case MH_EXECUTE:    pMod->enmType = KLDRTYPE_EXECUTABLE_FIXED; break;
    452453        case MH_DYLIB:      pMod->enmType = KLDRTYPE_SHARED_LIBRARY_RELOCATABLE; break;
     454        case MH_KEXT_BUNDLE:pMod->enmType = KLDRTYPE_SHARED_LIBRARY_RELOCATABLE; break;
    453455        case MH_DSYM:       pMod->enmType = KLDRTYPE_DEBUG_INFO; break;
    454456        default:
     
    725727                        case MH_DYLIB:
    726728                        case MH_DSYM:
     729                        case MH_KEXT_BUNDLE:
    727730                        {
    728731                            cSections++;
     
    920923                        case MH_DYLIB:
    921924                        case MH_DSYM:
     925                        case MH_KEXT_BUNDLE:
    922926                        {
    923927                            cSections++;
     
    10881092        case MH_DYLIB:
    10891093        case MH_DSYM:
     1094        case MH_KEXT_BUNDLE:
    10901095            if (!cSegments)
    10911096                return KLDR_ERR_MACHO_BAD_OBJECT_FILE;
     
    11651170                        case MH_DYLIB:
    11661171                        case MH_DSYM:
     1172                        case MH_KEXT_BUNDLE:
    11671173                        {
    11681174                            /* Section data extract. */
     
    13011307                        case MH_DYLIB:
    13021308                        case MH_DSYM:
     1309                        case MH_KEXT_BUNDLE:
    13031310                        {
    13041311                            /* Section data extract. */
     
    14231430                    case MH_DYLIB: /** @todo ??? */
    14241431                    case MH_DSYM:
     1432                    case MH_KEXT_BUNDLE:
    14251433                        pModMachO->offSymbols = u.pSymTab->symoff + pModMachO->offImage;
    14261434                        pModMachO->cSymbols = u.pSymTab->nsyms;
     
    15371545        case MH_DYLIB: /** @todo dylib */
    15381546        case MH_DSYM:
     1547        case MH_KEXT_BUNDLE:
    15391548        {
    15401549            KLDRADDR cb1;
     
    17941803        || pModMachO->Hdr.filetype == MH_EXECUTE /** @todo dylib, execute, dsym: symbols */
    17951804        || pModMachO->Hdr.filetype == MH_DYLIB
    1796         || pModMachO->Hdr.filetype == MH_DSYM)
     1805        || pModMachO->Hdr.filetype == MH_DSYM
     1806        || pModMachO->Hdr.filetype == MH_KEXT_BUNDLE)
    17971807    {
    17981808        rc = kldrModMachOLoadObjSymTab(pModMachO);
     
    21072117        || pModMachO->Hdr.filetype == MH_EXECUTE /** @todo dylib, execute, dsym: symbols */
    21082118        || pModMachO->Hdr.filetype == MH_DYLIB
    2109         || pModMachO->Hdr.filetype == MH_DSYM)
     2119        || pModMachO->Hdr.filetype == MH_DSYM
     2120        || pModMachO->Hdr.filetype == MH_KEXT_BUNDLE)
    21102121    {
    21112122        rc = kldrModMachOLoadObjSymTab(pModMachO);
Note: See TracChangeset for help on using the changeset viewer.