Talk:Cafe OS Syscalls

Active discussions
Revision as of 22:15, 19 April 2016 by Malygneo (talk | contribs) (→‎Missing FastCalls)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

How about we replace 'Y' with a mark (e.g. 'x') indicating that the syscall is available and remove 'N' completely? This way the table gets better readable.

Missing FastCalls

Since the SysCall_Handler masks with rlwimi r12,r0,5,{22,26} - shouldn't the last FastCall be #0x1F ? 0x3E0/0x20=0x1F, so base 0xFFF021A0 + 0x3E0 =0xFFF02580, the APP_Panic that loads r3 with 0x3001F.

I know 0x1A, 0x1B,0x1C, 0x1D, 0x1E and 0x1F all branch to the table_dispatcher with AppPanic loaded, but later we could use these for other things...

It is correct that the fastcall space goes up to 0x1F fastcalls, however, the PPC kernel marks it's last syscall and fastcall with BadSysCall and BadFastCall (respectively). When a new syscall/fastcall is added, these two symbols are moved to the next invalid syscall/fastcall. That's why I only added up to 0x1A fastcalls. While there are indeed 0x1F hard-coded spaces to install a fastcall, only 0x1A of them are technically valid (at least for the latest firmware version).
Malygneo (talk) 22:15, 19 April 2016 (CEST)