mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-10 14:46:02 +02:00
+ introduced PtrInt and PtrUInt
* made strscan 64 bit safe
This commit is contained in:
parent
65cc0f990f
commit
021652683a
@ -43,11 +43,9 @@
|
|||||||
|
|
||||||
|
|
||||||
function strpos(str1,str2 : pchar) : pchar;
|
function strpos(str1,str2 : pchar) : pchar;
|
||||||
|
|
||||||
var
|
var
|
||||||
p : pchar;
|
p : pchar;
|
||||||
lstr2 : longint;
|
lstr2 : SizeInt;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
strpos:=nil;
|
strpos:=nil;
|
||||||
p:=strscan(str1,str2^);
|
p:=strscan(str1,str2^);
|
||||||
@ -61,14 +59,18 @@
|
|||||||
strpos:=p;
|
strpos:=p;
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
inc(longint(p));
|
inc(p);
|
||||||
p:=strscan(p,str2^);
|
p:=strscan(p,str2^);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.3 2002-09-07 15:07:46 peter
|
Revision 1.4 2003-12-29 19:24:12 florian
|
||||||
|
+ introduced PtrInt and PtrUInt
|
||||||
|
* made strscan 64 bit safe
|
||||||
|
|
||||||
|
Revision 1.3 2002/09/07 15:07:46 peter
|
||||||
* old logs removed and tabs fixed
|
* old logs removed and tabs fixed
|
||||||
|
|
||||||
}
|
}
|
@ -177,12 +177,16 @@ Type
|
|||||||
StrLenInt = Int64;
|
StrLenInt = Int64;
|
||||||
SizeInt = Int64;
|
SizeInt = Int64;
|
||||||
SizeUInt = QWord;
|
SizeUInt = QWord;
|
||||||
|
PtrInt = Int64;
|
||||||
|
PtrUInt = QWord;
|
||||||
{$endif CPU64}
|
{$endif CPU64}
|
||||||
|
|
||||||
{$ifdef CPU32}
|
{$ifdef CPU32}
|
||||||
StrLenInt = Longint;
|
StrLenInt = Longint;
|
||||||
SizeInt = Longint;
|
SizeInt = Longint;
|
||||||
SizeUInt = DWord;
|
SizeUInt = DWord;
|
||||||
|
PtrInt = Longint;
|
||||||
|
PtrUInt = DWord;
|
||||||
{$endif CPU32}
|
{$endif CPU32}
|
||||||
|
|
||||||
{ Zero - terminated strings }
|
{ Zero - terminated strings }
|
||||||
@ -713,7 +717,11 @@ const
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.80 2003-11-29 17:27:05 michael
|
Revision 1.81 2003-12-29 19:24:12 florian
|
||||||
|
+ introduced PtrInt and PtrUInt
|
||||||
|
* made strscan 64 bit safe
|
||||||
|
|
||||||
|
Revision 1.80 2003/11/29 17:27:05 michael
|
||||||
+ Added overloaded version of SetWideStringManager without old parameter
|
+ Added overloaded version of SetWideStringManager without old parameter
|
||||||
|
|
||||||
Revision 1.79 2003/11/28 20:36:13 michael
|
Revision 1.79 2003/11/28 20:36:13 michael
|
||||||
|
@ -42,6 +42,7 @@ asm
|
|||||||
.LDone:
|
.LDone:
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
function FpSysCall(sysnr,param1:TSysParam):TSysResult; assembler;[public,alias:'FPC_SYSCALL1'];
|
function FpSysCall(sysnr,param1:TSysParam):TSysResult; assembler;[public,alias:'FPC_SYSCALL1'];
|
||||||
{
|
{
|
||||||
This function puts the registers in place, does the call, and then
|
This function puts the registers in place, does the call, and then
|
||||||
@ -81,6 +82,7 @@ asm
|
|||||||
.LDone:
|
.LDone:
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
function FpSysCall(sysnr,param1,param2,param3:TSysParam):TSysResult; assembler;[public,alias:'FPC_SYSCALL3'];
|
function FpSysCall(sysnr,param1,param2,param3:TSysParam):TSysResult; assembler;[public,alias:'FPC_SYSCALL3'];
|
||||||
{
|
{
|
||||||
This function puts the registers in place, does the call, and then
|
This function puts the registers in place, does the call, and then
|
||||||
@ -107,14 +109,44 @@ function FpSysCall(sysnr,param1,param2,param3,param4:TSysParam):TSysResult; asse
|
|||||||
copies back the registers as they are after the SysCall.
|
copies back the registers as they are after the SysCall.
|
||||||
}
|
}
|
||||||
asm
|
asm
|
||||||
|
stmfd r13!,{r4}
|
||||||
|
ldr r4,param4
|
||||||
|
swi #0x900071
|
||||||
|
cmn r0,#126
|
||||||
|
bls .LDone
|
||||||
|
ldr r1,.LErrno
|
||||||
|
rsb r0,r0,#0
|
||||||
|
str r0,[r1]
|
||||||
|
mvn r0,#0
|
||||||
|
b .LDone
|
||||||
|
.LErrno:
|
||||||
|
.word Errno
|
||||||
|
.LDone:
|
||||||
|
ldmfd r13!,{r4}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
function FpSysCall(sysnr,param1,param2,param3,param4,param5:TSysParam):TSysResult; assembler;[public,alias:'FPC_SYSCALL5'];
|
function FpSysCall(sysnr,param1,param2,param3,param4,param5:TSysParam):TSysResult; assembler;[public,alias:'FPC_SYSCALL5'];
|
||||||
{
|
{
|
||||||
This function puts the registers in place, does the call, and then
|
This function puts the registers in place, does the call, and then
|
||||||
copies back the registers as they are after the SysCall.
|
copies back the registers as they are after the SysCall.
|
||||||
}
|
}
|
||||||
asm
|
asm
|
||||||
|
stmfd r13!,{r4-r5}
|
||||||
|
ldr r5,param5
|
||||||
|
ldr r4,param4
|
||||||
|
swi #0x900071
|
||||||
|
cmn r0,#126
|
||||||
|
bls .LDone
|
||||||
|
ldr r1,.LErrno
|
||||||
|
rsb r0,r0,#0
|
||||||
|
str r0,[r1]
|
||||||
|
mvn r0,#0
|
||||||
|
b .LDone
|
||||||
|
.LErrno:
|
||||||
|
.word Errno
|
||||||
|
.LDone:
|
||||||
|
ldmfd r13!,{r4-r5}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -124,11 +156,27 @@ function FpSysCall(sysnr,param1,param2,param3,param4,param5,param6:TSysParam):TS
|
|||||||
copies back the registers as they are after the SysCall.
|
copies back the registers as they are after the SysCall.
|
||||||
}
|
}
|
||||||
asm
|
asm
|
||||||
|
stmfd r13!,{r4-r6}
|
||||||
|
ldr r6,param6
|
||||||
|
ldr r5,param5
|
||||||
|
ldr r4,param4
|
||||||
|
swi #0x900071
|
||||||
|
cmn r0,#126
|
||||||
|
bls .LDone
|
||||||
|
ldr r1,.LErrno
|
||||||
|
rsb r0,r0,#0
|
||||||
|
str r0,[r1]
|
||||||
|
mvn r0,#0
|
||||||
|
b .LDone
|
||||||
|
.LErrno:
|
||||||
|
.word Errno
|
||||||
|
.LDone:
|
||||||
|
ldmfd r13!,{r4-r6}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
// Old style syscall:
|
// Old style syscall:
|
||||||
// Better use ktrace/strace/gdb for debugging.
|
// Better use ktrace/strace/gdb for debugging.
|
||||||
|
|
||||||
Procedure FpSysCall( callnr:longint;var regs : SysCallregs );assembler;
|
Procedure FpSysCall( callnr:longint;var regs : SysCallregs );assembler;
|
||||||
{
|
{
|
||||||
This function puts the registers in place, does the call, and then
|
This function puts the registers in place, does the call, and then
|
||||||
@ -193,7 +241,11 @@ end;
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.2 2003-12-03 17:34:12 florian
|
Revision 1.3 2003-12-29 19:24:12 florian
|
||||||
|
+ introduced PtrInt and PtrUInt
|
||||||
|
* made strscan 64 bit safe
|
||||||
|
|
||||||
|
Revision 1.2 2003/12/03 17:34:12 florian
|
||||||
+ started to implement arm syscalls
|
+ started to implement arm syscalls
|
||||||
|
|
||||||
Revision 1.1 2003/08/28 00:08:29 florian
|
Revision 1.1 2003/08/28 00:08:29 florian
|
||||||
|
Loading…
Reference in New Issue
Block a user