|
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.
|