Proposed .Asm change (was: Re: Couple of bugs)
John Tytgat
John.Tytgat at aaug.net
Sat Feb 9 16:53:28 GMT 2008
In message <916954264f.christian at venice.lab>
Christian Ludlam <christian at recoil.org> wrote:
> On 21 Sep Tom Hughes wrote:
>
> > The problem is that DefMod doesn't have a syntax to fully describe
> > functions and their arguments so it can't spit out a proper prototype
> > and instead the function type in DefMod is just mapped to void * in
> > the C output I think.
> >
> > A lot of the function points taken by SWIs are not very amenable to
> > being represented as C prototypes anyway I suspect...
>
> I don't think it would need to describe the prototype fully - currently you
> need to cast your function, but even with an EXPLICIT cast Norcroft gives you
> a "cast between function and non-function types" warning.
>
> If it was prototyped as "void (*)(void)" then you'd still need the cast, but
> you'd get rid of the warning.
>
> I did this when I modified DefMod to generate veneers to let me build Zap
> modes in C. The code changed (in cheader.c)
>
> case def_TYPE_ASM:
> if ((rc = fprintf (file, "void %s", v)) < 0)
> goto finish; /*v != NULL*/
> break;
>
> into this:
>
> case def_TYPE_ASM:
> if ((rc = fprintf (file, "void (*%s)(void)", v)) < 0)
> goto finish; /*v != NULL*/
> break;
>
> We'd probably need to go through all the swi files that use .Asm and check
> that they really do mean function pointers, and not just (void *).
I tried out Christian's suggestion but this DefMod source change alone
results in in e.g.:
__swi (0x19) void (**os_unused_swi)(void) (void (*const *unused_swi_handler)(void));
while originally it was:
__swi (0x19) void *os_unused_swi (void const *unused_swi_handler);
But this new protype gives rightfully the error "error: 'os_unused_swi'
declared as function returning a function" using the gcc compiler. :-(
My understanding is that the .Asm type actually means "assembler code"
while we want to have it as "pointer to assembler code" so that a 'myfunc'
in a "void myfunc(void);" prototype can be given as one of the parameters
in an OSLib generated routine without any need to cast or compiler
complaining that there is a type mismatch.
So I propose to change the ".Asm" semantics to "pointer to assembler code"
which pratically means:
1) All "Rx -> .Asm: xyz" are changing to "Rx = .Asm: xyz" and all
".Ref .Asm: xyz" into ".Asm: xyz".
2) In oslib/Types.h a new typedef is created:
typedef void (*asm_routine)(void);
which represents a pointer to an assembler routine, not necessary
requiring an APCS interface.
3) And generated C prototypes are changing similar like the following
example:
From:
extern os_error *xosclaimprocessorvector_alloc (bits vector,
void const *routine,
void **old_routine);
extern void *osclaimprocessorvector_alloc (bits vector,
void const *routine);
To:
extern os_error *xosclaimprocessorvector_alloc (bits vector,
asm_routine routine,
asm_routine *old_routine);
extern asm_routine osclaimprocessorvector_alloc (bits vector,
asm_routine routine);
Note that this does not mean a binary API change of OSLib, only C headers
are changed by this.
I tried this out and this seems to work as expected (i.e. no longer a
need for casting nor any compiler warnings). I've included the following
two patches in order to get feedback on this idea:
1) asmtype_change/patch: contains all the changes I made to implement this
proposal.
- The above mentioned .Asm changes in the .swi files.
- Drop the DragAnObject_Function type and change this to ".Asm"
- Change the type of PDriver_DeclareDriver's 'reason' parameter from
".Int" to ".Asm".
- DefMod:
- Changed .Asm definition in Manual.htm from "void *" to "asm_routine".
- Implemented the proposed .Asm semantic change.
- oslib/Types.h: added asm_routine typedef + suitable explanation.
- Some unrelated changes:
- in oslib/Types.h: put all typedefs in namespace OSLib when
NAMESPACE_OSLIB is defined.
- DefMod2/Manual.htm: fixed description of what "->" is translated to
as input parameter (is "CVT(type) const *", not "CVT(type) *").
2) header_asmtype/patch: resulting differences in the generated C and
assembler header files (ELF headers, the AOF header changes are similar).
Any objections on checking this in ?
John.
--
John Tytgat, in his comfy chair at home BASS
John.Tytgat at aaug.net ARM powered, RISC OS driven
-------------- next part --------------
Index: Source/Toolbox/oslib/DragAnObject.swi
===================================================================
--- Source/Toolbox/oslib/DragAnObject.swi (revision 293)
+++ Source/Toolbox/oslib/DragAnObject.swi (working copy)
@@ -3,8 +3,6 @@
NEEDS OS;
-TYPE DragAnObject_Function;
-
CONST
DragAnObject_HPosLeft = .Bits: 0b00,
DragAnObject_HPosCentre = .Bits: 0b01,
@@ -27,7 +25,7 @@
( NUMBER 0x49C40 "Takes a copy of an object and starts a Wimp drag",
ENTRY
( R0 = .Bits: flags,
- R1 = DragAnObject_Function: function,
+ R1 = .Asm: function,
R2 -> OS_RegisterBlock: register_block,
R3 -> OS_Box: box,
R4 -> OS_Box: bbox
Index: Source/Core/oslib/Podule.swi
===================================================================
--- Source/Core/oslib/Podule.swi (revision 293)
+++ Source/Core/oslib/Podule.swi (working copy)
@@ -115,11 +115,11 @@
by ADFS to locate an IDE expansion card",
R2 = .Ref .Data: controller, R3 = .Ref .Int: status_location,
R4 = .Bits: status_bits, R5 = .Ref .Int: irq_location,
- R6 = .Bits: irq_bits, R7 -> .Asm: read_code,
- R8 -> .Asm: write_code), EXIT (R1! = .Bool: unclaimed,
+ R6 = .Bits: irq_bits, R7 = .Asm: read_code,
+ R8 = .Asm: write_code), EXIT (R1! = .Bool: unclaimed,
R2 = .Ref .Data: controller_out, R3 =.Ref .Int: status_location_out,
R4 = .Bits: status_bits_out, R5 = .Ref .Int: irq_location_out,
- R6 = .Bits: irq_bits_out, R7 -> .Asm: read_code_out,
- R8 -> .Asm: write_code_out)),
+ R6 = .Bits: irq_bits_out, R7 = .Asm: read_code_out,
+ R8 = .Asm: write_code_out)),
Service_ADFSPoduleIDEDying = (NUMBER 0x30, ENTRY (R1 # 0x10802 "IDE
expansion card dying"))
Index: Source/Core/oslib/Sound.swi
===================================================================
--- Source/Core/oslib/Sound.swi (revision 293)
+++ Source/Core/oslib/Sound.swi (working copy)
@@ -8,8 +8,8 @@
Sound_LogScaleTable = .Struct ([256] .Byte: log_scale),
Sound_ChannelHandler =
.Struct
- ( .Ref .Asm: fill_code,
- .Ref .Asm: overrun_fixup_code,
+ ( .Asm: fill_code,
+ .Asm: overrun_fixup_code,
.Ref Sound_LogTable: log_table,
.Ref Sound_LogScaleTable: log_scale_table
),
@@ -30,7 +30,7 @@
[7] .Int: reserved,
[48] .Int: available
),
- Sound_Scheduler = .Struct (.Ref .Asm: scheduler),
+ Sound_Scheduler = .Struct (.Asm: scheduler),
Sound_VoiceGenerator =
.Struct
( .Int: fill_code,
@@ -108,8 +108,8 @@
SWI Sound_LinearHandler = (NUMBER 0x40145 "Reads or installs the 16-bit
linear stereo sound handler",
ENTRY (R0 = .Bool: install,
- R1 -> .Asm: new_handler_code, R2 = .Ref Void: new_workspace),
- EXIT (R1 -> .Asm: old_handler_code, R2 = .Ref Void: old_workspace));
+ R1 = .Asm: new_handler_code, R2 = .Ref Void: new_workspace),
+ EXIT (R1 = .Asm: old_handler_code, R2 = .Ref Void: old_workspace));
CONST Sound_Hz = .Int: 1024 "1Hz in Sound units";
Index: Source/Core/oslib/DMA.swi
===================================================================
--- Source/Core/oslib/DMA.swi (revision 293)
+++ Source/Core/oslib/DMA.swi (working copy)
@@ -7,11 +7,11 @@
TYPE DMA_Routines =
.Struct
- ( .Ref .Asm: enable,
- .Ref .Asm: disable,
- .Ref .Asm: start,
- .Ref .Asm: completed,
- .Ref .Asm: sync
+ ( .Asm: enable,
+ .Asm: disable,
+ .Asm: start,
+ .Asm: completed,
+ .Asm: sync
);
TYPE DMA_Scatter = .Struct (.Ref .Data: address, .Int: size),
Index: Source/Core/oslib/Territory.swi
===================================================================
--- Source/Core/oslib/Territory.swi (revision 293)
+++ Source/Core/oslib/Territory.swi (working copy)
@@ -68,7 +68,7 @@
Error_NoTerritory = .Bits: &192;
TYPE
- Territory_Data = .Struct ([43] .Ref .Asm: e);
+ Territory_Data = .Struct ([43] .Asm: e);
TYPE
Territory_Ordinals =
Index: Source/Core/oslib/OSSpriteOp.swi
===================================================================
--- Source/Core/oslib/OSSpriteOp.swi (revision 293)
+++ Source/Core/oslib/OSSpriteOp.swi (working copy)
@@ -12,7 +12,7 @@
OSSpriteOp_ColourMapping =
.Struct
( .Ref .Data: workspace,
- .Ref .Asm: function
+ .Asm: function
),
OSSpriteOp_Area =
Index: Source/Core/oslib/Buffer.swi
===================================================================
--- Source/Core/oslib/Buffer.swi (revision 293)
+++ Source/Core/oslib/Buffer.swi (working copy)
@@ -90,7 +90,7 @@
SWI Buffer_LinkDevice = (NUMBER 0x42945 "Links a set of routines to a
specified buffer", ENTRY (R0 = Buffer_B: b,
- R1 -> .Asm: wakeup_code, R2 -> .Asm: owner_change_code,
+ R1 = .Asm: wakeup_code, R2 = .Asm: owner_change_code,
R3 = .Int: handle, R4 = .Ref Void: workspace));
SWI Buffer_UnlinkDevice = (NUMBER 0x42946 "Unlinks a set of routines from the
@@ -112,7 +112,7 @@
SWI Buffer_InternalInfo = (NUMBER 0x42949 "Converts a buffer handle into a
buffer manager internal id - RISC O S 3.5+", ENTRY (R0 = Buffer_B: b),
- EXIT (R0! = Buffer_InternalId: id, R1 -> .Asm: service_routine,
+ EXIT (R0! = Buffer_InternalId: id, R1 = .Asm: service_routine,
R2 = .Ref Void: workspace));
SWI
Index: Source/Core/oslib/ColourTrans.swi
===================================================================
--- Source/Core/oslib/ColourTrans.swi (revision 293)
+++ Source/Core/oslib/ColourTrans.swi (working copy)
@@ -497,7 +497,7 @@
R4 = .Ref OSSpriteOp_TransTab: trans_tab,
R5 = ColourTrans_TableFlags: flags,
R6 = .Ref Void: workspace,
- R7 -> .Asm: transfer_fn
+ R7 = .Asm: transfer_fn
),
EXIT
( R4! = .Int: size
@@ -513,7 +513,7 @@
R4 = .Ref OSSpriteOp_TransTab: trans_tab,
R5 = ColourTrans_TableFlags: flags,
R6 = .Ref Void: workspace,
- R7 -> .Asm: transfer_fn
+ R7 = .Asm: transfer_fn
),
EXIT
( R4! = .Int: size
Index: Source/Core/oslib/OS.swi
===================================================================
--- Source/Core/oslib/OS.swi (revision 293)
+++ Source/Core/oslib/OS.swi (working copy)
@@ -747,16 +747,16 @@
SWI OS_Control =
( NUMBER 0xF "Reads/writes handler addresses - prefer OS_ChangeEnvironment",
ENTRY
- ( R0 -> .Asm: error_handler,
+ ( R0 = .Asm: error_handler,
R1 = .Ref OS_Error: error_buffer,
- R2 -> .Asm: escape_handler,
- R3 -> .Asm: event_handler
+ R2 = .Asm: escape_handler,
+ R3 = .Asm: event_handler
),
EXIT
- ( R0 -> .Asm: old_error_handler,
+ ( R0 = .Asm: old_error_handler,
R1 = .Ref OS_Error: old_error_buffer,
- R2 -> .Asm: old_escape_handler,
- R3 -> .Asm: old_event_handler
+ R2 = .Asm: old_escape_handler,
+ R3 = .Asm: old_event_handler
) );
SWI OS_GetEnv =
@@ -778,20 +778,20 @@
SWI OS_SetEnv =
( NUMBER 0x12 "Sets environment parameters - prefer OS_ChangeEnvironment",
ENTRY
- ( R0 -> .Asm: exit_handler,
+ ( R0 = .Asm: exit_handler,
R1 = .Ref .Data: ram_limit,
- R4 -> .Asm: undefined_instruction_handler,
- R5 -> .Asm: prefetch_abort_handler,
- R6 -> .Asm: data_abort_handler,
- R7 -> .Asm: address_exception_handler
+ R4 = .Asm: undefined_instruction_handler,
+ R5 = .Asm: prefetch_abort_handler,
+ R6 = .Asm: data_abort_handler,
+ R7 = .Asm: address_exception_handler
),
EXIT
- ( R0 -> .Asm: old_exit_handler,
+ ( R0 = .Asm: old_exit_handler,
R1 = .Ref .Data: old_ram_limit,
- R4 -> .Asm: old_undefined_instruction_handler,
- R5 -> .Asm: old_prefetch_abort_handler,
- R6 -> .Asm: old_data_abort_handler,
- R7 -> .Asm: old_address_exception_handler
+ R4 = .Asm: old_undefined_instruction_handler,
+ R5 = .Asm: old_prefetch_abort_handler,
+ R6 = .Asm: old_data_abort_handler,
+ R7 = .Asm: old_address_exception_handler
) );
// V621 TV - IntOn/IntOff can now be called
@@ -818,11 +818,11 @@
( NUMBER 0x15 "Sets up the callback handler - prefer OS_ChangeEnvironment",
ENTRY
( R0 -> OS_RegisterBlock: register_block,
- R1 -> .Asm: call_back_handler
+ R1 = .Asm: call_back_handler
),
EXIT
( R0 -> OS_RegisterBlock: old_register_block,
- R1 -> .Asm: old_call_back_handler
+ R1 = .Asm: old_call_back_handler
) );
SWI OS_EnterOS = (NUMBER 0x16 "Sets the processor to SVC mode - cannot be
@@ -839,18 +839,18 @@
OS_ChangeEnvironment",
ENTRY
( R0 = .Ref OS_RegisterBlock: register_block,
- R1 -> .Asm: break_pt_handler
+ R1 = .Asm: break_pt_handler
),
EXIT
( R0 = .Ref OS_RegisterBlock: old_register_block,
- R1 -> .Asm: old_break_pt_handler
+ R1 = .Asm: old_break_pt_handler
) );
SWI OS_UnusedSWI =
( NUMBER 0x19 "Sets up the handler for unused SWI's - prefer
OS_ChangeEnvironment",
- ENTRY (R0 -> .Asm: unused_swi_handler),
- EXIT (R0! -> .Asm: old_unused_swi_handler)
+ ENTRY (R0 = .Asm: unused_swi_handler),
+ EXIT (R0! = .Asm: old_unused_swi_handler)
);
SWI UKSWIV = (NUMBER 0x34, ENTRY (R9 # &18 "Called when an unknown SWI
@@ -897,7 +897,7 @@
vector",
ENTRY
( R0 = .Int: vector,
- R1 -> .Asm: routine,
+ R1 = .Asm: routine,
R2 = .Ref .Data: handle //should be int, like other handles
)
);
@@ -907,7 +907,7 @@
vector",
ENTRY
( R0 = .Int: vector,
- R1 -> .Asm: routine,
+ R1 = .Asm: routine,
R2 = .Ref .Data: handle //should be int, like other handles
)
);
@@ -1311,7 +1311,7 @@
( NUMBER 0x3B "Calls a specified address after a delay",
ENTRY
( R0 = .Int: delay,
- R1 -> .Asm: code,
+ R1 = .Asm: code,
R2 = .Ref .Data: handle //should be int, like other handles
) );
@@ -1319,7 +1319,7 @@
( NUMBER 0x3C "Calls a specified address every time a delay elapses",
ENTRY
( R0 = .Int: delay,
- R1 -> .Asm: code,
+ R1 = .Asm: code,
R2 = .Ref .Data: handle //should be int, like other handles
) );
@@ -1327,7 +1327,7 @@
( NUMBER 0x3D "Removes a given call address and handle value from the
ticker event list",
ENTRY
- ( R0 -> .Asm: code,
+ ( R0 = .Asm: code,
R1 = .Ref .Data: handle //should be int, like other handles
) );
@@ -1412,12 +1412,12 @@
( NUMBER 0x40 "Installs a handler",
ENTRY
( R0 = OS_HandlerType: handler_type,
- R1 -> .Asm: handler,
+ R1 = .Asm: handler,
R2 = .Ref .Data: handle, //should be int, like other handles
R3 = .Ref .Data: buffer
),
EXIT
- ( R1! -> .Asm: old_handler,
+ ( R1! = .Asm: old_handler,
R2 = .Ref .Data: old_handle, //should be int, like other handles
R3 = .Ref .Data: old_buffer
) );
@@ -1427,13 +1427,13 @@
( NUMBER 0x34,
ENTRY
( R0 = OS_HandlerType: handler_type,
- R1 -> .Asm: handler,
+ R1 = .Asm: handler,
R2 = .Ref .Data: handle, //should be int, like other handles
R3 = .Ref .Data: buffer,
R9 # &1E "OS_ChangeEnvironment vector"
),
EXIT
- ( R1! -> .Asm: old_handler,
+ ( R1! = .Asm: old_handler,
R2 = .Ref .Data: old_handle, //should be int, like other handles
R3 = .Ref .Data: old_buffer
) );
@@ -1539,7 +1539,7 @@
vector",
ENTRY
( R0 = .Int: vector,
- R1 -> .Asm: routine,
+ R1 = .Asm: routine,
R2 = .Ref .Data: handle //should be int, like other handles
)
);
@@ -1600,7 +1600,7 @@
( NUMBER 0x4B "Claims a device vector",
ENTRY
( R0 = OS_DeviceType: device,
- R1 -> .Asm: driver,
+ R1 = .Asm: driver,
R2 = .Ref .Data: handle, //should be int, like other handles
R3 = .Ref .Int: status,
R4 = .Bits: mask
@@ -1611,7 +1611,7 @@
( NUMBER 0x4C "Releases a device vector",
ENTRY
( R0 = OS_DeviceType: device,
- R1 -> .Asm: driver,
+ R1 = .Asm: driver,
R2 = .Ref .Data: handle, //should be int, like other handles
R3 = .Ref .Int: status,
R4 = .Bits: mask
@@ -1635,7 +1635,7 @@
);
//Types of sort (pass in R2)
-TYPE OS_SortType = .Ref .Asm;
+TYPE OS_SortType = .Asm;
CONST
OS_SortCardinal = OS_SortType: 0,
OS_SortInteger = OS_SortType: 1,
@@ -1745,7 +1745,7 @@
SWI OS_AddCallBack =
( NUMBER 0x54 "Adds a transient callback to the list",
ENTRY
- ( R0 -> .Asm: call_back,
+ ( R0 = .Asm: call_back,
R1 = .Ref .Data: handle //should be int, like other handles
) );
@@ -1755,7 +1755,7 @@
( R0 = .Int: handler_type
),
EXIT
- ( R1! -> .Asm: handler,
+ ( R1! = .Asm: handler,
R2 = .Ref .Data: handle, //should be int, like other handles
R3 = .Ref .Data: buffer
) );
@@ -1848,7 +1848,7 @@
SWI OS_RemoveCallBack =
( NUMBER 0x5F "Removes a transient callback from the list",
ENTRY
- ( R0 -> .Asm: call_back,
+ ( R0 = .Asm: call_back,
R1 = .Ref .Data: handle //should be int, like other handles
) );
@@ -1888,7 +1888,7 @@
( NUMBER 0x62 "Claims a software interrupt",
ENTRY
( R0 = .Int: swi,
- R1 -> .Asm: routine,
+ R1 = .Asm: routine,
R2 = .Ref .Data: handle //should be int, like other handles
)
);
@@ -1897,7 +1897,7 @@
( NUMBER 0x63 "Release a software interrupt",
ENTRY
( R0 = .Int: swi,
- R1 -> .Asm: routine,
+ R1 = .Asm: routine,
R2 = .Ref .Data: handle //should be int, like other handles
)
);
@@ -2101,7 +2101,7 @@
R3 -> .Data: base_address,
R4 = OS_AreaFlags: flags,
R5 = .Int: size_limit,
- R6 -> .Asm: handler,
+ R6 = .Asm: handler,
R7 = .Ref Void: workspace,
R8 -> .String: description
),
@@ -2129,7 +2129,7 @@
R3 -> .Data: base_address,
R4 = OS_AreaFlags: flags,
R5 = .Int: size_limit,
- R6 -> .Asm: handler,
+ R6 = .Asm: handler,
R7 = .Ref Void: workspace,
R8 -> .String: description
) ),
@@ -2350,7 +2350,7 @@
R1 = OSMemory_ControllerFlags: controller
),
EXIT
- ( R1 -> .Asm: controller_addr
+ ( R1 = .Asm: controller_addr
) ),
OSMemory_FindContiguous =
( NUMBER 0x68,
@@ -2410,12 +2410,12 @@
OSClaimProcessorVector_Alloc =
(NUMBER 0x69, ENTRY (R0 # %100000000 "Claims a processor vector
- RISC O S 3.5+",
- R0 | .Bits: vector, R1 -> .Asm: routine),
- EXIT (R1! -> .Asm: old_routine)),
+ R0 | .Bits: vector, R1 = .Asm: routine),
+ EXIT (R1! = .Asm: old_routine)),
OSClaimProcessorVector_Free =
(NUMBER 0x69, ENTRY (R0 # 0 "Releases a processor vector - RISC
O S 3.5+",
- R0 | .Bits: vector, R2 -> .Asm: old_routine),
+ R0 | .Bits: vector, R2 = .Asm: old_routine),
EXIT (R1?));
SWI OS_Reset = (NUMBER 0x6A "Performs a hard reset - RISC O S 3.5+");
@@ -2443,7 +2443,7 @@
( NUMBER 0x6D,
ENTRY (R0 # 0 "Reports platform features - RISC O S 3.7+"),
EXIT (R0! = OS_PlatformFeatureFlags: flags,
- R1 -> .Asm: predisable_fn)
+ R1 = .Asm: predisable_fn)
);
@@ -2453,7 +2453,7 @@
OS_SynchroniseCodeAreas = //RO3.7+
( NUMBER 0x6E "Informs the O S that code has been newly generated or modified
in memory - RISC O S 3.7+",
- ENTRY (R0 = .Bits: flags, R1 -> .Asm: start, R2 -> .Asm: end)
+ ENTRY (R0 = .Bits: flags, R1 = .Asm: start, R2 = .Asm: end)
);
SWI OS_CallASWI = //RO3.7+ Not APCS-compliant
@@ -2619,11 +2619,11 @@
ENTRY
( R0 # 0 "Claims a software interrupt",
R1 = .Int: swi,
- R2 -> .Asm: routine,
+ R2 = .Asm: routine,
R3 = .Ref .Data: handle //should be int, like other handles
),
EXIT
- ( R2 -> .Asm: old_routine,
+ ( R2 = .Asm: old_routine,
R3 = .Ref .Data: old_handle
)
);
@@ -2633,7 +2633,7 @@
ENTRY
( R0 # 1 "Releases a software interrupt",
R1 = .Int: swi,
- R2 -> .Asm: routine,
+ R2 = .Asm: routine,
R3 = .Ref .Data: handle //should be int, like other handles
)
);
@@ -2675,7 +2675,7 @@
R9 = .Int: call
),
EXIT
- ( R0! = .Ref .Asm: routine,
+ ( R0! = .Asm: routine,
R1 = .Int: static_base
) );
Index: Source/InProgress/MIDI.swi
===================================================================
--- Source/InProgress/MIDI.swi (revision 293)
+++ Source/InProgress/MIDI.swi (working copy)
@@ -251,19 +251,19 @@
SWI MIDI_Interface = (NUMBER 0x404E4 "Gets addresses for more efficient
access to critical SWI's",
- exit (R0 = .Ref Void: workspace, R1 -> .Asm: swi_code));
+ exit (R0 = .Ref Void: workspace, R1 = .Asm: swi_code));
TYPE MIDI_DriverFlags = .Bits;
CONST etc;
TYPE MIDI_DriverBlock = .Struct (MIDI_DriverFlags: flags,
- .Ref .Asm: tx_vector_addr, .Ref .Asm: tx_irq_rdy_vector_addr,
- .Ref .Asm: rx_vector_addr, .Ref .Asm: clk_vector_addr,
- .Ref .Asm: feature_vector_addr, .Int: version,
+ .Asm: tx_vector_addr, .Asm: tx_irq_rdy_vector_addr,
+ .Asm: rx_vector_addr, .Asm: clk_vector_addr,
+ .Asm: feature_vector_addr, .Int: version,
[32] .Char: title);
-TYPE MIDI_CallTable = .Struct (.Ref .Asm: rx_addr,
- .Ref .Asm: tx_irq__addr, .Ref .Asm: clk_addr,
- .Ref .Asm: error_addr, .Int: no);
+TYPE MIDI_CallTable = .Struct (.Asm: rx_addr,
+ .Asm: tx_irq__addr, .Asm: clk_addr,
+ .Asm: error_addr, .Int: no);
SWI
MIDI_InstallDriver =
( NUMBER 0x404E5 "Installs or deinstalls a driver - see separate
Index: Source/InProgress/PCMCIA.swi
===================================================================
--- Source/InProgress/PCMCIA.swi (revision 293)
+++ Source/InProgress/PCMCIA.swi (working copy)
@@ -32,7 +32,7 @@
( NUMBER 0x47501,
ENTRY (R0 # 0 "Allows a P?C?M?C?I?A hardware driver to register
itself with the P?C?M?C?I?A Manager",
- R1 -> .Asm: handler,
+ R1 = .Asm: handler,
R2 = .Ref Void: workspace)
);
@@ -40,7 +40,7 @@
( NUMBER 0x47501,
ENTRY (R0 # 1 "Allows a P?C?M?C?I?A hardware driver to deregister
itself with the P?C?M?C?I?A Manager",
- R1 -> .Asm: handler,
+ R1 = .Asm: handler,
R2 = .Ref Void: workspace)
);
@@ -50,11 +50,11 @@
itself with the P?C?M?C?I?A Manager",
R1 -> .String: driver_id,
R2 = .Bits: version_flags,
- R3 -> .Asm: fn_code,
- R4 -> .Asm: read_code,
- R5 -> .Asm: write_code,
- R6 -> .Asm: erase_code,
- R7 -> .Asm: irq_code,
+ R3 = .Asm: fn_code,
+ R4 = .Asm: read_code,
+ R5 = .Asm: write_code,
+ R6 = .Asm: erase_code,
+ R7 = .Asm: irq_code,
R8 = .Ref Void: workspace)
);
@@ -62,7 +62,7 @@
( NUMBER 0x47501,
ENTRY (R0 # 3 "Allows a P C card driver to deregister
itself with the P?C?M?C?I?A Manager",
- R1 -> .Asm: handler,
+ R1 = .Asm: handler,
R2 = .Ref Void: workspace)
);
Index: Source/Computer/oslib/Free.swi
===================================================================
--- Source/Computer/oslib/Free.swi (revision 293)
+++ Source/Computer/oslib/Free.swi (working copy)
@@ -8,7 +8,7 @@
filing system",
ENTRY
( R0 = FileSwitch_FSNo: fs_no,
- R1 -> .Asm: fn,
+ R1 = .Asm: fn,
R2 = .Ref Void: workspace
) );
@@ -17,6 +17,6 @@
systems known by the Free module",
ENTRY
( R0 = FileSwitch_FSNo: fs_no,
- R1 -> .Asm: fn,
+ R1 = .Asm: fn,
R2 = .Ref Void: workspace
) )
Index: Source/Computer/oslib/CD.swi
===================================================================
--- Source/Computer/oslib/CD.swi (revision 293)
+++ Source/Computer/oslib/CD.swi (working copy)
@@ -492,14 +492,14 @@
( NUMBER &41260 "version 2.20+",
ENTRY
( R0 -> CD_RegisterBlock: info,
- R1 -> .Asm: driver_code,
+ R1 = .Asm: driver_code,
R2 = .Ref Void: driver_workspace
) ),
CD_Unregister =
( NUMBER &41261 "version 2.20+",
ENTRY
( R0 -> CD_RegisterBlock: info,
- R1 -> .Asm: driver_code
+ R1 = .Asm: driver_code
) ),
CD_ByteCopy =
( NUMBER &41262 "A fast memory copy routine - version 2.20+",
Index: Source/Computer/oslib/FileCore.swi
===================================================================
--- Source/Computer/oslib/FileCore.swi (revision 293)
+++ Source/Computer/oslib/FileCore.swi (working copy)
@@ -120,8 +120,8 @@
FileSwitch_FSNo: fs_no,
.Ref .Char: title,
.Ref .Char: boot_text,
- .Ref .Asm: disc_op,
- .Ref .Asm: misc_op
+ .Asm: disc_op,
+ .Asm: misc_op
);
CONST
@@ -224,9 +224,9 @@
),
EXIT
( R0 = .Ref Void: instance,
- R1 -> .Asm: floppy_done,
- R2 -> .Asm: hard_disc_done,
- R3 -> .Asm: release_fiq
+ R1 = .Asm: floppy_done,
+ R2 = .Asm: hard_disc_done,
+ R3 = .Asm: release_fiq
) );
SWI FileCore_Drives = (NUMBER 0x40542 "Returns information on a filing
Index: Source/Computer/oslib/SCSI.swi
===================================================================
--- Source/Computer/oslib/SCSI.swi (revision 293)
+++ Source/Computer/oslib/SCSI.swi (working copy)
@@ -163,7 +163,7 @@
R3 = .Ref .Data: start_addr,
R4 = .Int: length,
R5 = .Int: timeout,
- R6 -> .Asm: callback_code,
+ R6 = .Asm: callback_code,
R7 = .Ref Void: workspace,
R8 = .Int: access_key),
EXIT (R0 = .Int: op_id,
@@ -192,7 +192,7 @@
( NUMBER 0x403c7,
ENTRY (R0 # 0 "Claims exclusive use of a device",
R1 = .Int: device_id,
- R2 -> .Asm: release_code,
+ R2 = .Asm: release_code,
R3 = .Ref Void: workspace,
R8 = .Int: access_key)
);
@@ -203,7 +203,7 @@
device is already claimed, calls the release code for the
current claimant",
R1 = .Int: device_id,
- R2 -> .Asm: release_code,
+ R2 = .Asm: release_code,
R3 = .Ref Void: workspace,
R8 = .Int: access_key)
);
Index: Source/Computer/oslib/Econet.swi
===================================================================
--- Source/Computer/oslib/Econet.swi (revision 293)
+++ Source/Computer/oslib/Econet.swi (working copy)
@@ -60,7 +60,7 @@
Econet_ImmediateMachinePeek = Econet_ImmediateOp: 8,
Econet_ImmediateGetRegisters = Econet_ImmediateOp: 9;
-TYPE Econet_ImmediateOSProcedure = .Ref .Asm;
+TYPE Econet_ImmediateOSProcedure = .Asm;
CONST
//For Econet_ImmediateOSProcedureCall
Econet_OSCharFromNotify = Econet_ImmediateOSProcedure: 0,
Index: Source/Computer/oslib/ADFS.swi
===================================================================
--- Source/Computer/oslib/ADFS.swi (revision 293)
+++ Source/Computer/oslib/ADFS.swi (working copy)
@@ -136,8 +136,8 @@
R4 = .Bits: status_bits,
R5 = .Ref .Int: irq_location,
R6 = .Bits: irq_bits,
- R7 -> .Asm: read_code,
- R8 -> .Asm: write_code));
+ R7 = .Asm: read_code,
+ R8 = .Asm: write_code));
SWI ADFS_IDEUserOp = (NUMBER 0x4024B "Direct user interface for low-level
IDE commands",
Index: Source/Computer/oslib/ResourceFS.swi
===================================================================
--- Source/Computer/oslib/ResourceFS.swi (revision 293)
+++ Source/Computer/oslib/ResourceFS.swi (working copy)
@@ -52,4 +52,4 @@
killed")),
Service_ResourceFSStarting = (NUMBER 0x30, ENTRY (R1 # 0x60 "ResourceFS
module is reloaded or reinitialised",
- R2 -> .Asm: register_files, R3 = .Ref Void: workspace))
+ R2 = .Asm: register_files, R3 = .Ref Void: workspace))
Index: Source/Computer/oslib/DeviceFS.swi
===================================================================
--- Source/Computer/oslib/DeviceFS.swi (revision 293)
+++ Source/Computer/oslib/DeviceFS.swi (working copy)
@@ -42,7 +42,7 @@
ENTRY
( R0 = DeviceFS_RegisterFlags: flags,
R1 -> DeviceFS_DeviceList: devices,
- R2 -> .Asm: driver,
+ R2 = .Asm: driver,
R3 = .Int: handle,
R4 = .Ref Void: workspace,
R5 -> .String: validation,
Index: Source/Types/oslib/Types.h
===================================================================
--- Source/Types/oslib/Types.h (revision 293)
+++ Source/Types/oslib/Types.h (working copy)
@@ -21,12 +21,21 @@
Foundation, Inc, 675 Mass Ave, Cambridge, MA 02139, U S A.
*/
+#if defined NAMESPACE_OSLIB
+ namespace OSLib {
+#endif
+
/********************
* Type definitions *
********************/
typedef unsigned int bits;
typedef int osbool;
typedef unsigned char byte;
+/* 'asm_routine' is a pointer to an assembler routine which does not
+ necessary requires an APCS-32 binding. Typically such a routine is called
+ directly from one of the RISC OS modules using a non-uniform calling
+ convention. */
+typedef void (*asm_routine)(void);
/* for backward compatibility with non C++ and pre-C99 code
** we can typedef |bool| as |osbool|. Anyone who wants to provide
@@ -141,4 +150,8 @@
#define NOT_USED(x) {x = x;}
#define UNSET(x) {(void) &x;}
+#if defined NAMESPACE_OSLIB
+ }
#endif
+
+#endif
Index: Source/User/oslib/ImageFileRender.swi
===================================================================
--- Source/User/oslib/ImageFileRender.swi (revision 293)
+++ Source/User/oslib/ImageFileRender.swi (working copy)
@@ -97,12 +97,12 @@
ImageFileRender_Magic: magic,
.Ref .Char: name,
.Ref .Data: workspace,
- .Ref .Asm: start,
- .Ref .Asm: stop,
- .Ref .Asm: render,
- .Ref .Asm: bbox,
- .Ref .Asm: declare_fonts,
- .Ref .Asm: info
+ .Asm: start,
+ .Asm: stop,
+ .Asm: render,
+ .Asm: bbox,
+ .Asm: declare_fonts,
+ .Asm: info
);
TYPE
Index: Source/User/oslib/WimpExtend.swi
===================================================================
--- Source/User/oslib/WimpExtend.swi (revision 293)
+++ Source/User/oslib/WimpExtend.swi (working copy)
@@ -35,7 +35,7 @@
// WimpExtend_LocateWorkspace = ( NUMBER 0x400FB, //undocumented
// ENTRY (R0 # 1 "For internal use only; returns address of
// the primary block of workspace used by the Wimp"),
-// EXIT (R0! = .Ref .Asm: workspace)),
+// EXIT (R0! = .Asm: workspace)),
WimpExtend_GetParent = ( NUMBER 0x400FB,
ENTRY (R0 # 6 "Finds the window's parent
Index: Source/User/oslib/TaskManager.swi
===================================================================
--- Source/User/oslib/TaskManager.swi (revision 293)
+++ Source/User/oslib/TaskManager.swi (working copy)
@@ -87,5 +87,5 @@
( NUMBER 0x30,
ENTRY
( R1 # 0x42680 "Notify Task Manager of licence acknowledgements - RISC O S 4 only",
- R2 = .Ref .Asm: add_message
+ R2 = .Asm: add_message
) )
Index: Source/User/oslib/PDriver.swi
===================================================================
--- Source/User/oslib/PDriver.swi (revision 293)
+++ Source/User/oslib/PDriver.swi (working copy)
@@ -499,7 +499,7 @@
( NUMBER 0x80156 "Registers a printer driver with the PDriver sharer
module",
ENTRY
- ( R0 = .Int: reason,
+ ( R0 = .Asm: reason,
R1 = .Ref Void: workspace,
R2 = PDriver_Type: type
) );
@@ -570,7 +570,7 @@
R1 = .Int: pdumper_no,
R2 = .Int: dp_version_required,
R3 = .Ref Void: dumper_workspace,
- R4 -> .Asm: dumper_code,
+ R4 = .Asm: dumper_code,
R5 = .Bits: supported_calls,
R6 = .Bits: supported_strips
) ),
@@ -644,7 +644,7 @@
R1 = .Int: pdumper_no,
R2 = .Int: dp_version_required,
R3 = .Ref Void: dumper_workspace,
- R4 -> .Asm: dumper_code,
+ R4 = .Asm: dumper_code,
R5 = .Bits: supported_calls,
R6 = .Bits: supported_strips,
R8 = PDriver_Type: type
Index: Source/User/oslib/Filter.swi
===================================================================
--- Source/User/oslib/Filter.swi (revision 293)
+++ Source/User/oslib/Filter.swi (working copy)
@@ -12,7 +12,7 @@
( NUMBER 0x42640 "Adds a new pre-filter to the list of pre-filters",
ENTRY
( R0 -> .String: filter_name,
- R1 -> .Asm: code,
+ R1 = .Asm: code,
R2 = .Ref .Data: handle, //should be int, like other handles
R3 = Wimp_T: task
) );
@@ -21,7 +21,7 @@
( NUMBER 0x42641 "Adds a new post-filter to the list of post-filters",
ENTRY
( R0 -> .String: filter_name,
- R1 -> .Asm: code,
+ R1 = .Asm: code,
R2 = .Ref .Data: handle, //should be int, like other handles
R3 = Wimp_T: task,
R4 = Wimp_PollFlags: mask
@@ -31,7 +31,7 @@
( NUMBER 0x42642 "Removes a pre-filter from the list of pre-filters",
ENTRY
( R0 -> .String: filter_name,
- R1 -> .Asm: code,
+ R1 = .Asm: code,
R2 = .Ref .Data: handle, //should be int, like other handles
R3 = Wimp_T: task
) );
@@ -40,7 +40,7 @@
( NUMBER 0x42643 "Removes a post-filter from the list of post-filters",
ENTRY
( R0 -> .String: filter_name,
- R1 -> .Asm: code,
+ R1 = .Asm: code,
R2 = .Ref .Data: handle, //should be int, like other handles
R3 = Wimp_T: task,
R4 = Wimp_PollFlags: mask
@@ -51,7 +51,7 @@
get-rectangle filters",
ENTRY
( R0 -> .String: filter_name,
- R1 -> .Asm: code,
+ R1 = .Asm: code,
R2 = .Ref .Data: handle, //should be int, like other handles
R3 = Wimp_T: task
) );
@@ -61,7 +61,7 @@
get-rectangle filters",
ENTRY
( R0 -> .String: filter_name,
- R1 -> .Asm: code,
+ R1 = .Asm: code,
R2 = .Ref .Data: handle, //should be int, like other handles
R3 = Wimp_T: task
) );
@@ -71,7 +71,7 @@
rectangle-copy filters",
ENTRY
( R0 -> .String: filter_name,
- R1 -> .Asm: code,
+ R1 = .Asm: code,
R2 = .Ref .Data: handle //should be int, like other handles
) );
@@ -80,7 +80,7 @@
rectangle-copy filters",
ENTRY
( R0 -> .String: filter_name,
- R1 -> .Asm: code,
+ R1 = .Asm: code,
R2 = .Ref .Data: handle //should be int, like other handles
) );
@@ -89,7 +89,7 @@
post-rectangle filters",
ENTRY
( R0 -> .String: filter_name,
- R1 -> .Asm: code,
+ R1 = .Asm: code,
R2 = .Ref .Data: handle, //should be int, like other handles
R3 = Wimp_T: task
) );
@@ -99,7 +99,7 @@
post-rectangle filters",
ENTRY
( R0 -> .String: filter_name,
- R1 -> .Asm: code,
+ R1 = .Asm: code,
R2 = .Ref .Data: handle, //should be int, like other handles
R3 = Wimp_T: task
) );
@@ -109,7 +109,7 @@
post-icon filters - requires Wimp 3.86+",
ENTRY
( R0 -> .String: filter_name,
- R1 -> .Asm: code,
+ R1 = .Asm: code,
R2 = .Ref .Data: handle, //should be int, like other handles
R3 = Wimp_T: task
) );
@@ -119,7 +119,7 @@
post-icon filters - requires Wimp 3.86+",
ENTRY
( R0 -> .String: filter_name,
- R1 -> .Asm: code,
+ R1 = .Asm: code,
R2 = .Ref .Data: handle, //should be int, like other handles
R3 = Wimp_T: task
) );
Index: Source/User/oslib/ZapRedraw.swi
===================================================================
--- Source/User/oslib/ZapRedraw.swi (revision 293)
+++ Source/User/oslib/ZapRedraw.swi (working copy)
@@ -180,7 +180,7 @@
( NUMBER &48480 "Redraws a rectangle of characters on the screen",
ENTRY
( R1 -> ZapRedraw_Block: redraw_block,
- R2 -> .Asm: extension_fn,
+ R2 = .Asm: extension_fn,
R3 = .Ref Void: extension_handle
),
EXIT (R0?)
Index: Source/User/oslib/ColourPicker.swi
===================================================================
--- Source/User/oslib/ColourPicker.swi (revision 293)
+++ Source/User/oslib/ColourPicker.swi (working copy)
@@ -70,7 +70,7 @@
.Ref .String: description,
.Int: info_size,
OS_Coord: pane_size,
- [ColourPicker_EntryLimit] .Ref .Asm: entries
+ [ColourPicker_EntryLimit] .Asm: entries
);
CONST
@@ -323,6 +323,6 @@
( NUMBER 0x30,
ENTRY
( R1 # &93 "For internal use only",
- R2 -> .Asm: loaded_service,
+ R2 = .Asm: loaded_service,
R3 = .Ref Void: workspace
) )
Index: Source/User/oslib/Wimp.swi
===================================================================
--- Source/User/oslib/Wimp.swi (revision 293)
+++ Source/User/oslib/Wimp.swi (working copy)
@@ -691,9 +691,9 @@
OS_Box: initial,
OS_Box: bbox,
.Ref .Data: handle,
- .Ref .Asm: draw,
- .Ref .Asm: undraw,
- .Ref .Asm: redraw
+ .Asm: draw,
+ .Asm: undraw,
+ .Asm: redraw
);
TYPE Wimp_AutoScrollInfo =
@@ -701,13 +701,13 @@
( Wimp_W: w,
OS_Box: pause_zone_sizes,
.Int: pause_duration,
- .Ref .Asm: state_change,
+ .Asm: state_change,
.Ref .Data: handle
);
CONST
- Wimp_AutoScrollNoHandler = .Ref .Asm: 0,
- Wimp_AutoScrollDefaultHandler = .Ref .Asm: 1;
+ Wimp_AutoScrollNoHandler = .Asm: 0,
+ Wimp_AutoScrollDefaultHandler = .Asm: 1;
TYPE Wimp_Caret =
.Struct
@@ -2204,7 +2204,7 @@
deregister a filter with the Wimp",
ENTRY
( R0 = Wimp_FilterAction: type,
- R1 -> .Asm: filter_code,
+ R1 = .Asm: filter_code,
R2 = .Ref .Data: handle
),
EXIT (R0?)
Index: Tools/DefMod2/Manual.htm,faf
===================================================================
--- Tools/DefMod2/Manual.htm,faf (revision 293)
+++ Tools/DefMod2/Manual.htm,faf (working copy)
@@ -623,7 +627,7 @@
<tr><td><tt>Char</tt></td> <td><tt>char</tt></td></tr>
<tr><td><tt>Bits</tt></td> <td><tt>unsigned int</tt></td></tr>
<tr><td><tt>String</tt></td> <td><tt>char</tt></td></tr>
- <tr><td><tt>Asm</tt></td> <td><tt>void *</tt></td></tr>
+ <tr><td><tt>Asm</tt></td> <td><tt>asm_routine</tt></td></tr>
<tr><td><tt>Data</tt></td> <td><tt>byte</tt></td></tr>
<tr>
<td><tt>Ref </tt><i>type</i></td>
@@ -659,7 +663,7 @@
<tr>
<td><tt>-></tt> <i>type</i></td>
<td>becomes</td>
- <td><i>CVT(type)</i> <tt>*</tt> on input,
+ <td><i>CVT(type)</i> const <tt>*</tt> on input,
<i>CVT(type)</i> <tt>**</tt> on output</td>
</tr>
<tr>
Index: Tools/DefMod2/hdr.c
===================================================================
--- Tools/DefMod2/hdr.c (revision 294)
+++ Tools/DefMod2/hdr.c (working copy)
@@ -256,13 +256,13 @@
goto finish;
break;
+ case def_TYPE_ASM:
case def_TYPE_REF:
if ((rc = Emit_Decl1 (file, "Ptr", v, top_level, cs)) < 0)
goto finish;
break;
case def_TYPE_STRING:
- case def_TYPE_ASM:
case def_TYPE_DATA:
case def_TYPE_VOID:
if ((rc =
@@ -571,7 +571,7 @@
break;
case def_TYPE_ASM:
- if ((rc = fprintf (file, "code")) < 0)
+ if ((rc = fprintf (file, "pointer to code")) < 0)
goto finish;
break;
Index: Tools/DefMod2/cstrong.c
===================================================================
--- Tools/DefMod2/cstrong.c (revision 294)
+++ Tools/DefMod2/cstrong.c (working copy)
@@ -480,8 +480,8 @@
break;
case def_TYPE_ASM:
- if ((rc = fprintf (file, "void %s", v)) < 0)
- goto finish; /*v != NULL*/
+ if ((rc = fprintf (file, v == NULL? "asm_routine": "asm_routine %s", v)) < 0)
+ goto finish;
break;
case def_TYPE_DATA:
Index: Tools/DefMod2/defmod.y
===================================================================
--- Tools/DefMod2/defmod.y (revision 294)
+++ Tools/DefMod2/defmod.y (working copy)
@@ -358,7 +358,7 @@
{$$.tag = def_TYPE_STRING; $$.name = NULL;
$$.value = def_VALUE_VARIABLE; $$.description = NULL;} |
ASM
- {$$.tag = def_TYPE_ASM; $$.name = NULL; $$.value = def_VALUE_VARIABLE;
+ {$$.tag = def_TYPE_ASM; $$.name = NULL; $$.value = def_VALUE_REGISTER;
$$.description = NULL;} |
DATA
{$$.tag = def_TYPE_DATA; $$.name = NULL; $$.value = def_VALUE_VARIABLE;
Index: Tools/DefMod2/chelp.c
===================================================================
--- Tools/DefMod2/chelp.c (revision 294)
+++ Tools/DefMod2/chelp.c (working copy)
@@ -120,8 +120,8 @@
break;
case def_TYPE_ASM:
- if ((rc = fprintf (file, "void %s", v)) < 0)
- goto finish; /*v != NULL*/
+ if ((rc = fprintf (file, v == NULL? "asm_routine": "asm_routine %s", v)) < 0)
+ goto finish;
break;
case def_TYPE_DATA:
Index: Tools/DefMod2/cheader.c
===================================================================
--- Tools/DefMod2/cheader.c (revision 294)
+++ Tools/DefMod2/cheader.c (working copy)
@@ -37,10 +37,10 @@
static int strsplen
(
- char *s
+ const char *s
)
{
- char *p = s;
+ const char *p = s;
while (*p != '\0' && *p != ' ') p++;
@@ -165,8 +165,8 @@
break;
case def_TYPE_ASM:
- if ((rc = fprintf (file, "void %s", v)) < 0)
- goto finish; /*v != NULL*/
+ if ((rc = fprintf (file, v == NULL? "asm_routine": "asm_routine %s", v)) < 0)
+ goto finish;
break;
case def_TYPE_DATA:
Index: docs/ChangeLog
===================================================================
--- docs/ChangeLog (revision 293)
+++ docs/ChangeLog (working copy)
@@ -16,6 +16,12 @@
(20071119-1, John Tytgat / John-Mark Bell)
- Add support to Toolbox_ShowObject for showing an object as a
child window. (20071129-1, Christian Ludlam)
+ - .Asm defmod type is changed from 'void *' to 'asm_routine' with the
+ latter being defined as: "typedef void (*asm_routine)(void)". This
+ should now enable warning free compilations. In all .swi files the
+ "-> .Asm: xzy" parts are changed into "= .Asm: xyz" and
+ ".Ref .Asm: xyz" ones into ".Asm: xyz".
+ (xxx, John Tytgat)
* Bug Fixes:
- Macro.h/Macro.Hdr: the macro Bool didn't write its result to first
-------------- next part --------------
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/adfs.h /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/adfs.h
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/adfs.h 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/adfs.h 2008-02-09 16:56:10.000000000 +0100
@@ -753,15 +753,15 @@
bits status_bits,
int *irq_location,
bits irq_bits,
- void const *read_code,
- void const *write_code);
+ asm_routine read_code,
+ asm_routine write_code);
extern void adfs_set_ide_controller (byte *controller,
int *status_location,
bits status_bits,
int *irq_location,
bits irq_bits,
- void const *read_code,
- void const *write_code);
+ asm_routine read_code,
+ asm_routine write_code);
/* ------------------------------------------------------------------------
* Function: adfs_ide_user_op()
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/ADFS.Hdr /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/ADFS.Hdr
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/ADFS.Hdr 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/ADFS.Hdr 2008-02-09 16:56:10.000000000 +0100
@@ -218,8 +218,8 @@
@ R4 = status_bits (Bits)
@ R5 = irq_location (pointer to Int)
@ R6 = irq_bits (Bits)
- @ R7 -> read_code (code)
- @ R8 -> write_code (code)
+ @ R7 = read_code (pointer to code)
+ @ R8 = write_code (pointer to code)
.set XADFS_IDEUserOp,0x6024b
.set ADFS_IDEUserOp,0x4024b
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/buffer.h /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/buffer.h
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/buffer.h 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/buffer.h 2008-02-09 16:56:10.000000000 +0100
@@ -326,13 +326,13 @@
*/
extern os_error *xbuffer_link_device (buffer_b b,
- void const *wakeup_code,
- void const *owner_change_code,
+ asm_routine wakeup_code,
+ asm_routine owner_change_code,
int handle,
void *workspace);
extern void buffer_link_device (buffer_b b,
- void const *wakeup_code,
- void const *owner_change_code,
+ asm_routine wakeup_code,
+ asm_routine owner_change_code,
int handle,
void *workspace);
@@ -424,10 +424,10 @@
extern os_error *xbuffer_internal_info (buffer_b b,
buffer_internal_id *id,
- void **service_routine,
+ asm_routine *service_routine,
void **workspace);
extern buffer_internal_id buffer_internal_info (buffer_b b,
- void **service_routine,
+ asm_routine *service_routine,
void **workspace);
/* ------------------------------------------------------------------------
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/Buffer.Hdr /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/Buffer.Hdr
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/Buffer.Hdr 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/Buffer.Hdr 2008-02-09 16:56:10.000000000 +0100
@@ -130,8 +130,8 @@
.set Buffer_LinkDevice,0x42945
@Entry
@ R0 = b (Buffer_B)
- @ R1 -> wakeup_code (code)
- @ R2 -> owner_change_code (code)
+ @ R1 = wakeup_code (pointer to code)
+ @ R2 = owner_change_code (pointer to code)
@ R3 = handle (Int)
@ R4 = workspace (pointer to Void)
@@ -167,7 +167,7 @@
@ R0 = b (Buffer_B)
@Exit
@ R0 = id (Buffer_InternalId)
- @ R1 -> service_routine (code)
+ @ R1 = service_routine (pointer to code)
@ R2 = workspace (pointer to Void)
# define InsV 0x14
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/cd.h /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/cd.h
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/cd.h 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/cd.h 2008-02-09 16:56:10.000000000 +0100
@@ -1030,10 +1030,10 @@
*/
extern os_error *xcd_register (cd_register_block const *info,
- void const *driver_code,
+ asm_routine driver_code,
void *driver_workspace);
__swi (0x41260) void cd_register (cd_register_block const *info,
- void const *driver_code,
+ asm_routine driver_code,
void *driver_workspace);
/* ------------------------------------------------------------------------
@@ -1048,9 +1048,9 @@
*/
extern os_error *xcd_unregister (cd_register_block const *info,
- void const *driver_code);
+ asm_routine driver_code);
__swi (0x41261) void cd_unregister (cd_register_block const *info,
- void const *driver_code);
+ asm_routine driver_code);
/* ------------------------------------------------------------------------
* Function: cd_byte_copy()
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/CD.Hdr /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/CD.Hdr
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/CD.Hdr 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/CD.Hdr 2008-02-09 16:56:10.000000000 +0100
@@ -498,14 +498,14 @@
.set CD_Register,0x41260
@Entry
@ R0 -> info (CD_RegisterBlock)
- @ R1 -> driver_code (code)
+ @ R1 = driver_code (pointer to code)
@ R2 = driver_workspace (pointer to Void)
.set XCD_Unregister,0x61261
.set CD_Unregister,0x41261
@Entry
@ R0 -> info (CD_RegisterBlock)
- @ R1 -> driver_code (code)
+ @ R1 = driver_code (pointer to code)
.set XCD_ByteCopy,0x61262
.set CD_ByteCopy,0x41262
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/colourpicker.h /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/colourpicker.h
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/colourpicker.h 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/colourpicker.h 2008-02-09 16:56:10.000000000 +0100
@@ -186,7 +186,7 @@
char *description;
int info_size;
os_coord pane_size;
- void *entries [8];
+ asm_routine entries [8];
};
typedef bits colourpicker_colour_flags;
@@ -646,9 +646,9 @@
* Other notes: Calls SWI 0x30 with R1 = 0x93.
*/
-extern os_error *xservice_colour_picker_loaded (void const *loaded_service,
+extern os_error *xservice_colour_picker_loaded (asm_routine loaded_service,
void *workspace);
-extern void service_colour_picker_loaded (void const *loaded_service,
+extern void service_colour_picker_loaded (asm_routine loaded_service,
void *workspace);
#ifdef __cplusplus
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/ColourPicker.Hdr /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/ColourPicker.Hdr
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/ColourPicker.Hdr 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/ColourPicker.Hdr 2008-02-09 16:56:10.000000000 +0100
@@ -367,7 +367,7 @@
# define Service_ColourPickerLoaded 0x93
@Entry
@ R1 = &93
- @ R2 -> loaded_service (code)
+ @ R2 = loaded_service (pointer to code)
@ R3 = workspace (pointer to Void)
#endif
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/colourtrans.h /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/colourtrans.h
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/colourtrans.h 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/colourtrans.h 2008-02-09 16:56:10.000000000 +0100
@@ -1252,7 +1252,7 @@
osspriteop_trans_tab *trans_tab,
colourtrans_table_flags flags,
void *workspace,
- void const *transfer_fn,
+ asm_routine transfer_fn,
int *size);
extern int colourtrans_generate_table (os_mode source_mode,
os_palette const *source_palette,
@@ -1261,7 +1261,7 @@
osspriteop_trans_tab *trans_tab,
colourtrans_table_flags flags,
void *workspace,
- void const *transfer_fn);
+ asm_routine transfer_fn);
/* ------------------------------------------------------------------------
* Function: colourtrans_generate_table_for_sprite()
@@ -1291,7 +1291,7 @@
osspriteop_trans_tab *trans_tab,
colourtrans_table_flags flags,
void *workspace,
- void const *transfer_fn,
+ asm_routine transfer_fn,
int *size);
extern int colourtrans_generate_table_for_sprite (osspriteop_area const *source_area,
osspriteop_id source_id,
@@ -1300,7 +1300,7 @@
osspriteop_trans_tab *trans_tab,
colourtrans_table_flags flags,
void *workspace,
- void const *transfer_fn);
+ asm_routine transfer_fn);
/* ------------------------------------------------------------------------
* Function: service_calibration_changed()
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/ColourTrans.Hdr /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/ColourTrans.Hdr
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/ColourTrans.Hdr 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/ColourTrans.Hdr 2008-02-09 16:56:10.000000000 +0100
@@ -461,7 +461,7 @@
@ R4 = trans_tab (pointer to OSSpriteOp_TransTab)
@ R5 = flags (ColourTrans_TableFlags)
@ R6 = workspace (pointer to Void)
- @ R7 -> transfer_fn (code)
+ @ R7 = transfer_fn (pointer to code)
@Exit
@ R4 = size (Int)
@@ -475,7 +475,7 @@
@ R4 = trans_tab (pointer to OSSpriteOp_TransTab)
@ R5 = flags (ColourTrans_TableFlags)
@ R6 = workspace (pointer to Void)
- @ R7 -> transfer_fn (code)
+ @ R7 = transfer_fn (pointer to code)
@Exit
@ R4 = size (Int)
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/devicefs.h /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/devicefs.h
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/devicefs.h 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/devicefs.h 2008-02-09 16:56:10.000000000 +0100
@@ -221,7 +221,7 @@
extern os_error *xdevicefs_register (devicefs_register_flags flags,
devicefs_device_list const *devices,
- void const *driver,
+ asm_routine driver,
int handle,
void *workspace,
char const *validation,
@@ -230,7 +230,7 @@
devicefs_d *d);
extern devicefs_d devicefs_register (devicefs_register_flags flags,
devicefs_device_list const *devices,
- void const *driver,
+ asm_routine driver,
int handle,
void *workspace,
char const *validation,
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/DeviceFS.Hdr /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/DeviceFS.Hdr
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/DeviceFS.Hdr 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/DeviceFS.Hdr 2008-02-09 16:56:10.000000000 +0100
@@ -76,7 +76,7 @@
@Entry
@ R0 = flags (DeviceFS_RegisterFlags)
@ R1 -> devices (DeviceFS_DeviceList)
- @ R2 -> driver (code)
+ @ R2 = driver (pointer to code)
@ R3 = handle (Int)
@ R4 = workspace (pointer to Void)
@ R5 -> validation (String)
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/dma.h /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/dma.h
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/dma.h 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/dma.h 2008-02-09 16:56:10.000000000 +0100
@@ -84,11 +84,11 @@
* Type definitions *
********************/
struct dma_routines
- { void *enable;
- void *disable;
- void *start;
- void *completed;
- void *sync;
+ { asm_routine enable;
+ asm_routine disable;
+ asm_routine start;
+ asm_routine completed;
+ asm_routine sync;
};
struct dma_scatter
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/draganobject.h /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/draganobject.h
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/draganobject.h 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/draganobject.h 2008-02-09 16:56:10.000000000 +0100
@@ -50,11 +50,6 @@
#undef XDragAnObject_Stop
#define XDragAnObject_Stop 0x69C41
-/************************************
- * Structure and union declarations *
- ************************************/
-typedef struct draganobject_function_ *draganobject_function;
-
/************************
* Constant definitions *
************************/
@@ -98,12 +93,12 @@
*/
extern os_error *xdraganobject_start (bits flags,
- draganobject_function function,
+ asm_routine function,
os_register_block const *register_block,
os_box const *box,
os_box const *bbox);
extern void draganobject_start (bits flags,
- draganobject_function function,
+ asm_routine function,
os_register_block const *register_block,
os_box const *box,
os_box const *bbox);
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/DragAnObject.Hdr /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/DragAnObject.Hdr
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/DragAnObject.Hdr 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/DragAnObject.Hdr 2008-02-09 16:56:10.000000000 +0100
@@ -33,17 +33,12 @@
# define DragAnObject_CallFunction 0x10000
# define DragAnObject_FunctionSVC 0x20000
- at Symbols for structure offsets and sizes
-@ abstract type
-# define DragAnObject_Function 4
-
-
@Symbols for SWI's and SWI reason codes
.set XDragAnObject_Start,0x69c40
.set DragAnObject_Start,0x49c40
@Entry
@ R0 = flags (Bits)
- @ R1 = function (DragAnObject_Function)
+ @ R1 = function (pointer to code)
@ R2 -> register_block (OS_RegisterBlock)
@ R3 -> box (OS_Box)
@ R4 -> bbox (OS_Box)
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/econet.h /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/econet.h
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/econet.h 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/econet.h 2008-02-09 16:56:10.000000000 +0100
@@ -212,7 +212,7 @@
typedef int econet_immediate_op;
-typedef void *econet_immediate_os_procedure;
+typedef asm_routine econet_immediate_os_procedure;
typedef bits econet_protection;
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/filecore.h /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/filecore.h
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/filecore.h 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/filecore.h 2008-02-09 16:56:10.000000000 +0100
@@ -328,8 +328,8 @@
fileswitch_fs_no fs_no;
char *title;
char *boot_text;
- void *disc_op;
- void *misc_op;
+ asm_routine disc_op;
+ asm_routine misc_op;
};
typedef bits filecore_feature_flags;
@@ -747,9 +747,9 @@
int file_cache_buffer_count,
bits map_sizes,
void **instance,
- void **floppy_done,
- void **hard_disc_done,
- void **release_fiq);
+ asm_routine *floppy_done,
+ asm_routine *hard_disc_done,
+ asm_routine *release_fiq);
extern void filecore_create (filecore_descriptor const *descriptor,
byte const *module_base,
byte *word,
@@ -758,9 +758,9 @@
int file_cache_buffer_count,
bits map_sizes,
void **instance,
- void **floppy_done,
- void **hard_disc_done,
- void **release_fiq);
+ asm_routine *floppy_done,
+ asm_routine *hard_disc_done,
+ asm_routine *release_fiq);
/* ------------------------------------------------------------------------
* Function: filecore_drives()
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/FileCore.Hdr /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/FileCore.Hdr
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/FileCore.Hdr 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/FileCore.Hdr 2008-02-09 16:56:10.000000000 +0100
@@ -306,9 +306,9 @@
@ R6 = map_sizes (Bits)
@Exit
@ R0 = instance (pointer to Void)
- @ R1 -> floppy_done (code)
- @ R2 -> hard_disc_done (code)
- @ R3 -> release_fiq (code)
+ @ R1 = floppy_done (pointer to code)
+ @ R2 = hard_disc_done (pointer to code)
+ @ R3 = release_fiq (pointer to code)
.set XFileCore_Drives,0x60542
.set FileCore_Drives,0x40542
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/filter.h /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/filter.h
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/filter.h 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/filter.h 2008-02-09 16:56:10.000000000 +0100
@@ -126,11 +126,11 @@
*/
extern os_error *xfilter_register_pre_filter (char const *filter_name,
- void const *code,
+ asm_routine code,
byte *handle,
wimp_t task);
__swi (0x42640) void filter_register_pre_filter (char const *filter_name,
- void const *code,
+ asm_routine code,
byte *handle,
wimp_t task);
@@ -149,12 +149,12 @@
*/
extern os_error *xfilter_register_post_filter (char const *filter_name,
- void const *code,
+ asm_routine code,
byte *handle,
wimp_t task,
wimp_poll_flags mask);
extern void filter_register_post_filter (char const *filter_name,
- void const *code,
+ asm_routine code,
byte *handle,
wimp_t task,
wimp_poll_flags mask);
@@ -173,11 +173,11 @@
*/
extern os_error *xfilter_de_register_pre_filter (char const *filter_name,
- void const *code,
+ asm_routine code,
byte *handle,
wimp_t task);
__swi (0x42642) void filter_de_register_pre_filter (char const *filter_name,
- void const *code,
+ asm_routine code,
byte *handle,
wimp_t task);
@@ -196,12 +196,12 @@
*/
extern os_error *xfilter_de_register_post_filter (char const *filter_name,
- void const *code,
+ asm_routine code,
byte *handle,
wimp_t task,
wimp_poll_flags mask);
extern void filter_de_register_post_filter (char const *filter_name,
- void const *code,
+ asm_routine code,
byte *handle,
wimp_t task,
wimp_poll_flags mask);
@@ -221,11 +221,11 @@
*/
extern os_error *xfilter_register_rect_filter (char const *filter_name,
- void const *code,
+ asm_routine code,
byte *handle,
wimp_t task);
__swi (0x42644) void filter_register_rect_filter (char const *filter_name,
- void const *code,
+ asm_routine code,
byte *handle,
wimp_t task);
@@ -244,11 +244,11 @@
*/
extern os_error *xfilter_de_register_rect_filter (char const *filter_name,
- void const *code,
+ asm_routine code,
byte *handle,
wimp_t task);
__swi (0x42645) void filter_de_register_rect_filter (char const *filter_name,
- void const *code,
+ asm_routine code,
byte *handle,
wimp_t task);
@@ -266,10 +266,10 @@
*/
extern os_error *xfilter_register_copy_filter (char const *filter_name,
- void const *code,
+ asm_routine code,
byte *handle);
__swi (0x42646) void filter_register_copy_filter (char const *filter_name,
- void const *code,
+ asm_routine code,
byte *handle);
/* ------------------------------------------------------------------------
@@ -286,10 +286,10 @@
*/
extern os_error *xfilter_de_register_copy_filter (char const *filter_name,
- void const *code,
+ asm_routine code,
byte *handle);
__swi (0x42647) void filter_de_register_copy_filter (char const *filter_name,
- void const *code,
+ asm_routine code,
byte *handle);
/* ------------------------------------------------------------------------
@@ -307,11 +307,11 @@
*/
extern os_error *xfilter_register_post_rect_filter (char const *filter_name,
- void const *code,
+ asm_routine code,
byte *handle,
wimp_t task);
__swi (0x42648) void filter_register_post_rect_filter (char const *filter_name,
- void const *code,
+ asm_routine code,
byte *handle,
wimp_t task);
@@ -330,11 +330,11 @@
*/
extern os_error *xfilter_de_register_post_rect_filter (char const *filter_name,
- void const *code,
+ asm_routine code,
byte *handle,
wimp_t task);
__swi (0x42649) void filter_de_register_post_rect_filter (char const *filter_name,
- void const *code,
+ asm_routine code,
byte *handle,
wimp_t task);
@@ -353,11 +353,11 @@
*/
extern os_error *xfilter_register_post_icon_filter (char const *filter_name,
- void const *code,
+ asm_routine code,
byte *handle,
wimp_t task);
__swi (0x4264A) void filter_register_post_icon_filter (char const *filter_name,
- void const *code,
+ asm_routine code,
byte *handle,
wimp_t task);
@@ -376,11 +376,11 @@
*/
extern os_error *xfilter_de_register_post_icon_filter (char const *filter_name,
- void const *code,
+ asm_routine code,
byte *handle,
wimp_t task);
__swi (0x4264B) void filter_de_register_post_icon_filter (char const *filter_name,
- void const *code,
+ asm_routine code,
byte *handle,
wimp_t task);
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/Filter.Hdr /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/Filter.Hdr
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/Filter.Hdr 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/Filter.Hdr 2008-02-09 16:56:10.000000000 +0100
@@ -29,7 +29,7 @@
.set Filter_RegisterPreFilter,0x42640
@Entry
@ R0 -> filter_name (String)
- @ R1 -> code (code)
+ @ R1 = code (pointer to code)
@ R2 = handle (pointer to data)
@ R3 = task (Wimp_T)
@@ -37,7 +37,7 @@
.set Filter_RegisterPostFilter,0x42641
@Entry
@ R0 -> filter_name (String)
- @ R1 -> code (code)
+ @ R1 = code (pointer to code)
@ R2 = handle (pointer to data)
@ R3 = task (Wimp_T)
@ R4 = mask (Wimp_PollFlags)
@@ -46,7 +46,7 @@
.set Filter_DeRegisterPreFilter,0x42642
@Entry
@ R0 -> filter_name (String)
- @ R1 -> code (code)
+ @ R1 = code (pointer to code)
@ R2 = handle (pointer to data)
@ R3 = task (Wimp_T)
@@ -54,7 +54,7 @@
.set Filter_DeRegisterPostFilter,0x42643
@Entry
@ R0 -> filter_name (String)
- @ R1 -> code (code)
+ @ R1 = code (pointer to code)
@ R2 = handle (pointer to data)
@ R3 = task (Wimp_T)
@ R4 = mask (Wimp_PollFlags)
@@ -63,7 +63,7 @@
.set Filter_RegisterRectFilter,0x42644
@Entry
@ R0 -> filter_name (String)
- @ R1 -> code (code)
+ @ R1 = code (pointer to code)
@ R2 = handle (pointer to data)
@ R3 = task (Wimp_T)
@@ -71,7 +71,7 @@
.set Filter_DeRegisterRectFilter,0x42645
@Entry
@ R0 -> filter_name (String)
- @ R1 -> code (code)
+ @ R1 = code (pointer to code)
@ R2 = handle (pointer to data)
@ R3 = task (Wimp_T)
@@ -79,21 +79,21 @@
.set Filter_RegisterCopyFilter,0x42646
@Entry
@ R0 -> filter_name (String)
- @ R1 -> code (code)
+ @ R1 = code (pointer to code)
@ R2 = handle (pointer to data)
.set XFilter_DeRegisterCopyFilter,0x62647
.set Filter_DeRegisterCopyFilter,0x42647
@Entry
@ R0 -> filter_name (String)
- @ R1 -> code (code)
+ @ R1 = code (pointer to code)
@ R2 = handle (pointer to data)
.set XFilter_RegisterPostRectFilter,0x62648
.set Filter_RegisterPostRectFilter,0x42648
@Entry
@ R0 -> filter_name (String)
- @ R1 -> code (code)
+ @ R1 = code (pointer to code)
@ R2 = handle (pointer to data)
@ R3 = task (Wimp_T)
@@ -101,7 +101,7 @@
.set Filter_DeRegisterPostRectFilter,0x42649
@Entry
@ R0 -> filter_name (String)
- @ R1 -> code (code)
+ @ R1 = code (pointer to code)
@ R2 = handle (pointer to data)
@ R3 = task (Wimp_T)
@@ -109,7 +109,7 @@
.set Filter_RegisterPostIconFilter,0x4264a
@Entry
@ R0 -> filter_name (String)
- @ R1 -> code (code)
+ @ R1 = code (pointer to code)
@ R2 = handle (pointer to data)
@ R3 = task (Wimp_T)
@@ -117,7 +117,7 @@
.set Filter_DeRegisterPostIconFilter,0x4264b
@Entry
@ R0 -> filter_name (String)
- @ R1 -> code (code)
+ @ R1 = code (pointer to code)
@ R2 = handle (pointer to data)
@ R3 = task (Wimp_T)
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/free.h /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/free.h
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/free.h 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/free.h 2008-02-09 16:56:10.000000000 +0100
@@ -76,10 +76,10 @@
*/
extern os_error *xfree_register (fileswitch_fs_no fs_no,
- void const *fn,
+ asm_routine fn,
void *workspace);
__swi (0x444C0) void free_register (fileswitch_fs_no fs_no,
- void const *fn,
+ asm_routine fn,
void *workspace);
/* ------------------------------------------------------------------------
@@ -96,10 +96,10 @@
*/
extern os_error *xfree_de_register (fileswitch_fs_no fs_no,
- void const *fn,
+ asm_routine fn,
void *workspace);
__swi (0x444C1) void free_de_register (fileswitch_fs_no fs_no,
- void const *fn,
+ asm_routine fn,
void *workspace);
#ifdef __cplusplus
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/Free.Hdr /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/Free.Hdr
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/Free.Hdr 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/Free.Hdr 2008-02-09 16:56:10.000000000 +0100
@@ -25,14 +25,14 @@
.set Free_Register,0x444c0
@Entry
@ R0 = fs_no (FileSwitch_FSNo)
- @ R1 -> fn (code)
+ @ R1 = fn (pointer to code)
@ R2 = workspace (pointer to Void)
.set XFree_DeRegister,0x644c1
.set Free_DeRegister,0x444c1
@Entry
@ R0 = fs_no (FileSwitch_FSNo)
- @ R1 -> fn (code)
+ @ R1 = fn (pointer to code)
@ R2 = workspace (pointer to Void)
#endif
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/imagefilerender.h /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/imagefilerender.h
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/imagefilerender.h 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/imagefilerender.h 2008-02-09 16:56:10.000000000 +0100
@@ -145,12 +145,12 @@
imagefilerender_magic magic;
char *name;
byte *workspace;
- void *start;
- void *stop;
- void *render;
- void *bbox;
- void *declare_fonts;
- void *info;
+ asm_routine start;
+ asm_routine stop;
+ asm_routine render;
+ asm_routine bbox;
+ asm_routine declare_fonts;
+ asm_routine info;
};
struct imagefilerender_image_descriptor
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/os.h /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/os.h
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/os.h 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/os.h 2008-02-09 16:56:10.000000000 +0100
@@ -1290,7 +1290,7 @@
(offsetof (os_gs, s) + \
(N)*sizeof ((os_gs *) NULL)->s)
-typedef void *os_sort_type;
+typedef asm_routine os_sort_type;
typedef bits os_area_flags;
@@ -2651,22 +2651,22 @@
* Other notes: Calls SWI 0xF.
*/
-extern os_error *xos_control (void const *error_handler,
+extern os_error *xos_control (asm_routine error_handler,
os_error *error_buffer,
- void const *escape_handler,
- void const *event_handler,
- void **old_error_handler,
+ asm_routine escape_handler,
+ asm_routine event_handler,
+ asm_routine *old_error_handler,
os_error **old_error_buffer,
- void **old_escape_handler,
- void **old_event_handler);
-extern void os_control (void const *error_handler,
+ asm_routine *old_escape_handler,
+ asm_routine *old_event_handler);
+extern void os_control (asm_routine error_handler,
os_error *error_buffer,
- void const *escape_handler,
- void const *event_handler,
- void **old_error_handler,
+ asm_routine escape_handler,
+ asm_routine event_handler,
+ asm_routine *old_error_handler,
os_error **old_error_buffer,
- void **old_escape_handler,
- void **old_event_handler);
+ asm_routine *old_escape_handler,
+ asm_routine *old_event_handler);
/* ------------------------------------------------------------------------
* Function: os_get_env()
@@ -2726,30 +2726,30 @@
* Other notes: Calls SWI 0x12.
*/
-extern os_error *xos_set_env (void const *exit_handler,
+extern os_error *xos_set_env (asm_routine exit_handler,
byte *ram_limit,
- void const *undefined_instruction_handler,
- void const *prefetch_abort_handler,
- void const *data_abort_handler,
- void const *address_exception_handler,
- void **old_exit_handler,
+ asm_routine undefined_instruction_handler,
+ asm_routine prefetch_abort_handler,
+ asm_routine data_abort_handler,
+ asm_routine address_exception_handler,
+ asm_routine *old_exit_handler,
byte **old_ram_limit,
- void **old_undefined_instruction_handler,
- void **old_prefetch_abort_handler,
- void **old_data_abort_handler,
- void **old_address_exception_handler);
-extern void os_set_env (void const *exit_handler,
+ asm_routine *old_undefined_instruction_handler,
+ asm_routine *old_prefetch_abort_handler,
+ asm_routine *old_data_abort_handler,
+ asm_routine *old_address_exception_handler);
+extern void os_set_env (asm_routine exit_handler,
byte *ram_limit,
- void const *undefined_instruction_handler,
- void const *prefetch_abort_handler,
- void const *data_abort_handler,
- void const *address_exception_handler,
- void **old_exit_handler,
+ asm_routine undefined_instruction_handler,
+ asm_routine prefetch_abort_handler,
+ asm_routine data_abort_handler,
+ asm_routine address_exception_handler,
+ asm_routine *old_exit_handler,
byte **old_ram_limit,
- void **old_undefined_instruction_handler,
- void **old_prefetch_abort_handler,
- void **old_data_abort_handler,
- void **old_address_exception_handler);
+ asm_routine *old_undefined_instruction_handler,
+ asm_routine *old_prefetch_abort_handler,
+ asm_routine *old_data_abort_handler,
+ asm_routine *old_address_exception_handler);
/* ------------------------------------------------------------------------
* Function: os_int_on()
@@ -2789,13 +2789,13 @@
*/
extern os_error *xos_call_back (os_register_block const *register_block,
- void const *call_back_handler,
+ asm_routine call_back_handler,
os_register_block **old_register_block,
- void **old_call_back_handler);
+ asm_routine *old_call_back_handler);
extern void os_call_back (os_register_block const *register_block,
- void const *call_back_handler,
+ asm_routine call_back_handler,
os_register_block **old_register_block,
- void **old_call_back_handler);
+ asm_routine *old_call_back_handler);
/* ------------------------------------------------------------------------
* Function: os_break_pt()
@@ -2825,13 +2825,13 @@
*/
extern os_error *xos_break_ctrl (os_register_block *register_block,
- void const *break_pt_handler,
+ asm_routine break_pt_handler,
os_register_block **old_register_block,
- void **old_break_pt_handler);
+ asm_routine *old_break_pt_handler);
extern void os_break_ctrl (os_register_block *register_block,
- void const *break_pt_handler,
+ asm_routine break_pt_handler,
os_register_block **old_register_block,
- void **old_break_pt_handler);
+ asm_routine *old_break_pt_handler);
/* ------------------------------------------------------------------------
* Function: os_unused_swi()
@@ -2848,9 +2848,9 @@
* Other notes: Calls SWI 0x19.
*/
-extern os_error *xos_unused_swi (void const *unused_swi_handler,
- void **old_unused_swi_handler);
-__swi (0x19) void *os_unused_swi (void const *unused_swi_handler);
+extern os_error *xos_unused_swi (asm_routine unused_swi_handler,
+ asm_routine *old_unused_swi_handler);
+__swi (0x19) asm_routine os_unused_swi (asm_routine unused_swi_handler);
/* ------------------------------------------------------------------------
* Function: os_update_memc()
@@ -2941,10 +2941,10 @@
*/
extern os_error *xos_claim (int vector,
- void const *routine,
+ asm_routine routine,
byte *handle);
__swi (0x1F) void os_claim (int vector,
- void const *routine,
+ asm_routine routine,
byte *handle);
/* ------------------------------------------------------------------------
@@ -2961,10 +2961,10 @@
*/
extern os_error *xos_release (int vector,
- void const *routine,
+ asm_routine routine,
byte *handle);
__swi (0x20) void os_release (int vector,
- void const *routine,
+ asm_routine routine,
byte *handle);
/* ------------------------------------------------------------------------
@@ -3677,10 +3677,10 @@
*/
extern os_error *xos_call_after (int delay,
- void const *code,
+ asm_routine code,
byte *handle);
__swi (0x3B) void os_call_after (int delay,
- void const *code,
+ asm_routine code,
byte *handle);
/* ------------------------------------------------------------------------
@@ -3696,10 +3696,10 @@
*/
extern os_error *xos_call_every (int delay,
- void const *code,
+ asm_routine code,
byte *handle);
__swi (0x3C) void os_call_every (int delay,
- void const *code,
+ asm_routine code,
byte *handle);
/* ------------------------------------------------------------------------
@@ -3714,9 +3714,9 @@
* Other notes: Calls SWI 0x3D.
*/
-extern os_error *xos_remove_ticker_event (void const *code,
+extern os_error *xos_remove_ticker_event (asm_routine code,
byte *handle);
-__swi (0x3D) void os_remove_ticker_event (void const *code,
+__swi (0x3D) void os_remove_ticker_event (asm_routine code,
byte *handle);
/* ------------------------------------------------------------------------
@@ -3856,14 +3856,14 @@
*/
extern os_error *xos_change_environment (os_handler_type handler_type,
- void const *handler,
+ asm_routine handler,
byte *handle,
byte *buffer,
- void **old_handler,
+ asm_routine *old_handler,
byte **old_handle,
byte **old_buffer);
-extern void *os_change_environment (os_handler_type handler_type,
- void const *handler,
+extern asm_routine os_change_environment (os_handler_type handler_type,
+ asm_routine handler,
byte *handle,
byte *buffer,
byte **old_handle,
@@ -3889,14 +3889,14 @@
*/
extern os_error *xchangeenvironmentv (os_handler_type handler_type,
- void const *handler,
+ asm_routine handler,
byte *handle,
byte *buffer,
- void **old_handler,
+ asm_routine *old_handler,
byte **old_handle,
byte **old_buffer);
-extern void *changeenvironmentv (os_handler_type handler_type,
- void const *handler,
+extern asm_routine changeenvironmentv (os_handler_type handler_type,
+ asm_routine handler,
byte *handle,
byte *buffer,
byte **old_handle,
@@ -4100,10 +4100,10 @@
*/
extern os_error *xos_add_to_vector (int vector,
- void const *routine,
+ asm_routine routine,
byte *handle);
__swi (0x47) void os_add_to_vector (int vector,
- void const *routine,
+ asm_routine routine,
byte *handle);
/* ------------------------------------------------------------------------
@@ -4181,12 +4181,12 @@
*/
extern os_error *xos_claim_device_vector (os_device_type device,
- void const *driver,
+ asm_routine driver,
byte *handle,
int *status,
bits mask);
extern void os_claim_device_vector (os_device_type device,
- void const *driver,
+ asm_routine driver,
byte *handle,
int *status,
bits mask);
@@ -4206,12 +4206,12 @@
*/
extern os_error *xos_release_device_vector (os_device_type device,
- void const *driver,
+ asm_routine driver,
byte *handle,
int *status,
bits mask);
extern void os_release_device_vector (os_device_type device,
- void const *driver,
+ asm_routine driver,
byte *handle,
int *status,
bits mask);
@@ -4392,9 +4392,9 @@
* Other notes: Calls SWI 0x54.
*/
-extern os_error *xos_add_call_back (void const *call_back,
+extern os_error *xos_add_call_back (asm_routine call_back,
byte *handle);
-__swi (0x54) void os_add_call_back (void const *call_back,
+__swi (0x54) void os_add_call_back (asm_routine call_back,
byte *handle);
/* ------------------------------------------------------------------------
@@ -4414,10 +4414,10 @@
*/
extern os_error *xos_read_default_handler (int handler_type,
- void **handler,
+ asm_routine *handler,
byte **handle,
byte **buffer);
-extern void *os_read_default_handler (int handler_type,
+extern asm_routine os_read_default_handler (int handler_type,
byte **handle,
byte **buffer);
@@ -4599,9 +4599,9 @@
* Other notes: Calls SWI 0x5F.
*/
-extern os_error *xos_remove_call_back (void const *call_back,
+extern os_error *xos_remove_call_back (asm_routine call_back,
byte *handle);
-__swi (0x5F) void os_remove_call_back (void const *call_back,
+__swi (0x5F) void os_remove_call_back (asm_routine call_back,
byte *handle);
/* ------------------------------------------------------------------------
@@ -4672,10 +4672,10 @@
*/
extern os_error *xos_claim_swi (int swi,
- void const *routine,
+ asm_routine routine,
byte *handle);
__swi (0x62) void os_claim_swi (int swi,
- void const *routine,
+ asm_routine routine,
byte *handle);
/* ------------------------------------------------------------------------
@@ -4691,10 +4691,10 @@
*/
extern os_error *xos_release_swi (int swi,
- void const *routine,
+ asm_routine routine,
byte *handle);
__swi (0x63) void os_release_swi (int swi,
- void const *routine,
+ asm_routine routine,
byte *handle);
/* ------------------------------------------------------------------------
@@ -4962,7 +4962,7 @@
byte const *base_address,
os_area_flags flags,
int size_limit,
- void const *handler,
+ asm_routine handler,
void *workspace,
char const *description,
os_dynamic_area_no *area_out,
@@ -4973,7 +4973,7 @@
byte const *base_address,
os_area_flags flags,
int size_limit,
- void const *handler,
+ asm_routine handler,
void *workspace,
char const *description,
byte **base_address_out,
@@ -5015,7 +5015,7 @@
byte **base_address,
os_area_flags *flags,
int *size_limit,
- void **handler,
+ asm_routine *handler,
void **workspace,
char **description);
extern void osdynamicarea_read (os_dynamic_area_no area,
@@ -5023,7 +5023,7 @@
byte **base_address,
os_area_flags *flags,
int *size_limit,
- void **handler,
+ asm_routine *handler,
void **workspace,
char **description);
@@ -5343,9 +5343,9 @@
*/
extern os_error *xosmemory_read_controller (osmemory_controller_flags controller,
- void **controller_addr);
+ asm_routine *controller_addr);
extern void osmemory_read_controller (osmemory_controller_flags controller,
- void **controller_addr);
+ asm_routine *controller_addr);
/* ------------------------------------------------------------------------
* Function: osmemory_find_contiguous()
@@ -5468,10 +5468,10 @@
*/
extern os_error *xosclaimprocessorvector_alloc (bits vector,
- void const *routine,
- void **old_routine);
-extern void *osclaimprocessorvector_alloc (bits vector,
- void const *routine);
+ asm_routine routine,
+ asm_routine *old_routine);
+extern asm_routine osclaimprocessorvector_alloc (bits vector,
+ asm_routine routine);
/* ------------------------------------------------------------------------
* Function: osclaimprocessorvector_free()
@@ -5485,9 +5485,9 @@
*/
extern os_error *xosclaimprocessorvector_free (bits vector,
- void const *old_routine);
+ asm_routine old_routine);
extern void osclaimprocessorvector_free (bits vector,
- void const *old_routine);
+ asm_routine old_routine);
/* ------------------------------------------------------------------------
* Function: os_reset()
@@ -5536,8 +5536,8 @@
*/
extern os_error *xosplatformfeatures_get_features (os_platform_feature_flags *flags,
- void **predisable_fn);
-extern os_platform_feature_flags osplatformfeatures_get_features (void **predisable_fn);
+ asm_routine *predisable_fn);
+extern os_platform_feature_flags osplatformfeatures_get_features (asm_routine *predisable_fn);
/* ------------------------------------------------------------------------
* Function: os_synchronise_code_areas()
@@ -5553,11 +5553,11 @@
*/
extern os_error *xos_synchronise_code_areas (bits flags,
- void const *start,
- void const *end);
+ asm_routine start,
+ asm_routine end);
__swi (0x6E) void os_synchronise_code_areas (bits flags,
- void const *start,
- void const *end);
+ asm_routine start,
+ asm_routine end);
/* ------------------------------------------------------------------------
* Function: osambcontrol_create()
@@ -5734,14 +5734,14 @@
*/
extern os_error *xosclaimosswi_claim (int swi,
- void const *routine,
+ asm_routine routine,
byte *handle,
- void **old_routine,
+ asm_routine *old_routine,
byte **old_handle);
extern void osclaimosswi_claim (int swi,
- void const *routine,
+ asm_routine routine,
byte *handle,
- void **old_routine,
+ asm_routine *old_routine,
byte **old_handle);
/* ------------------------------------------------------------------------
@@ -5757,10 +5757,10 @@
*/
extern os_error *xosclaimosswi_release (int swi,
- void const *routine,
+ asm_routine routine,
byte *handle);
extern void osclaimosswi_release (int swi,
- void const *routine,
+ asm_routine routine,
byte *handle);
/* ------------------------------------------------------------------------
@@ -5834,9 +5834,9 @@
extern os_error *xos_hardware_find_hal_routine (os_hardware_flags flags,
int call,
- void **routine,
+ asm_routine *routine,
int *static_base);
-extern void *os_hardware_find_hal_routine (os_hardware_flags flags,
+extern asm_routine os_hardware_find_hal_routine (os_hardware_flags flags,
int call,
int *static_base);
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/OS.Hdr /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/OS.Hdr
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/OS.Hdr 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/OS.Hdr 2008-02-09 16:56:10.000000000 +0100
@@ -1278,15 +1278,15 @@
.set XOS_Control,0x2000f
.set OS_Control,0xf
@Entry
- @ R0 -> error_handler (code)
+ @ R0 = error_handler (pointer to code)
@ R1 = error_buffer (pointer to OS_Error)
- @ R2 -> escape_handler (code)
- @ R3 -> event_handler (code)
+ @ R2 = escape_handler (pointer to code)
+ @ R3 = event_handler (pointer to code)
@Exit
- @ R0 -> old_error_handler (code)
+ @ R0 = old_error_handler (pointer to code)
@ R1 = old_error_buffer (pointer to OS_Error)
- @ R2 -> old_escape_handler (code)
- @ R3 -> old_event_handler (code)
+ @ R2 = old_escape_handler (pointer to code)
+ @ R3 = old_event_handler (pointer to code)
.set XOS_GetEnv,0x20010
.set OS_GetEnv,0x10
@@ -1305,19 +1305,19 @@
.set XOS_SetEnv,0x20012
.set OS_SetEnv,0x12
@Entry
- @ R0 -> exit_handler (code)
+ @ R0 = exit_handler (pointer to code)
@ R1 = ram_limit (pointer to data)
- @ R4 -> undefined_instruction_handler (code)
- @ R5 -> prefetch_abort_handler (code)
- @ R6 -> data_abort_handler (code)
- @ R7 -> address_exception_handler (code)
+ @ R4 = undefined_instruction_handler (pointer to code)
+ @ R5 = prefetch_abort_handler (pointer to code)
+ @ R6 = data_abort_handler (pointer to code)
+ @ R7 = address_exception_handler (pointer to code)
@Exit
- @ R0 -> old_exit_handler (code)
+ @ R0 = old_exit_handler (pointer to code)
@ R1 = old_ram_limit (pointer to data)
- @ R4 -> old_undefined_instruction_handler (code)
- @ R5 -> old_prefetch_abort_handler (code)
- @ R6 -> old_data_abort_handler (code)
- @ R7 -> old_address_exception_handler (code)
+ @ R4 = old_undefined_instruction_handler (pointer to code)
+ @ R5 = old_prefetch_abort_handler (pointer to code)
+ @ R6 = old_data_abort_handler (pointer to code)
+ @ R7 = old_address_exception_handler (pointer to code)
.set XOS_IntOn,0x20013
.set OS_IntOn,0x13
@@ -1331,10 +1331,10 @@
.set OS_CallBack,0x15
@Entry
@ R0 -> register_block (OS_RegisterBlock)
- @ R1 -> call_back_handler (code)
+ @ R1 = call_back_handler (pointer to code)
@Exit
@ R0 -> old_register_block (OS_RegisterBlock)
- @ R1 -> old_call_back_handler (code)
+ @ R1 = old_call_back_handler (pointer to code)
.set XOS_EnterOS,0x20016
.set OS_EnterOS,0x16
@@ -1349,17 +1349,17 @@
.set OS_BreakCtrl,0x18
@Entry
@ R0 = register_block (pointer to OS_RegisterBlock)
- @ R1 -> break_pt_handler (code)
+ @ R1 = break_pt_handler (pointer to code)
@Exit
@ R0 = old_register_block (pointer to OS_RegisterBlock)
- @ R1 -> old_break_pt_handler (code)
+ @ R1 = old_break_pt_handler (pointer to code)
.set XOS_UnusedSWI,0x20019
.set OS_UnusedSWI,0x19
@Entry
- @ R0 -> unused_swi_handler (code)
+ @ R0 = unused_swi_handler (pointer to code)
@Exit
- @ R0 -> old_unused_swi_handler (code)
+ @ R0 = old_unused_swi_handler (pointer to code)
# define UKSWIV 0x18
@@ -1396,14 +1396,14 @@
.set OS_Claim,0x1f
@Entry
@ R0 = vector (Int)
- @ R1 -> routine (code)
+ @ R1 = routine (pointer to code)
@ R2 = handle (pointer to data)
.set XOS_Release,0x20020
.set OS_Release,0x20
@Entry
@ R0 = vector (Int)
- @ R1 -> routine (code)
+ @ R1 = routine (pointer to code)
@ R2 = handle (pointer to data)
.set XOS_ReadUnsigned,0x20021
@@ -1694,20 +1694,20 @@
.set OS_CallAfter,0x3b
@Entry
@ R0 = delay (Int)
- @ R1 -> code (code)
+ @ R1 = code (pointer to code)
@ R2 = handle (pointer to data)
.set XOS_CallEvery,0x2003c
.set OS_CallEvery,0x3c
@Entry
@ R0 = delay (Int)
- @ R1 -> code (code)
+ @ R1 = code (pointer to code)
@ R2 = handle (pointer to data)
.set XOS_RemoveTickerEvent,0x2003d
.set OS_RemoveTickerEvent,0x3d
@Entry
- @ R0 -> code (code)
+ @ R0 = code (pointer to code)
@ R1 = handle (pointer to data)
# define TickerV 0x1c
@@ -1764,23 +1764,23 @@
.set OS_ChangeEnvironment,0x40
@Entry
@ R0 = handler_type (OS_HandlerType)
- @ R1 -> handler (code)
+ @ R1 = handler (pointer to code)
@ R2 = handle (pointer to data)
@ R3 = buffer (pointer to data)
@Exit
- @ R1 -> old_handler (code)
+ @ R1 = old_handler (pointer to code)
@ R2 = old_handle (pointer to data)
@ R3 = old_buffer (pointer to data)
# define ChangeEnvironmentV 0x1e
@Entry
@ R0 = handler_type (OS_HandlerType)
- @ R1 -> handler (code)
+ @ R1 = handler (pointer to code)
@ R2 = handle (pointer to data)
@ R3 = buffer (pointer to data)
@ R9 = &1E
@Exit
- @ R1 -> old_handler (code)
+ @ R1 = old_handler (pointer to code)
@ R2 = old_handle (pointer to data)
@ R3 = old_buffer (pointer to data)
@@ -1856,7 +1856,7 @@
.set OS_AddToVector,0x47
@Entry
@ R0 = vector (Int)
- @ R1 -> routine (code)
+ @ R1 = routine (pointer to code)
@ R2 = handle (pointer to data)
.set XOS_WriteEnv,0x20048
@@ -1885,7 +1885,7 @@
.set OS_ClaimDeviceVector,0x4b
@Entry
@ R0 = device (OS_DeviceType)
- @ R1 -> driver (code)
+ @ R1 = driver (pointer to code)
@ R2 = handle (pointer to data)
@ R3 = status (pointer to Int)
@ R4 = mask (Bits)
@@ -1894,7 +1894,7 @@
.set OS_ReleaseDeviceVector,0x4c
@Entry
@ R0 = device (OS_DeviceType)
- @ R1 -> driver (code)
+ @ R1 = driver (pointer to code)
@ R2 = handle (pointer to data)
@ R3 = status (pointer to Int)
@ R4 = mask (Bits)
@@ -1962,7 +1962,7 @@
.set XOS_AddCallBack,0x20054
.set OS_AddCallBack,0x54
@Entry
- @ R0 -> call_back (code)
+ @ R0 = call_back (pointer to code)
@ R1 = handle (pointer to data)
.set XOS_ReadDefaultHandler,0x20055
@@ -1970,7 +1970,7 @@
@Entry
@ R0 = handler_type (Int)
@Exit
- @ R1 -> handler (code)
+ @ R1 = handler (pointer to code)
@ R2 = handle (pointer to data)
@ R3 = buffer (pointer to data)
@@ -2038,7 +2038,7 @@
.set XOS_RemoveCallBack,0x2005f
.set OS_RemoveCallBack,0x5f
@Entry
- @ R0 -> call_back (code)
+ @ R0 = call_back (pointer to code)
@ R1 = handle (pointer to data)
.set XOS_FindMemMapEntries,0x20060
@@ -2065,14 +2065,14 @@
.set OS_ClaimSWI,0x62
@Entry
@ R0 = swi (Int)
- @ R1 -> routine (code)
+ @ R1 = routine (pointer to code)
@ R2 = handle (pointer to data)
.set XOS_ReleaseSWI,0x20063
.set OS_ReleaseSWI,0x63
@Entry
@ R0 = swi (Int)
- @ R1 -> routine (code)
+ @ R1 = routine (pointer to code)
@ R2 = handle (pointer to data)
.set XOS_Pointer,0x20064
@@ -2189,7 +2189,7 @@
@ R3 -> base_address (data)
@ R4 = flags (OS_AreaFlags)
@ R5 = size_limit (Int)
- @ R6 -> handler (code)
+ @ R6 = handler (pointer to code)
@ R7 = workspace (pointer to Void)
@ R8 -> description (String)
@Exit
@@ -2211,7 +2211,7 @@
@ R3 -> base_address (data)
@ R4 = flags (OS_AreaFlags)
@ R5 = size_limit (Int)
- @ R6 -> handler (code)
+ @ R6 = handler (pointer to code)
@ R7 = workspace (pointer to Void)
@ R8 -> description (String)
@@ -2332,7 +2332,7 @@
@ R0 = &9
@ R1 = controller (OSMemory_ControllerFlags)
@Exit
- @ R1 -> controller_addr (code)
+ @ R1 = controller_addr (pointer to code)
# define OSMemory_FindContiguous 0xc
@Entry
@@ -2376,14 +2376,14 @@
# define OSClaimProcessorVector_Alloc 0x100
@Entry
@ R0 = &100 :OR: vector (Bits)
- @ R1 -> routine (code)
+ @ R1 = routine (pointer to code)
@Exit
- @ R1 -> old_routine (code)
+ @ R1 = old_routine (pointer to code)
# define OSClaimProcessorVector_Free 0x0
@Entry
@ R0 = &0 :OR: vector (Bits)
- @ R2 -> old_routine (code)
+ @ R2 = old_routine (pointer to code)
@Exit
@ R1 corrupted
@@ -2408,14 +2408,14 @@
@ R0 = &0
@Exit
@ R0 = flags (OS_PlatformFeatureFlags)
- @ R1 -> predisable_fn (code)
+ @ R1 = predisable_fn (pointer to code)
.set XOS_SynchroniseCodeAreas,0x2006e
.set OS_SynchroniseCodeAreas,0x6e
@Entry
@ R0 = flags (Bits)
- @ R1 -> start (code)
- @ R2 -> end (code)
+ @ R1 = start (pointer to code)
+ @ R2 = end (pointer to code)
.set XOS_CallASWI,0x2006f
.set OS_CallASWI,0x6f
@@ -2490,17 +2490,17 @@
@Entry
@ R0 = &0
@ R1 = swi (Int)
- @ R2 -> routine (code)
+ @ R2 = routine (pointer to code)
@ R3 = handle (pointer to data)
@Exit
- @ R2 -> old_routine (code)
+ @ R2 = old_routine (pointer to code)
@ R3 = old_handle (pointer to data)
# define OSClaimOSSWI_Release 0x1
@Entry
@ R0 = &1
@ R1 = swi (Int)
- @ R2 -> routine (code)
+ @ R2 = routine (pointer to code)
@ R3 = handle (pointer to data)
.set XOS_Hardware,0x2007a
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/osspriteop.h /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/osspriteop.h
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/osspriteop.h 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/osspriteop.h 2008-02-09 16:56:10.000000000 +0100
@@ -200,7 +200,7 @@
struct osspriteop_colour_mapping
{ byte *workspace;
- void *function;
+ asm_routine function;
};
struct osspriteop_area
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/pdriver.h /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/pdriver.h
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/pdriver.h 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/pdriver.h 2008-02-09 16:56:10.000000000 +0100
@@ -1122,10 +1122,10 @@
* Other notes: Calls SWI 0x80156.
*/
-extern os_error *xpdriver_declare_driver (int reason,
+extern os_error *xpdriver_declare_driver (asm_routine reason,
void *workspace,
pdriver_type type);
-__swi (0x80156) void pdriver_declare_driver (int reason,
+__swi (0x80156) void pdriver_declare_driver (asm_routine reason,
void *workspace,
pdriver_type type);
@@ -1269,13 +1269,13 @@
extern os_error *xpdrivermiscop_register_dumper (int pdumper_no,
int dp_version_required,
void *dumper_workspace,
- void const *dumper_code,
+ asm_routine dumper_code,
bits supported_calls,
bits supported_strips);
extern void pdrivermiscop_register_dumper (int pdumper_no,
int dp_version_required,
void *dumper_workspace,
- void const *dumper_code,
+ asm_routine dumper_code,
bits supported_calls,
bits supported_strips);
@@ -1410,14 +1410,14 @@
extern os_error *xpdrivermiscopfordriver_register_dumper (int pdumper_no,
int dp_version_required,
void *dumper_workspace,
- void const *dumper_code,
+ asm_routine dumper_code,
bits supported_calls,
bits supported_strips,
pdriver_type type);
extern void pdrivermiscopfordriver_register_dumper (int pdumper_no,
int dp_version_required,
void *dumper_workspace,
- void const *dumper_code,
+ asm_routine dumper_code,
bits supported_calls,
bits supported_strips,
pdriver_type type);
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/PDriver.Hdr /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/PDriver.Hdr
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/PDriver.Hdr 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/PDriver.Hdr 2008-02-09 16:56:10.000000000 +0100
@@ -477,7 +477,7 @@
.set XPDriver_DeclareDriver,0xa0156
.set PDriver_DeclareDriver,0x80156
@Entry
- @ R0 = reason (Int)
+ @ R0 = reason (pointer to code)
@ R1 = workspace (pointer to Void)
@ R2 = type (PDriver_Type)
@@ -535,7 +535,7 @@
@ R1 = pdumper_no (Int)
@ R2 = dp_version_required (Int)
@ R3 = dumper_workspace (pointer to Void)
- @ R4 -> dumper_code (code)
+ @ R4 = dumper_code (pointer to code)
@ R5 = supported_calls (Bits)
@ R6 = supported_strips (Bits)
@@ -588,7 +588,7 @@
@ R1 = pdumper_no (Int)
@ R2 = dp_version_required (Int)
@ R3 = dumper_workspace (pointer to Void)
- @ R4 -> dumper_code (code)
+ @ R4 = dumper_code (pointer to code)
@ R5 = supported_calls (Bits)
@ R6 = supported_strips (Bits)
@ R8 = type (PDriver_Type)
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/podule.h /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/podule.h
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/podule.h 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/podule.h 2008-02-09 16:56:10.000000000 +0100
@@ -626,30 +626,30 @@
bits status_bits,
int *irq_location,
bits irq_bits,
- void const *read_code,
- void const *write_code,
+ asm_routine read_code,
+ asm_routine write_code,
osbool *unclaimed,
byte **controller_out,
int **status_location_out,
bits *status_bits_out,
int **irq_location_out,
bits *irq_bits_out,
- void **read_code_out,
- void **write_code_out);
+ asm_routine *read_code_out,
+ asm_routine *write_code_out);
extern osbool service_adfs_podule_ide (byte *controller,
int *status_location,
bits status_bits,
int *irq_location,
bits irq_bits,
- void const *read_code,
- void const *write_code,
+ asm_routine read_code,
+ asm_routine write_code,
byte **controller_out,
int **status_location_out,
bits *status_bits_out,
int **irq_location_out,
bits *irq_bits_out,
- void **read_code_out,
- void **write_code_out);
+ asm_routine *read_code_out,
+ asm_routine *write_code_out);
/* ------------------------------------------------------------------------
* Function: service_adfs_podule_ide_dying()
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/Podule.Hdr /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/Podule.Hdr
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/Podule.Hdr 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/Podule.Hdr 2008-02-09 16:56:10.000000000 +0100
@@ -215,8 +215,8 @@
@ R4 = status_bits (Bits)
@ R5 = irq_location (pointer to Int)
@ R6 = irq_bits (Bits)
- @ R7 -> read_code (code)
- @ R8 -> write_code (code)
+ @ R7 = read_code (pointer to code)
+ @ R8 = write_code (pointer to code)
@Exit
@ R1 = unclaimed (Bool)
@ R2 = controller_out (pointer to data)
@@ -224,8 +224,8 @@
@ R4 = status_bits_out (Bits)
@ R5 = irq_location_out (pointer to Int)
@ R6 = irq_bits_out (Bits)
- @ R7 -> read_code_out (code)
- @ R8 -> write_code_out (code)
+ @ R7 = read_code_out (pointer to code)
+ @ R8 = write_code_out (pointer to code)
# define Service_ADFSPoduleIDEDying 0x10802
@Entry
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/resourcefs.h /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/resourcefs.h
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/resourcefs.h 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/resourcefs.h 2008-02-09 16:56:10.000000000 +0100
@@ -202,9 +202,9 @@
* Other notes: Calls SWI 0x30 with R1 = 0x60.
*/
-extern os_error *xservice_resource_fs_starting (void const *register_files,
+extern os_error *xservice_resource_fs_starting (asm_routine register_files,
void *workspace);
-extern void service_resource_fs_starting (void const *register_files,
+extern void service_resource_fs_starting (asm_routine register_files,
void *workspace);
#ifdef __cplusplus
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/ResourceFS.Hdr /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/ResourceFS.Hdr
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/ResourceFS.Hdr 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/ResourceFS.Hdr 2008-02-09 16:56:10.000000000 +0100
@@ -93,7 +93,7 @@
# define Service_ResourceFSStarting 0x60
@Entry
@ R1 = &60
- @ R2 -> register_files (code)
+ @ R2 = register_files (pointer to code)
@ R3 = workspace (pointer to Void)
#endif
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/scsi.h /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/scsi.h
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/scsi.h 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/scsi.h 2008-02-09 16:56:10.000000000 +0100
@@ -460,7 +460,7 @@
byte *start_addr,
int length,
int timeout,
- void const *callback_code,
+ asm_routine callback_code,
void *workspace,
int access_key,
int *op_id,
@@ -472,7 +472,7 @@
byte *start_addr,
int length,
int timeout,
- void const *callback_code,
+ asm_routine callback_code,
void *workspace,
int access_key,
int *op_id,
@@ -510,11 +510,11 @@
*/
extern os_error *xscsireserve_claim (int device_id,
- void const *release_code,
+ asm_routine release_code,
void *workspace,
int access_key);
extern void scsireserve_claim (int device_id,
- void const *release_code,
+ asm_routine release_code,
void *workspace,
int access_key);
@@ -534,11 +534,11 @@
*/
extern os_error *xscsireserve_force_claim (int device_id,
- void const *release_code,
+ asm_routine release_code,
void *workspace,
int access_key);
extern void scsireserve_force_claim (int device_id,
- void const *release_code,
+ asm_routine release_code,
void *workspace,
int access_key);
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/SCSI.Hdr /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/SCSI.Hdr
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/SCSI.Hdr 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/SCSI.Hdr 2008-02-09 16:56:10.000000000 +0100
@@ -188,7 +188,7 @@
@ R3 = start_addr (pointer to data)
@ R4 = length (Int)
@ R5 = timeout (Int)
- @ R6 -> callback_code (code)
+ @ R6 = callback_code (pointer to code)
@ R7 = workspace (pointer to Void)
@ R8 = access_key (Int)
@Exit
@@ -213,7 +213,7 @@
@Entry
@ R0 = &0
@ R1 = device_id (Int)
- @ R2 -> release_code (code)
+ @ R2 = release_code (pointer to code)
@ R3 = workspace (pointer to Void)
@ R8 = access_key (Int)
@@ -221,7 +221,7 @@
@Entry
@ R0 = &1
@ R1 = device_id (Int)
- @ R2 -> release_code (code)
+ @ R2 = release_code (pointer to code)
@ R3 = workspace (pointer to Void)
@ R8 = access_key (Int)
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/sound.h /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/sound.h
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/sound.h 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/sound.h 2008-02-09 16:56:10.000000000 +0100
@@ -200,8 +200,8 @@
};
struct sound_channel_handler
- { void *fill_code;
- void *overrun_fixup_code;
+ { asm_routine fill_code;
+ asm_routine overrun_fixup_code;
sound_log_table *log_table;
sound_log_scale_table *log_scale_table;
};
@@ -224,7 +224,7 @@
};
struct sound_scheduler
- { void *scheduler;
+ { asm_routine scheduler;
};
struct sound_voice_generator
@@ -421,14 +421,14 @@
*/
extern os_error *xsound_linear_handler (osbool install,
- void const *new_handler_code,
+ asm_routine new_handler_code,
void *new_workspace,
- void **old_handler_code,
+ asm_routine *old_handler_code,
void **old_workspace);
extern void sound_linear_handler (osbool install,
- void const *new_handler_code,
+ asm_routine new_handler_code,
void *new_workspace,
- void **old_handler_code,
+ asm_routine *old_handler_code,
void **old_workspace);
/* ------------------------------------------------------------------------
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/Sound.Hdr /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/Sound.Hdr
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/Sound.Hdr 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/Sound.Hdr 2008-02-09 16:56:10.000000000 +0100
@@ -151,10 +151,10 @@
.set Sound_LinearHandler,0x40145
@Entry
@ R0 = install (Bool)
- @ R1 -> new_handler_code (code)
+ @ R1 = new_handler_code (pointer to code)
@ R2 = new_workspace (pointer to Void)
@Exit
- @ R1 -> old_handler_code (code)
+ @ R1 = old_handler_code (pointer to code)
@ R2 = old_workspace (pointer to Void)
.set XSound_SampleRate,0x60146
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/taskmanager.h /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/taskmanager.h
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/taskmanager.h 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/taskmanager.h 2008-02-09 16:56:10.000000000 +0100
@@ -204,8 +204,8 @@
* Other notes: Calls SWI 0x30 with R1 = 0x42680.
*/
-extern os_error *xservice_task_manager_acknowledgements (void *add_message);
-extern void service_task_manager_acknowledgements (void *add_message);
+extern os_error *xservice_task_manager_acknowledgements (asm_routine add_message);
+extern void service_task_manager_acknowledgements (asm_routine add_message);
#ifdef __cplusplus
}
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/territory.h /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/territory.h
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/territory.h 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/territory.h 2008-02-09 16:56:10.000000000 +0100
@@ -216,7 +216,7 @@
typedef int territory_alphabet_number;
struct territory_data
- { void *e [43];
+ { asm_routine e [43];
};
struct territory_ordinals
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/types.h /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/types.h
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/types.h 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/types.h 2008-02-09 16:56:10.000000000 +0100
@@ -21,12 +21,21 @@
Foundation, Inc, 675 Mass Ave, Cambridge, MA 02139, U S A.
*/
+#if defined NAMESPACE_OSLIB
+ namespace OSLib {
+#endif
+
/********************
* Type definitions *
********************/
typedef unsigned int bits;
typedef int osbool;
typedef unsigned char byte;
+/* 'asm_routine' is a pointer to an assembler routine which does not
+ necessary requires an APCS-32 binding. Typically such a routine is called
+ directly from one of the RISC OS modules using a non-uniform calling
+ convention. */
+typedef void (*asm_routine)(void);
/* for backward compatibility with non C++ and pre-C99 code
** we can typedef |bool| as |osbool|. Anyone who wants to provide
@@ -141,4 +150,8 @@
#define NOT_USED(x) {x = x;}
#define UNSET(x) {(void) &x;}
+#if defined NAMESPACE_OSLIB
+ }
+#endif
+
#endif
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/wimp.h /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/wimp.h
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/wimp.h 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/wimp.h 2008-02-09 16:56:10.000000000 +0100
@@ -783,16 +783,16 @@
os_box initial;
os_box bbox;
byte *handle;
- void *draw;
- void *undraw;
- void *redraw;
+ asm_routine draw;
+ asm_routine undraw;
+ asm_routine redraw;
};
struct wimp_auto_scroll_info
{ wimp_w w;
os_box pause_zone_sizes;
int pause_duration;
- void *state_change;
+ asm_routine state_change;
byte *handle;
};
@@ -1726,8 +1726,8 @@
/*RISC O S 4.32+*/
#define wimp_SCROLL_DOUBLE_EXTENDED_RIGHT ((wimp_scroll_direction) 0x8u)
/*RISC O S 4.32+*/
-#define wimp_AUTO_SCROLL_NO_HANDLER ((void *) 0x0u)
-#define wimp_AUTO_SCROLL_DEFAULT_HANDLER ((void *) 0x1u)
+#define wimp_AUTO_SCROLL_NO_HANDLER ((asm_routine) 0x0u)
+#define wimp_AUTO_SCROLL_DEFAULT_HANDLER ((asm_routine) 0x1u)
#define wimp_PRE_QUIT_TASK_ONLY ((wimp_pre_quit_flags) 0x1u)
#define wimp_CLAIM_CARET_OR_SELECTION ((wimp_claim_flags) 0x3u)
/*caret or selection being claimed*/
@@ -3322,10 +3322,10 @@
*/
extern os_error *xwimp_register_filter (wimp_filter_action type,
- void const *filter_code,
+ asm_routine filter_code,
byte *handle);
__swi (0x400F5) void wimp_register_filter (wimp_filter_action type,
- void const *filter_code,
+ asm_routine filter_code,
byte *handle);
/* ------------------------------------------------------------------------
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/Wimp.Hdr /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/Wimp.Hdr
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/Wimp.Hdr 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/Wimp.Hdr 2008-02-09 16:56:10.000000000 +0100
@@ -2042,7 +2042,7 @@
.set Wimp_RegisterFilter,0x400f5
@Entry
@ R0 = type (Wimp_FilterAction)
- @ R1 -> filter_code (code)
+ @ R1 = filter_code (pointer to code)
@ R2 = handle (pointer to data)
@Exit
@ R0 corrupted
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/zapredraw.h /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/zapredraw.h
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/zapredraw.h 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/zapredraw.h 2008-02-09 16:56:10.000000000 +0100
@@ -493,10 +493,10 @@
*/
extern os_error *xzapredraw_redraw_area (zapredraw_block const *redraw_block,
- void const *extension_fn,
+ asm_routine extension_fn,
void *extension_handle);
extern void zapredraw_redraw_area (zapredraw_block const *redraw_block,
- void const *extension_fn,
+ asm_routine extension_fn,
void *extension_handle);
/* ------------------------------------------------------------------------
diff -ru -I '.*ritten by .*' /home/joty/projects/oslib/cp_before_asm_change/oslib/ZapRedraw.Hdr /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/ZapRedraw.Hdr
--- /home/joty/projects/oslib/cp_before_asm_change/oslib/ZapRedraw.Hdr 2008-02-09 12:10:41.000000000 +0100
+++ /home/joty/projects/gccsdk/riscos2/env_elf/include/oslib/ZapRedraw.Hdr 2008-02-09 16:56:10.000000000 +0100
@@ -270,7 +270,7 @@
.set ZapRedraw_RedrawArea,0x48480
@Entry
@ R1 -> redraw_block (ZapRedraw_Block)
- @ R2 -> extension_fn (code)
+ @ R2 = extension_fn (pointer to code)
@ R3 = extension_handle (pointer to Void)
@Exit
@ R0 corrupted
More information about the oslib-user
mailing list