add linux syscall sys_getrandom to lcorernd
[lcore.git] / lserial.pas
old mode 100755 (executable)
new mode 100644 (file)
index cee4727..4f13fce
@@ -1,71 +1,71 @@
-{$mode delphi}
-unit lserial;
-interface
-uses 
-  lcore;
-  
-type
-  tlserial=class(tlasio)
-  public 
-    device: string;
-       baudrate: longint;
-    procedure open;
-  end;
-  
-  
-implementation
-uses
-  baseunix,
-  unix,
-  unixutil,
-  termio, // despite the name the fpc termio unit seems to be an interface to termios
-  sysutils;
-procedure tlserial.open;
-var
-  fd : longint;
-  config : termios;
-  baudrateos : longint;
-begin
-  fd := fpopen(device,O_RDWR or O_NOCTTY or O_NONBLOCK);
-  
-  if isatty(fd)=0 then begin
-    writeln('not a tty');
-    halt(1);
-  end;
-
-  fillchar(config,sizeof(config),#0);
-  config.c_cflag := CLOCAL or CREAD;
-  cfmakeraw(config);
-  case baudrate of
-    50:     baudrateos := B50;
-       75:     baudrateos := B75;
-       110:    baudrateos := B110;
-       134:    baudrateos := B134;
-       150:    baudrateos := B150;
-       200:    baudrateos := B200;
-       300:    baudrateos := B300;
-       600:    baudrateos := B600;
-       1200:   baudrateos := B1200;
-       1800:   baudrateos := B1800;
-       2400:   baudrateos := B2400;
-       4800:   baudrateos := B4800;
-       9600:   baudrateos := B9600;
-       19200:  baudrateos := B19200;
-       38400:  baudrateos := B38400;
-       57600:  baudrateos := B57600;
-       115200: baudrateos := B115200;
-       230400: baudrateos := B230400; 
-       else raise exception.create('unrecognised baudrate');
-  end;
-  cfsetispeed(config,baudrateos);
-  cfsetospeed(config,baudrateos);
-  config.c_cc[VMIN]  := 1;
-  config.c_cc[VTIME] := 0;
-  if   tcsetattr(fd,TCSAFLUSH,config) <0 then begin
-    writeln('could not set termios attributes');
-    halt(3);
-  end;
-  dup(fd);
-  closehandles := true;
-end;
-end.
+{$mode delphi}\r
+unit lserial;\r
+interface\r
+uses \r
+  lcore;\r
+  \r
+type\r
+  tlserial=class(tlasio)\r
+  public \r
+    device: string;\r
+       baudrate: longint;\r
+    procedure open;\r
+  end;\r
+  \r
+  \r
+implementation\r
+uses\r
+  baseunix,\r
+  unix,\r
+  unixutil,\r
+  termio, // despite the name the fpc termio unit seems to be an interface to termios\r
+  sysutils;\r
+procedure tlserial.open;\r
+var\r
+  fd : longint;\r
+  config : termios;\r
+  baudrateos : longint;\r
+begin\r
+  fd := fpopen(device,O_RDWR or O_NOCTTY or O_NONBLOCK);\r
+  \r
+  if isatty(fd)=0 then begin\r
+    writeln('not a tty');\r
+    halt(1);\r
+  end;\r
+\r
+  fillchar(config,sizeof(config),#0);\r
+  config.c_cflag := CLOCAL or CREAD;\r
+  cfmakeraw(config);\r
+  case baudrate of\r
+    50:     baudrateos := B50;\r
+       75:     baudrateos := B75;\r
+       110:    baudrateos := B110;\r
+       134:    baudrateos := B134;\r
+       150:    baudrateos := B150;\r
+       200:    baudrateos := B200;\r
+       300:    baudrateos := B300;\r
+       600:    baudrateos := B600;\r
+       1200:   baudrateos := B1200;\r
+       1800:   baudrateos := B1800;\r
+       2400:   baudrateos := B2400;\r
+       4800:   baudrateos := B4800;\r
+       9600:   baudrateos := B9600;\r
+       19200:  baudrateos := B19200;\r
+       38400:  baudrateos := B38400;\r
+       57600:  baudrateos := B57600;\r
+       115200: baudrateos := B115200;\r
+       230400: baudrateos := B230400; \r
+       else raise exception.create('unrecognised baudrate');\r
+  end;\r
+  cfsetispeed(config,baudrateos);\r
+  cfsetospeed(config,baudrateos);\r
+  config.c_cc[VMIN]  := 1;\r
+  config.c_cc[VTIME] := 0;\r
+  if   tcsetattr(fd,TCSAFLUSH,config) <0 then begin\r
+    writeln('could not set termios attributes');\r
+    halt(3);\r
+  end;\r
+  dup(fd);\r
+  closehandles := true;\r
+end;\r
+end.\r