mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-10-17 23:11:47 +02:00
Various adjustments to the RTL for m68k:
* enable the 6 parameter syscall variant (still everything dummied out though) * add termios constants * don't change signal handlers for now * disable assembly set routines as set handling was changed git-svn-id: trunk@22743 -
This commit is contained in:
parent
2db54da2b3
commit
322dbe5b65
@ -51,10 +51,7 @@ function FpSysCall(sysnr,param1,param2,param3,param4,param5:TSysParam):TSysResul
|
||||
end;
|
||||
|
||||
|
||||
{$ifdef notsupported}
|
||||
function FpSysCall(sysnr,param1,param2,param3,param4,param5,param6:TSysParam):TSysResult; assembler; [public,alias:'FPC_SYSCALL6'];
|
||||
asm
|
||||
end;
|
||||
|
||||
|
||||
{$endif notsupported}
|
||||
|
@ -31,7 +31,5 @@ function Do_SysCall(sysnr,param1,param2:TSysParam):TSysResult; external name 'FP
|
||||
function Do_SysCall(sysnr,param1,param2,param3:TSysParam):TSysResult; external name 'FPC_SYSCALL3';
|
||||
function Do_SysCall(sysnr,param1,param2,param3,param4:TSysParam):TSysResult; external name 'FPC_SYSCALL4';
|
||||
function Do_SysCall(sysnr,param1,param2,param3,param4,param5:TSysParam):TSysResult; external name 'FPC_SYSCALL5';
|
||||
{$ifdef notsupported}
|
||||
function Do_SysCall(sysnr,param1,param2,param3,param4,param5,param6:TSysParam):TSysResult; external name 'FPC_SYSCALL6';
|
||||
{$endif notsupported}
|
||||
|
||||
|
@ -354,7 +354,9 @@ begin
|
||||
StackLength := CheckInitialStkLen(initialStkLen);
|
||||
StackBottom := initialstkptr - StackLength;
|
||||
{ Set up signals handlers (may be needed by init code to test cpu features) }
|
||||
{$ifndef cpum68k}
|
||||
InstallSignals;
|
||||
{$endif cpum68k}
|
||||
|
||||
{$if defined(cpui386) or defined(cpuarm)}
|
||||
fpc_cpucodeinit;
|
||||
@ -374,6 +376,8 @@ begin
|
||||
InitSystemThreads;
|
||||
initvariantmanager;
|
||||
{ restore original signal handlers in case this is a library }
|
||||
{$ifndef cpum68k}
|
||||
if IsLibrary then
|
||||
RestoreOldSignalHandlers;
|
||||
{$endif cpum68k}
|
||||
end.
|
||||
|
@ -1474,6 +1474,245 @@ const
|
||||
TCSAFLUSH = TCSETSF;
|
||||
{$endif CPUMIPS}
|
||||
|
||||
{$ifdef CPUM68K}
|
||||
|
||||
const
|
||||
TCGETS = $5401;
|
||||
TCSETS = $5402;
|
||||
TCSETSW = $5403;
|
||||
TCSETSF = $5404;
|
||||
TCGETA = $5405;
|
||||
TCSETA = $5406;
|
||||
TCSETAW = $5407;
|
||||
TCSETAF = $5408;
|
||||
TCSBRK = $5409;
|
||||
TCXONC = $540A;
|
||||
TCFLSH = $540B;
|
||||
TIOCEXCL = $540C;
|
||||
TIOCNXCL = $540D;
|
||||
TIOCSCTTY = $540E;
|
||||
TIOCGPGRP = $540F;
|
||||
TIOCSPGRP = $5410;
|
||||
TIOCOUTQ = $5411;
|
||||
TIOCSTI = $5412;
|
||||
TIOCGWINSZ = $5413;
|
||||
TIOCSWINSZ = $5414;
|
||||
TIOCMGET = $5415;
|
||||
TIOCMBIS = $5416;
|
||||
TIOCMBIC = $5417;
|
||||
TIOCMSET = $5418;
|
||||
TIOCGSOFTCAR = $5419;
|
||||
TIOCSSOFTCAR = $541A;
|
||||
FIONREAD = $541B;
|
||||
TIOCINQ = FIONREAD;
|
||||
TIOCLINUX = $541C;
|
||||
TIOCCONS = $541D;
|
||||
TIOCGSERIAL = $541E;
|
||||
TIOCSSERIAL = $541F;
|
||||
TIOCPKT = $5420;
|
||||
FIONBIO = $5421;
|
||||
TIOCNOTTY = $5422;
|
||||
TIOCSETD = $5423;
|
||||
TIOCGETD = $5424;
|
||||
TCSBRKP = $5425;
|
||||
TIOCSBRK = $5427;
|
||||
TIOCCBRK = $5428;
|
||||
TIOCGSID = $5429;
|
||||
TIOCGRS485 = $542E;
|
||||
TIOCSRS485 = $542F;
|
||||
TCGETX = $5432;
|
||||
TCSETX = $5433;
|
||||
TCSETXF = $5434;
|
||||
TCSETXW = $5435;
|
||||
TIOCVHANGUP = $5437;
|
||||
FIONCLEX = $5450;
|
||||
FIOCLEX = $5451;
|
||||
FIOASYNC = $5452;
|
||||
TIOCSERCONFIG = $5453;
|
||||
TIOCSERGWILD = $5454;
|
||||
TIOCSERSWILD = $5455;
|
||||
TIOCGLCKTRMIOS = $5456;
|
||||
TIOCSLCKTRMIOS = $5457;
|
||||
TIOCSERGSTRUCT = $5458;
|
||||
TIOCSERGETLSR = $5459;
|
||||
TIOCSERGETMULTI = $545A;
|
||||
TIOCSERSETMULTI = $545B;
|
||||
TIOCMIWAIT = $545C;
|
||||
TIOCGICOUNT = $545D;
|
||||
|
||||
{ c_cc characters }
|
||||
VINTR = 0;
|
||||
VQUIT = 1;
|
||||
VERASE = 2;
|
||||
VKILL = 3;
|
||||
VEOF = 4;
|
||||
VTIME = 5;
|
||||
VMIN = 6;
|
||||
VSWTC = 7;
|
||||
VSTART = 8;
|
||||
VSTOP = 9;
|
||||
VSUSP = 10;
|
||||
VEOL = 11;
|
||||
VREPRINT = 12;
|
||||
VDISCARD = 13;
|
||||
VWERASE = 14;
|
||||
VLNEXT = 15;
|
||||
VEOL2 = 16;
|
||||
|
||||
{ c_iflag bits }
|
||||
IGNBRK = &000001;
|
||||
BRKINT = &000002;
|
||||
IGNPAR = &000004;
|
||||
PARMRK = &000010;
|
||||
INPCK = &000020;
|
||||
ISTRIP = &000040;
|
||||
INLCR = &000100;
|
||||
IGNCR = &000200;
|
||||
ICRNL = &000400;
|
||||
IUCLC = &001000;
|
||||
IXON = &002000;
|
||||
IXANY = &004000;
|
||||
IXOFF = &010000;
|
||||
IMAXBEL = &020000;
|
||||
IUTF8 = &040000;
|
||||
|
||||
{ c_oflag bits }
|
||||
OPOST = &000001;
|
||||
OLCUC = &000002;
|
||||
ONLCR = &000004;
|
||||
OCRNL = &000010;
|
||||
ONOCR = &000020;
|
||||
ONLRET = &000040;
|
||||
OFILL = &000100;
|
||||
OFDEL = &000200;
|
||||
NLDLY = &000400;
|
||||
NL0 = &000000;
|
||||
NL1 = &000400;
|
||||
CRDLY = &003000;
|
||||
CR0 = &000000;
|
||||
CR1 = &001000;
|
||||
CR2 = &002000;
|
||||
CR3 = &003000;
|
||||
TABDLY = &014000;
|
||||
TAB0 = &000000;
|
||||
TAB1 = &004000;
|
||||
TAB2 = &010000;
|
||||
TAB3 = &014000;
|
||||
XTABS = &014000;
|
||||
BSDLY = &020000;
|
||||
BS0 = &000000;
|
||||
BS1 = &020000;
|
||||
VTDLY = &040000;
|
||||
VT0 = &000000;
|
||||
VT1 = &040000;
|
||||
FFDLY = &100000;
|
||||
FF0 = &000000;
|
||||
FF1 = &100000;
|
||||
|
||||
{ c_cflag bit meaning }
|
||||
CBAUD = &010017;
|
||||
|
||||
{ hang up }
|
||||
B0 = &000000;
|
||||
B50 = &000001;
|
||||
B75 = &000002;
|
||||
B110 = &000003;
|
||||
B134 = &000004;
|
||||
B150 = &000005;
|
||||
B200 = &000006;
|
||||
B300 = &000007;
|
||||
B600 = &000010;
|
||||
B1200 = &000011;
|
||||
B1800 = &000012;
|
||||
B2400 = &000013;
|
||||
B4800 = &000014;
|
||||
B9600 = &000015;
|
||||
B19200 = &000016;
|
||||
B38400 = &000017;
|
||||
EXTA = B19200;
|
||||
EXTB = B38400;
|
||||
CSIZE = &000060;
|
||||
CS5 = &000000;
|
||||
CS6 = &000020;
|
||||
CS7 = &000040;
|
||||
CS8 = &000060;
|
||||
CSTOPB = &000100;
|
||||
CREAD = &000200;
|
||||
PARENB = &000400;
|
||||
PARODD = &001000;
|
||||
HUPCL = &002000;
|
||||
CLOCAL = &004000;
|
||||
CBAUDEX = &010000;
|
||||
BOTHER = &010000;
|
||||
B57600 = &010001;
|
||||
B115200 = &010002;
|
||||
B230400 = &010003;
|
||||
B460800 = &010004;
|
||||
B500000 = &010005;
|
||||
B576000 = &010006;
|
||||
B921600 = &010007;
|
||||
B1000000 = &010010;
|
||||
B1152000 = &010011;
|
||||
B1500000 = &010012;
|
||||
B2000000 = &010013;
|
||||
B2500000 = &010014;
|
||||
B3000000 = &010015;
|
||||
B3500000 = &010016;
|
||||
B4000000 = &010017;
|
||||
CIBAUD = &02003600000;
|
||||
CMSPAR = &10000000000;
|
||||
CRTSCTS = &20000000000;
|
||||
IBSHIFT = 16;
|
||||
|
||||
{ c_lflag bits }
|
||||
ISIG = &000001;
|
||||
ICANON = &000002;
|
||||
XCASE = &000004;
|
||||
ECHO = &000010;
|
||||
ECHOE = &000020;
|
||||
ECHOK = &000040;
|
||||
ECHONL = &000100;
|
||||
NOFLSH = &000200;
|
||||
TOSTOP = &000400;
|
||||
ECHOCTL = &001000;
|
||||
ECHOPRT = &002000;
|
||||
ECHOKE = &004000;
|
||||
FLUSHO = &010000;
|
||||
PENDIN = &040000;
|
||||
IEXTEN = &100000;
|
||||
EXTPROC = &200000;
|
||||
|
||||
TCOOFF = 0;
|
||||
TCOON = 1;
|
||||
TCIOFF = 2;
|
||||
TCION = 3;
|
||||
|
||||
TCIFLUSH = 0;
|
||||
TCOFLUSH = 1;
|
||||
TCIOFLUSH = 2;
|
||||
|
||||
TCSANOW = 0;
|
||||
TCSADRAIN = 1;
|
||||
TCSAFLUSH = 2;
|
||||
|
||||
{ modem lines }
|
||||
TIOCM_LE = $001;
|
||||
TIOCM_DTR = $002;
|
||||
TIOCM_RTS = $004;
|
||||
TIOCM_ST = $008;
|
||||
TIOCM_SR = $010;
|
||||
TIOCM_CTS = $020;
|
||||
TIOCM_CAR = $040;
|
||||
TIOCM_RNG = $080;
|
||||
TIOCM_DSR = $100;
|
||||
TIOCM_CD = TIOCM_CAR;
|
||||
TIOCM_RI = TIOCM_RNG;
|
||||
TIOCM_OUT1 = $2000;
|
||||
TIOCM_OUT2 = $4000;
|
||||
TIOCM_LOOP = $8000;
|
||||
|
||||
{$endif CPUM68K}
|
||||
|
||||
Type
|
||||
winsize = record
|
||||
ws_row,
|
||||
|
@ -19,7 +19,10 @@
|
||||
{ Based on original code bt Florian Kl„mpfl for the 80x86. }
|
||||
{*************************************************************************}
|
||||
|
||||
{ Edit by Sven: No m68k specific set routines for now (doesn't seem to be
|
||||
compatible to the way FPC handles sets today anyway...) }
|
||||
|
||||
{$ifdef use_m68k_sets}
|
||||
{ add the element b to the set pointed by p }
|
||||
{ On entry }
|
||||
{ a0 = pointer to set }
|
||||
@ -418,4 +421,4 @@
|
||||
@BIGMCOMPSETEND:
|
||||
end;
|
||||
end;
|
||||
|
||||
{$endif}
|
||||
|
Loading…
Reference in New Issue
Block a user