AmigaChromeA new chapter for the Amiga

API docs / Open libraries / exec.library

API · Libraries

exec.library jump table

Our open exec.library: 115 calls with the same LVOs and registers as AmigaOS 3.2's, checked against the NDK 3.2 .fd file.

exec.library's jump table, as OpenExec builds it: LVO, call, registers, and each call's core class (OPEN_LIBRARIES.md section 5): pure (no shared state, any core), locked (shared state behind its own lock), anchored (exec's own world on CPU0: tasks, interrupts, Forbid/Disable, the system lists). build-amiga.sh (with ../common/check_fd.py) checks this against the NDK 3.2 exec_lib.fd in the stove and stops on any difference. Written from exec's autodocs and the NDK's documented register use; the private slots carry the names the ROM study measured, for reference only. Aliases sharing an LVO (the MinList forms, NDK 3.2): InsertMinNode = Insert, AddHeadMinList = AddHead, AddTailMinList = AddTail, RemoveMinNode = Remove, RemHeadMinList = RemHead, RemTailMinList = RemTail. The tail after NewMinList: private slots up to -912 (33 private in all, as the ROM study counted in 3.2's SFD); check_fd.py accepts private slots the NDK leaves out, so the stove run settles how many there are.

148 slots, 115 public
LVOCallRegistersNotes
-30Supervisora5anchored
-36privatenoneanchored (ExitIntr)
-42privatenoneanchored (Schedule)
-48privatenoneanchored (Reschedule)
-54privatenoneanchored (Switch)
-60privatenoneanchored (Dispatch)
-66privatenoneanchored (Exception)
-72InitCoded0, d1anchored
-78InitStructa1, a2, d0pure
-84MakeLibrarya0, a1, a2, d0, d1locked
-90MakeFunctionsa0, a1, a2pure
-96FindResidenta1pure
-102InitResidenta1, d1anchored
-108Alertd7anchored
-114Debugd0anchored
-120Disablenoneanchored
-126Enablenoneanchored
-132Forbidnoneanchored
-138Permitnoneanchored
-144SetSRd0, d1anchored
-150SuperStatenoneanchored
-156UserStated0anchored
-162SetIntVectord0, a1anchored
-168AddIntServerd0, a1anchored
-174RemIntServerd0, a1anchored
-180Causea1anchored
-186Allocatea0, d0locked
-192Deallocatea0, a1, d0locked
-198AllocMemd0, d1locked
-204AllocAbsd0, a1locked
-210FreeMema1, d0locked
-216AvailMemd1locked
-222AllocEntrya0locked
-228FreeEntrya0locked
-234Inserta0, a1, a2pure
-240AddHeada0, a1pure
-246AddTaila0, a1pure
-252Removea1pure
-258RemHeada0pure
-264RemTaila0pure
-270Enqueuea0, a1pure
-276FindNamea0, a1pure
-282AddTaska1, a2, a3anchored
-288RemTaska1anchored
-294FindTaska1anchored
-300SetTaskPria1, d0anchored
-306SetSignald0, d1anchored
-312SetExceptd0, d1anchored
-318Waitd0anchored
-324Signala1, d0anchored
-330AllocSignald0anchored
-336FreeSignald0anchored
-342AllocTrapd0anchored
-348FreeTrapd0anchored
-354AddPorta1anchored
-360RemPorta1anchored
-366PutMsga0, a1locked
-372GetMsga0locked
-378ReplyMsga1locked
-384WaitPorta0anchored
-390FindPorta1anchored
-396AddLibrarya1anchored
-402RemLibrarya1anchored
-408OldOpenLibrarya1anchored
-414CloseLibrarya1anchored
-420SetFunctiona1, a0, d0anchored
-426SumLibrarya1locked
-432AddDevicea1anchored
-438RemDevicea1anchored
-444OpenDevicea0, d0, a1, d1anchored
-450CloseDevicea1anchored
-456DoIOa1anchored
-462SendIOa1anchored
-468CheckIOa1locked
-474WaitIOa1anchored
-480AbortIOa1anchored
-486AddResourcea1anchored
-492RemResourcea1anchored
-498OpenResourcea1anchored
-504privatenoneanchored (RawIOInit)
-510privatenoneanchored (RawMayGetChar)
-516privatenoneanchored (RawPutChar(d0))
-522RawDoFmta0, a1, a2, a3pure
-528GetCCnonepure
-534TypeOfMema1locked
-540Procurea0, a1locked
-546Vacatea0, a1locked
-552OpenLibrarya1, d0anchored
-558InitSemaphorea0pure
-564ObtainSemaphorea0locked
-570ReleaseSemaphorea0locked
-576AttemptSemaphorea0locked
-582ObtainSemaphoreLista0anchored
-588ReleaseSemaphoreLista0anchored
-594FindSemaphorea1anchored
-600AddSemaphorea1anchored
-606RemSemaphorea1anchored
-612SumKickDatanoneanchored
-618AddMemListd0, d1, d2, a0, a1locked
-624CopyMema0, a1, d0pure
-630CopyMemQuicka0, a1, d0pure
-636CacheClearUnoneanchored
-642CacheClearEa0, d0, d1anchored
-648CacheControld0, d1anchored
-654CreateIORequesta0, d0locked
-660DeleteIORequesta0locked
-666CreateMsgPortnoneanchored
-672DeleteMsgPorta0anchored
-678ObtainSemaphoreShareda0locked
-684AllocVecd0, d1locked
-690FreeVeca1locked
-696CreatePoold0, d1, d2locked
-702DeletePoola0locked
-708AllocPooleda0, d0locked
-714FreePooleda0, a1, d0locked
-720AttemptSemaphoreShareda0locked
-726ColdRebootnoneanchored
-732StackSwapa0anchored
-738privatenoneanchored (ChildFree(d0))
-744privatenoneanchored (ChildOrphan(d0))
-750privatenoneanchored (ChildStatus(d0))
-756privatenoneanchored (ChildWait(d0))
-762CachePreDMAa0, a1, d0anchored
-768CachePostDMAa0, a1, d0anchored
-774AddMemHandlera1anchored
-780RemMemHandlera1anchored
-786ObtainQuickVectora0anchored
-792privatenoneanchored
-798privatenoneanchored
-804privatenoneanchored
-810privatenoneanchored
-816privatenoneanchored
-822privatenoneanchored
-828NewMinLista0pure
-834privatenoneanchored (reserved)
-840privatenoneanchored (reserved)
-846privatenoneanchored (reserved)
-852privatenoneanchored (reserved)
-858privatenoneanchored (reserved)
-864privatenoneanchored (reserved)
-870privatenoneanchored (reserved)
-876privatenoneanchored (reserved)
-882privatenoneanchored (reserved)
-888privatenoneanchored (reserved)
-894privatenoneanchored (reserved)
-900privatenoneanchored (reserved)
-906privatenoneanchored (reserved)
-912privatenoneanchored (reserved)