From: <th...@us...> - 2007-11-18 17:03:39
|
Revision: 290 http://ro-oslib.svn.sourceforge.net/ro-oslib/?rev=290&view=rev Author: thughes Date: 2007-11-18 09:03:37 -0800 (Sun, 18 Nov 2007) Log Message: ----------- Added support for OS_AMBControl based on reverse engineering of it's behaviour. (20071118-3, Graham Shaw) Modified Paths: -------------- trunk/!OsLib/Source/Core/oslib/OS.swi trunk/!OsLib/docs/ChangeLog Modified: trunk/!OsLib/Source/Core/oslib/OS.swi =================================================================== --- trunk/!OsLib/Source/Core/oslib/OS.swi 2007-11-18 16:35:14 UTC (rev 289) +++ trunk/!OsLib/Source/Core/oslib/OS.swi 2007-11-18 17:03:37 UTC (rev 290) @@ -2459,9 +2459,119 @@ SWI OS_CallASWI = //RO3.7+ Not APCS-compliant ( NUMBER 0x6F "Calls a run-time determined SWI - RISC O S 3.7+", ABSENT); + +TYPE OS_AMB = .Int "Application memory block"; + +TYPE OS_AMBControlFlags = .Bits; +CONST OS_GivenAMBPageRange = OS_AMBControlFlags: %100000000; + SWI OS_AMBControl = //RO3.7+ - ( NUMBER 0x70 "For system use only - RISC O S 3.7+", ABSENT); + ( NUMBER 0x70 "Performs operations on application memory blocks - + see individual reason codes - RISC O S 3.7+", ABSENT); +SWI OSAMBControl_Create = + ( NUMBER 0x70, + ENTRY + ( R0 # 0 "Creates an application memory block - RISC O S 3.7+", + R1 = .Int: pages + ), + EXIT + ( R1 = .Int: pages_out, + R2 = OS_AMB: amb + ) + ); + +SWI OSAMBControl_Delete = + ( NUMBER 0x70, + ENTRY + ( R0 # 1 "Removes an application memory block - RISC O S 3.7+", + R2 = OS_AMB: amb + ) + ); + +SWI OSAMBControl_Resize = + ( NUMBER 0x70, + ENTRY + ( R0 # 2 "Extends or shrinks an application memory block - + RISC O S 3.7+", + R1 = .Int: pages, + R2 = OS_AMB: amb + ), + EXIT + ( R1 = .Int: pages_out, + R2 = OS_AMB: amb_out, + R3 = .Int: pages_before + ) + ); + +SWI OSAMBControl_Map = + ( NUMBER 0x70, + ENTRY + ( R0 # 3 "Map an application memory block into virtual memory - + RISC O S 3.7+", + R0 | OS_AMBControlFlags: flags, + R1 -> .Data: base_address, + R2 = OS_AMB: amb, + R3 = .Int: start, + R4 = .Int: end + ) + ); + +SWI OSAMBControl_Info = + ( NUMBER 0x70, + ENTRY + ( R0 # 4 "Read information about an application memory block - + RISC O S 3.7+", + R2 = OS_AMB: amb + ), + EXIT + ( R1 -> .Data: base_address, + R3 = .Int: pages + ) + ); + +TYPE OS_LazySwapping = .Int; +CONST + OS_LazySwappingDisable = OS_LazySwapping: 0, + OS_LazySwappingEnable = OS_LazySwapping: 1, + OS_LazySwappingRead = OS_LazySwapping: -1; + +SWI OSAMBControl_LazySwapping = + ( NUMBER 0x70, + ENTRY + ( R0 # 5 "Read or change lazy task swapping state - RISC O S 3.7+", + R1 = OS_LazySwapping: action + ), + EXIT + ( R1 = OS_LazySwapping: state + ) + ); + +TYPE OS_AMBFlags = .Bits; + +TYPE OS_AMBInfo = + .Struct + ( OS_AMB: amb, + .Int: pages, + .Ref .Data: base_address, + OS_AMBFlags: flags + ); + +TYPE OS_AMBTable = + .Struct + ( .Int: count, + OS_AMB: current_amb, + OS_AMBInfo: entries ... + ); + +SWI OSAMBControl_Enumerate = + ( NUMBER 0x70, + ENTRY + ( R0 # 8 "Enumerate application memory blocks - RISC O S 3.7+", + R1 = .Ref OS_AMBTable: table + ) + ); + SWI OS_CallASWIR12 = //RO3.7+ Not APCS-Compliant ( NUMBER 0x71 "Calls a run-time determined SWI - RISC O S 3.7+", ABSENT); // ( NUMBER 0x71 "Calls a run-time determined SWI - RISC O S 3.7+", Modified: trunk/!OsLib/docs/ChangeLog =================================================================== --- trunk/!OsLib/docs/ChangeLog 2007-11-18 16:35:14 UTC (rev 289) +++ trunk/!OsLib/docs/ChangeLog 2007-11-18 17:03:37 UTC (rev 290) @@ -6,6 +6,8 @@ ---------- * Enhancemnts + - Added support for OS_AMBControl based on reverse engineering + of it's behaviour. (20071118-3, Graham Shaw) - Added support for OS_ClaimSWI, OS_ReleaseSWI and OS_ClaimOSSWI based on usenet discussion (http://tinyurl.com/2vfp8k). (20071118-2, Graham Shaw) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |