mirror of
https://github.com/reactos/reactos.git
synced 2024-11-03 21:34:00 +00:00
e1ef078741
The idea then would be to have the following behaviour (when specifying the following options in the kernel command line): /DEBUGPORT=COMi --> load KDCOM.DLL and use COMi port (i == 1,2,3,4) if possible. /DEBUGPORT=FOO --> load KDFOO.DLL (useful for KDUSB.DLL, KD1394.DLL, KDBAZIS.DLL for VirtualKD, etc...) /DEBUGPORT=ROSDBG:[COMi|SCREEN|FILE|GDB|...] --> load KDROSDBG.DLL which contains the ROS kernel debugger, and use COMi or SCREEN or... as output port. svn path=/branches/kd++/; revision=58883
55 lines
1.3 KiB
ArmAsm
55 lines
1.3 KiB
ArmAsm
/*
|
|
* COPYRIGHT: See COPYING in the top level directory
|
|
* PROJECT: ReactOS Run-Time Library
|
|
* PURPOSE: Byte swap functions
|
|
* FILE: lib/rtl/i386/rtlswap.S
|
|
* PROGRAMER: Alex Ionescu (alex.ionescu@reactos.org)
|
|
* Timo Kreuzer (timo.kreuzer@reactos.org)
|
|
*/
|
|
|
|
#include <asm.inc>
|
|
|
|
PUBLIC @RtlUshortByteSwap@4
|
|
PUBLIC @RtlUlongByteSwap@4
|
|
PUBLIC @RtlUlonglongByteSwap@8
|
|
|
|
/* FUNCTIONS ***************************************************************/
|
|
.code
|
|
|
|
FUNC @RtlUshortByteSwap@4
|
|
FPO 0, 0, 0, 0, 0, FRAME_FPO
|
|
|
|
/* Swap high and low bits */
|
|
mov ah, cl
|
|
mov al, ch
|
|
ret
|
|
ENDFUNC
|
|
|
|
FUNC @RtlUlongByteSwap@4
|
|
FPO 0, 0, 0, 0, 0, FRAME_FPO
|
|
|
|
/* Swap high and low bits */
|
|
mov eax, ecx
|
|
bswap eax
|
|
ret
|
|
ENDFUNC
|
|
|
|
FUNC @RtlUlonglongByteSwap@8
|
|
FPO 0, 2, 0, 0, 0, FRAME_FPO
|
|
|
|
/* Get 64-bit integer */
|
|
mov eax, [esp+8]
|
|
mov edx, [esp+4]
|
|
|
|
/* Swap it */
|
|
bswap edx
|
|
bswap eax
|
|
|
|
/* Return it (NOTE: this might look wrong, since fastcall functions
|
|
should clean up the stack, even if the first parameter is an ULONGLONG,
|
|
and therefore put on tthe stack instead of in ecx and edx,
|
|
but thats exactly how the function behaves on Windows! */
|
|
ret
|
|
ENDFUNC
|
|
|
|
END
|