Changeset 14313 in project


Ignore:
Timestamp:
04/20/09 12:33:54 (11 years ago)
Author:
Alex Shinn
Message:

ioctl for chicken 4

Location:
release/4/ioctl
Files:
4 copied

Legend:

Unmodified
Added
Removed
  • release/4/ioctl/ioctl.meta

    r14312 r14313  
    88 (author "Alex Shinn")
    99 (doc-from-wiki)
     10 (needs foreigners)
    1011 (files "ioctl.setup" "ioctl.scm")
    1112)
  • release/4/ioctl/ioctl.scm

    r14312 r14313  
    11;;;; ioctl.scm -- ioctl (I/O control) interface
    22;;
    3 ;; Copyright (c) 2007-2008 Alex Shinn.  All rights reserved.
     3;; Copyright (c) 2007-2009 Alex Shinn.  All rights reserved.
    44;; BSD-style license: http://synthcode.com/license.txt
    55
     
    110110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    111111
    112 (use posix)
    113 
    114 (cond-expand
    115  ((and chicken compiling)
    116   (declare
    117    (export
    118     ;; interface
    119     ioctl ioctl-winsize
    120     ;; the winsize record
    121     make-winsize free-winsize
    122     winsize-row winsize-col winsize-xpixel winsize-ypixel
    123     winsize-row-set! winsize-col-set!
    124     winsize-xpixel-set! winsize-ypixel-set!
    125     ;; constants
    126     TIOCSETD TTYDISC TABLDISC SLIPDISC PPPDISC TIOCGETD
    127     TIOCSBRK TIOCCBRK TIOCSDTR TIOCCDTR TIOCGPGRP TIOCSPGRP
    128     TIOCGETA TIOCSETA TIOCSETAW TIOCSETAF TIOCOUTQ TIOCSTI
    129     TIOCSTOP TIOCSTART TIOCSCTTY TIOCDRAIN TIOCEXCL TIOCNXCL
    130     TIOCFLUSH TIOCGWINSZ TIOCSWINSZ TIOCCONS TIOCMSET TIOCM_LE
    131     TIOCM_DTR TIOCM_RTS TIOCM_ST TIOCM_SR TIOCM_CTS TIOCM_CAR
    132     TIOCM_CD TIOCM_RNG TIOCM_RI TIOCM_DSR TIOCMGET
    133     TIOCMBIS TIOCMBIC
    134     )))
    135  (else
    136   ))
     112(require-library posix foreigners)
     113
     114(module ioctl
     115  (
     116   ;; interface
     117   ioctl ioctl-winsize
     118   ;; the winsize record
     119   make-winsize free-winsize
     120   winsize-row winsize-col winsize-xpixel winsize-ypixel
     121   winsize-row-set! winsize-col-set!
     122   winsize-xpixel-set! winsize-ypixel-set!
     123   ;; constants
     124   TIOCSETD TTYDISC TABLDISC SLIPDISC PPPDISC TIOCGETD
     125   TIOCSBRK TIOCCBRK TIOCSDTR TIOCCDTR TIOCGPGRP TIOCSPGRP
     126   TIOCGETA TIOCSETA TIOCSETAW TIOCSETAF TIOCOUTQ TIOCSTI
     127   TIOCSTOP TIOCSTART TIOCSCTTY TIOCDRAIN TIOCEXCL TIOCNXCL
     128   TIOCFLUSH TIOCGWINSZ TIOCSWINSZ TIOCCONS TIOCMSET TIOCM_LE
     129   TIOCM_DTR TIOCM_RTS TIOCM_ST TIOCM_SR TIOCM_CTS TIOCM_CAR
     130   TIOCM_CD TIOCM_RNG TIOCM_RI TIOCM_DSR TIOCMGET
     131   TIOCMBIS TIOCMBIC
     132   )
     133
     134(import scheme chicken posix foreign foreigners)
    137135
    138136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
     
    145143(declare (foreign-declare "typedef struct winsize struct_winsize;"))
    146144
    147 (define-foreign-record (winsize struct_winsize)
     145(define-foreign-record-type (winsize "struct winsize")
    148146  (constructor: %make-winsize)
    149147  (destructor: free-winsize)
    150   (rename: (lambda (str) (string-append "winsize-" (substring str 11))))
    151   (unsigned-short ws_row)
    152   (unsigned-short ws_col)
    153   (unsigned-short ws_xpixel)
    154   (unsigned-short ws_ypixel)
     148  (unsigned-short ws_row winsize-row winsize-row-set!)
     149  (unsigned-short ws_col winsize-col winsize-col-set!)
     150  (unsigned-short ws_xpixel winsize-xpixel winsize-xpixel-set!)
     151  (unsigned-short ws_ypixel winsize-ypixel winsize-ypixel-set!)
    155152  )
    156153
     
    282279      (and (zero? errcode) res))))
    283280
     281)
  • release/4/ioctl/ioctl.setup

    r14312 r14313  
    1 (define has-exports? (string>=? (chicken-version) "2.310"))
    21
    3 (compile -shared -O2
    4   ,@(if has-exports? '(-check-imports -emit-exports ioctl.exports) '())
    5   ioctl.scm)
     2(compile -shared -O2 -j ioctl ioctl.scm)
     3(compile -shared -O2 ioctl.import.scm)
    64
    75(install-extension 'ioctl
    8   '("ioctl.so")
    9   `((version 0.1)
    10     ,@(if has-exports? `((exports "ioctl.exports")) '())
    11     ))
     6  '("ioctl.so" "ioctl.import.so")
     7  '((version 0.2)))
Note: See TracChangeset for help on using the changeset viewer.