Custer: work on StartMgr-OpenFirmware interface

This commit is contained in:
Elliot Nunn 2019-07-11 19:26:25 +08:00
parent 912edd74a2
commit 145a2b8af8
2 changed files with 358 additions and 157 deletions

View File

@ -4418,164 +4418,151 @@ new file mode 100644
@@ -0,0 +1 @@
+OBJ MPS
\ No newline at end of file
diff --git a/AmphibianDNA/OpenFirmware.c.o b/AmphibianDNA/OpenFirmware.c.o
diff --git a/AmphibianDNA/OpenFirmwareX.c.o b/AmphibianDNA/OpenFirmwareX.c.o
new file mode 100644
index 0000000000000000000000000000000000000000..f94f9d2ce0ada4b93973f7793b4134cfab3d16f0
index 0000000000000000000000000000000000000000..25aaafa9bc93128a9a3b64c9f57eae1ba2a614dd
GIT binary patch
literal 21616
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
LsOF3<7$f^X+35o>
literal 19602
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
literal 0
HcmV?d00001
diff --git a/AmphibianDNA/OpenFirmware.c.o.idump b/AmphibianDNA/OpenFirmware.c.o.idump
diff --git a/AmphibianDNA/OpenFirmwareX.c.o.idump b/AmphibianDNA/OpenFirmwareX.c.o.idump
new file mode 100644
--- /dev/null
+++ b/AmphibianDNA/OpenFirmware.c.o.idump
+++ b/AmphibianDNA/OpenFirmwareX.c.o.idump
@@ -0,0 +1 @@
+OBJ MPS
\ No newline at end of file

View File

@ -3157,6 +3157,70 @@ diff --git a/Internal/C/MFPrivate.h b/Internal/C/MFPrivate.h
/*************************************************************************
* Application Menu.
*************************************************************************/
diff --git a/Internal/C/NameRegistryPriv.h b/Internal/C/NameRegistryPriv.h
new file mode 100644
--- /dev/null
+++ b/Internal/C/NameRegistryPriv.h
@@ -0,0 +1,54 @@
+#ifndef __NAMEREGISTRYPRIV__
+#define __NAMEREGISTRYPRIV__
+
+#ifndef __MACTYPES__
+#include <MacTypes.h>
+#endif
+
+#ifndef __NAMEREGISTRY__
+#include <NameRegistry.h>
+#endif
+
+
+/* Private trap selectors gleaned from NameRegistryTraps PEF */
+
+EXTERN_API_C( OSStatus )
+RegistryPropertyGetPtr(
+ const RegEntryID * entryID,
+ const RegPropertyName * propertyName,
+ Ptr * propertyPtr,
+ RegPropertyValueSize * propertySize) TWOWORDINLINE(0x70FA, 0xABE9);
+
+/* ??? */
+EXTERN_API_C( OSStatus )
+RegistryEntryToOFPathSize(
+ void) TWOWORDINLINE(0x70FB, 0xABE9);
+
+/* ??? */
+EXTERN_API_C( OSStatus )
+RegistryCStrEntryToOFPath(
+ void) TWOWORDINLINE(0x70FC, 0xABE9);
+
+/* Rough guess */
+EXTERN_API_C( OSStatus )
+RegistryDeviceSearch(
+ RegEntryIter * cookie,
+ RegEntryIterationOp relationship,
+ RegEntryID * foundEntry,
+ Boolean * done,
+ const RegPropertyName * propertyName,
+ const void * propertyValue,
+ RegPropertyValueSize propertySize) TWOWORDINLINE(0x70FD, 0xABE9);
+
+EXTERN_API_C( OSStatus )
+RegistryDeviceNodeIDToEntryID(
+ long nodeID,
+ RegEntryID * entryID) TWOWORDINLINE(0x70FE, 0xABE9);
+
+EXTERN_API_C( OSStatus )
+RegistryEntryIDToDeviceNodeID(
+ RegEntryID * entryID,
+ long * nodeID) TWOWORDINLINE(0x70FF, 0xABE9);
+
+
+#endif
\ No newline at end of file
diff --git a/Internal/C/CodeFragments.h.idump b/Internal/C/NameRegistryPriv.h.idump
similarity index 100%
rename from Internal/C/CodeFragments.h.idump
rename to Internal/C/NameRegistryPriv.h.idump
diff --git a/Internal/C/ScriptPriv.h b/Internal/C/ScriptPriv.h
--- a/Internal/C/ScriptPriv.h
+++ b/Internal/C/ScriptPriv.h
@ -21659,9 +21723,9 @@ new file mode 100644
+
+
+ END
diff --git a/Internal/C/CodeFragments.h.idump b/OS/MPDispatchStub.a.idump
diff --git a/Internal/C/CodeFragmentsTrap.h.idump b/OS/MPDispatchStub.a.idump
similarity index 100%
rename from Internal/C/CodeFragments.h.idump
rename from Internal/C/CodeFragmentsTrap.h.idump
rename to OS/MPDispatchStub.a.idump
diff --git a/OS/OS.make b/OS/OS.make
--- a/OS/OS.make
@ -22749,6 +22813,141 @@ diff --git a/OS/StartMgr/Gibbly.r b/OS/StartMgr/Gibbly.r
};
};
diff --git a/OS/StartMgr/OpenFirmware.c b/OS/StartMgr/OpenFirmware.c
new file mode 100644
--- /dev/null
+++ b/OS/StartMgr/OpenFirmware.c
@@ -0,0 +1,123 @@
+#include <CodeFragments.h>
+#include <NameRegistry.h>
+#include <NameRegistryPriv.h>
+
+
+struct mystruct {
+ long l1;
+ char *l2;
+ RegPropertyValueSize l3;
+ short sh;
+ char c1; char c2;
+};
+
+pascal short CFM_4(struct mystruct *, long, char *, char) = {0x3F3C, 0xFFFC, 0xAA5A};
+
+void
+INTERC_11E0_C2PSTRCPY(char *dest, char *src)
+{
+ unsigned long len = 0;
+ char *osrc = src;
+
+ /* Count len to max 255 */
+ while (*src++) ++len; if (len > 255) len = 255;
+
+ /* Place length byte */
+ *dest++ = len++;
+
+ /* Copy string */
+ while (--len) *dest++ = *osrc++;
+}
+
+OSErr
+INTERC_1230(char *arg1, RegPropertyValueSize arg2, char *cLibName, long arg4) /* PrepareByName */
+{
+ struct mystruct mystruct;
+ CFragConnectionID connid; Ptr code;
+ Str255 pLibName, pErrMessage;
+ OSErr err;
+
+ strcpy(pLibName, cLibName);
+ c2pstr(pLibName);
+
+ mystruct.l1 = 0;
+ mystruct.l2 = arg1;
+ mystruct.l3 = arg2;
+ mystruct.sh = 0;
+ mystruct.c1 = 0;
+ mystruct.c2 = 0;
+
+ if (!(err = CFM_4(&mystruct, 0, pLibName, 0)) && (char)arg4) {
+ pErrMessage[0] = 0;
+ err = GetSharedLibrary(pLibName, kPowerPCCFragArch, kReferenceCFrag, &connid, &code, pErrMessage);
+ }
+
+ return err;
+}
+
+OSErr
+INTERC_12E0_CODEPREPARE(char *codePrepareName, Boolean passthruArg) /* PrepareInOrder */
+{
+ RegPropertyIter cookie;
+ RegEntryID theNode;
+ char curPropName[32];
+ RegPropertyValueSize propNameLen, prepOrderLen;
+ char *propName, *prepOrder;
+ Boolean doneflag;
+ OSErr err;
+ char *fragToPrep;
+ Boolean alreadyPrepared;
+
+ RegistryEntryIDInit(&theNode);
+ err = RegistryCStrEntryLookup(NULL, codePrepareName, &theNode);
+
+ prepOrder = 0; prepOrderLen = 0;
+
+ if (!err && passthruArg) {
+ err = RegistryPropertyGetPtr(&theNode, "AAPL,prepare_order", &prepOrder, &prepOrderLen);
+ if (err) {
+ err = 0;
+ } else {
+ for (fragToPrep = prepOrder; fragToPrep < prepOrder + prepOrderLen; fragToPrep += strlen(fragToPrep) + 1) {
+ err = RegistryPropertyGetPtr(&theNode, fragToPrep, &propName, &propNameLen);
+ if (!err) {
+ err = INTERC_1230(propName, propNameLen, fragToPrep, passthruArg);
+ }
+ }
+ err = 0;
+ }
+ }
+
+ if (!err) {
+ doneflag = 0;
+ err = RegistryPropertyIterateCreate(&theNode, &cookie);
+ if (!err) {
+ while (!doneflag && !err) {
+ err = RegistryPropertyIterate(&cookie, curPropName, &doneflag);
+ if (!doneflag && !err && strcmp(curPropName, "name") && strcmp(curPropName, "AAPL,prepare_order")) {
+ alreadyPrepared = 0;
+ fragToPrep = prepOrder;
+
+ if (fragToPrep) while (!alreadyPrepared && fragToPrep < prepOrder + prepOrderLen) {
+ alreadyPrepared = !strcmp(curPropName, fragToPrep);
+ fragToPrep += strlen(fragToPrep) + 1;
+ }
+
+ if (!alreadyPrepared) {
+ err = RegistryPropertyGetPtr(&theNode, curPropName, &propName, &propNameLen);
+ if (!err) {
+ err = INTERC_1230(propName, propNameLen, curPropName, passthruArg);
+ }
+ }
+ }
+ }
+ RegistryPropertyIterateDispose(&cookie);
+ }
+ }
+
+ RegistryEntryIDDispose(&theNode);
+
+ return err;
+}
+
+/* This file is complete... the remaining kilobytes to 0x2BC0 are filled by Amphibian DNA */
diff --git a/OS/StartMgr/OpenFirmware.c.idump b/OS/StartMgr/OpenFirmware.c.idump
new file mode 100644
--- /dev/null
+++ b/OS/StartMgr/OpenFirmware.c.idump
@@ -0,0 +1 @@
+TEXTMPS
\ No newline at end of file
diff --git a/OS/StartMgr/SizeMem.a b/OS/StartMgr/SizeMem.a
--- a/OS/StartMgr/SizeMem.a
+++ b/OS/StartMgr/SizeMem.a
@ -28187,11 +28386,12 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
diff --git a/OS/StartMgr/StartMgr.make b/OS/StartMgr/StartMgr.make
--- a/OS/StartMgr/StartMgr.make
+++ b/OS/StartMgr/StartMgr.make
@@ -27,18 +27,18 @@
@@ -27,18 +27,19 @@
StartMgrObjs = "{ObjDir}StartTop.a.o" ∂
"{ObjDir}StartInit.a.o" ∂
+ "{ObjDir}OpenFirmware.c.o" ∂
+ "{ObjDir}OpenFirmwareX.c.o" ∂
+ "{ObjDir}PPCDebuggerNub.c.o" ∂
+ "{ObjDir}PPCDebuggerNub.a.o" ∂
"{ObjDir}StartSearch.a.o" ∂
@ -28211,6 +28411,17 @@ diff --git a/OS/StartMgr/StartMgr.make b/OS/StartMgr/StartMgr.make
Boot3Objects = "{ObjDir}Boot3.a.o" ∂
@@ -59,6 +60,10 @@ Boot3Objects = "{ObjDir}Boot3.a.o" ∂
Lib {StdLibOpts} {StartTestObjs} -o "{Targ}"
+"{ObjDir}OpenFirmware.c.o" ƒ "{StartDir}OpenFirmware.c"
+ C {StdCOpts} -o "{Targ}" "{StartDir}OpenFirmware.c"
+
+
"{ObjDir}StartAlert.a.o" ƒ "{StartDir}StartAlert.a"
Asm {StdAOpts} -o "{Targ}" "{StartDir}StartAlert.a"
diff --git a/OS/StartMgr/StartSearch.a b/OS/StartMgr/StartSearch.a
--- a/OS/StartMgr/StartSearch.a
+++ b/OS/StartMgr/StartSearch.a
@ -44221,10 +44432,13 @@ new file mode 100644
+ move #paramErr,D0
+ move D0,QDErr
+ jmp (A0)
diff --git a/Internal/C/CodeFragmentsTrap.h.idump b/QuickDraw/QDExtensions2.a.idump
similarity index 100%
rename from Internal/C/CodeFragmentsTrap.h.idump
rename to QuickDraw/QDExtensions2.a.idump
diff --git a/QuickDraw/QDExtensions2.a.idump b/QuickDraw/QDExtensions2.a.idump
new file mode 100644
--- /dev/null
+++ b/QuickDraw/QDExtensions2.a.idump
@@ -0,0 +1 @@
+TEXTMPS
\ No newline at end of file
diff --git a/QuickDraw/QDUtil.a b/QuickDraw/QDUtil.a
--- a/QuickDraw/QDUtil.a
+++ b/QuickDraw/QDUtil.a