Update of /cvsroot/scsh/scsh-0.6/scsh
In directory usw-pr-cvs1:/tmp/cvs-serv20258
Modified Files:
syscalls.scm syscalls1.c
Log Message:
char_ready can be defined in terms of select, stream_char_ready is no longer
needed, so there is nothing machine-specific left.
Therefore removed arch/stdio_dep.c/h and defined char_ready in syscalls.
Index: syscalls.scm
===================================================================
RCS file: /cvsroot/scsh/scsh-0.6/scsh/syscalls.scm,v
retrieving revision 1.25
retrieving revision 1.26
diff -C2 -r1.25 -r1.26
*** syscalls.scm 2001/08/08 09:21:20 1.25
--- syscalls.scm 2001/09/06 16:34:48 1.26
***************
*** 89,93 ****
((errno/intr) (display "eintr")(loop)))
(apply syscall/eintr args)))))))
!
;;; Process
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
--- 89,93 ----
((errno/intr) (display "eintr")(loop)))
(apply syscall/eintr args)))))))
!
;;; Process
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
***************
*** 441,453 ****
(%fd-seek fd 0 seek/delta)))
! (define-foreign %char-ready-fdes?/errno
! (char_ready_fdes (fixnum fd))
! desc) ; errno, #t, or #f
!
! (define (%char-ready-fdes? fd)
! (let ((retval (%char-ready-fdes?/errno fd)))
! (if (integer? retval) (errno-error retval %char-ready-fdes? fd)
! retval)))
!
(define-stubless-foreign %open/eintr (path flags mode) "scsh_open")
--- 441,446 ----
(%fd-seek fd 0 seek/delta)))
! (define-stubless-foreign %char-ready-fdes?/eintr (fd) "char_ready_fdes")
! (define-retrying-syscall %char-ready-fdes? %char-ready-fdes?/eintr)
(define-stubless-foreign %open/eintr (path flags mode) "scsh_open")
Index: syscalls1.c
===================================================================
RCS file: /cvsroot/scsh/scsh-0.6/scsh/syscalls1.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -C2 -r1.19 -r1.20
*** syscalls1.c 2001/08/08 09:21:20 1.19
--- syscalls1.c 2001/09/06 16:34:48 1.20
***************
*** 607,610 ****
--- 607,630 ----
}
+ s48_value char_ready_fdes(s48_value sch_fd)
+ {
+ fd_set readfds;
+ struct timeval timeout;
+ int result;
+ int fd = s48_extract_fixnum sch_fd;
+ FD_ZERO(&readfds);
+ FD_SET(fd, &readfds);
+
+ timeout.tv_sec=0;
+ timeout.tv_usec=0;
+
+ result=select(fd+1, &readfds, NULL, NULL, &timeout);
+
+ if(result == -1 )
+ s48_raise_os_error_1(errno, sch_fd);
+ if(result)
+ return(S48_TRUE);
+ return(S48_FALSE);
+ }
|