diff options
Diffstat (limited to 'rtl')
-rw-r--r-- | rtl/linux/m68k/syscall.inc | 3 | ||||
-rw-r--r-- | rtl/linux/m68k/syscallh.inc | 2 | ||||
-rw-r--r-- | rtl/linux/system.pp | 4 | ||||
-rw-r--r-- | rtl/linux/termios.inc | 239 | ||||
-rw-r--r-- | rtl/m68k/set.inc | 5 |
5 files changed, 247 insertions, 6 deletions
diff --git a/rtl/linux/m68k/syscall.inc b/rtl/linux/m68k/syscall.inc index adb3f4bc2b..9ca12158d9 100644 --- a/rtl/linux/m68k/syscall.inc +++ b/rtl/linux/m68k/syscall.inc @@ -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} diff --git a/rtl/linux/m68k/syscallh.inc b/rtl/linux/m68k/syscallh.inc index 1011705e7d..61186cfb7e 100644 --- a/rtl/linux/m68k/syscallh.inc +++ b/rtl/linux/m68k/syscallh.inc @@ -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} diff --git a/rtl/linux/system.pp b/rtl/linux/system.pp index e2ce78a816..5ebaa94299 100644 --- a/rtl/linux/system.pp +++ b/rtl/linux/system.pp @@ -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. diff --git a/rtl/linux/termios.inc b/rtl/linux/termios.inc index 3e4c14e5ff..78cfb03b29 100644 --- a/rtl/linux/termios.inc +++ b/rtl/linux/termios.inc @@ -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, diff --git a/rtl/m68k/set.inc b/rtl/m68k/set.inc index 62c2c9fe61..aa09190d7c 100644 --- a/rtl/m68k/set.inc +++ b/rtl/m68k/set.inc @@ -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} |