executor/src/mixed_mode.c

84 lines
2.1 KiB
C

/* Copyright 2000 by Abacus Research and
* Development, Inc. All rights reserved.
*/
#if defined (powerpc) || defined (__ppc__)
#if !defined (OMIT_RCSID_STRINGS)
char ROMlib_rcsid_mixed_mode[] =
"$Id: mixed_mode.c 63 2004-12-24 18:19:43Z ctm $";
#endif
#include "rsys/common.h"
#include "FileMgr.h"
#include "MemoryMgr.h"
#include "rsys/mixed_mode.h"
#include "rsys/file.h"
P3 (PUBLIC pascal trap, UniversalProcPtr, NewRoutineDescriptor, ProcPtr, proc,
ProcInfoType, info, ISAType, isa)
{
UniversalProcPtr retval;
if (!proc)
retval = NULL;
else
{
RoutineDescriptor *p;
p = (RoutineDescriptor *) NewPtr (sizeof *p);
p->goMixedModeTrap = CWC (MIXED_MODE_TRAP);
ROMlib_destroy_blocks ((syn68k_addr_t)
US_TO_SYN68K (&p->goMixedModeTrap), 2, TRUE);
p->version = CBC (kRoutineDescriptorVersion);
p->routineDescriptorFlags = CBC (0);
p->reserved1 = CLC (0);
p->reserved2 = CBC (0);
p->selectorInfo = CBC (0);
p->routineCount = CWC (0);
p->routineRecords[0].procInfo = CL (info);
p->routineRecords[0].reserved1 = CBC (0);
p->routineRecords[0].ISA = CB (isa);
p->routineRecords[0].routineFlags = CWC (kSelectorsAreNotIndexable);
p->routineRecords[0].procDescriptor = RM (proc);
p->routineRecords[0].reserved2 = CLC (0);
p->routineRecords[0].selector = CLC (0);
retval = (UniversalProcPtr) p;
}
return retval;
}
P1 (PUBLIC pascal trap, void, DisposeRoutineDescriptor, UniversalProcPtr, ptr)
{
DisposPtr ((Ptr) ptr);
warning_trace_info (NULL_STRING);
}
P3 (PUBLIC pascal trap, UniversalProcPtr, NewFatRoutineDescriptor,
ProcPtr, m68k, ProcPtr, ppc, ProcInfoType, info)
{
warning_unimplemented (NULL_STRING);
*(long *)-1 = -1; /* abort */
return NULL;
}
P2 (PUBLIC pascal trap, OSErr, SaveMixedModeState, void *, statep,
uint32, vers)
{
warning_unimplemented (NULL_STRING);
return paramErr;
}
P2 (PUBLIC pascal trap, OSErr, RestoreMixedModeState, void *, statep,
uint32, vers)
{
warning_unimplemented (NULL_STRING);
return paramErr;
}
#endif