summaryrefslogtreecommitdiff
path: root/libc.scm
diff options
context:
space:
mode:
Diffstat (limited to 'libc.scm')
-rw-r--r--libc.scm552
1 files changed, 276 insertions, 276 deletions
diff --git a/libc.scm b/libc.scm
index 19fb726..7fa8845 100644
--- a/libc.scm
+++ b/libc.scm
@@ -16,11 +16,11 @@
(unless (defined? '*libc*)
(define *libc*
- (with-let (unlet)
+ (with-let (sublet (unlet))
(set! *cload-library-name* "*libc*")
(set! *libraries* (cons (cons "libc.scm" (curlet)) *libraries*))
-
+
;; -------- stddef.h --------
(define NULL (c-pointer 0 'void*))
;(define (c-null? p) (and (c-pointer? p) (zero? (car (c-pointer->list p)))))
@@ -28,7 +28,7 @@
;; -------- stdbool.h --------
;(define false #f)
;(define true #t)
- ;scheme objects like false or c-null in *libc* will not appear in *libc* normally: no s7_define -> shadow_rootlet,
+ ;scheme objects like false or c-null in *libc* will not appear in *libc* normally: no s7_define -> shadow_rootlet,
; and this file itself is not loaded except when libc_s7.c is written (when libc_s7.so is out of date)
;; -------- iso646.h --------
@@ -42,7 +42,7 @@
#|
(define-expansion (assert assertion)
(reader-cond ((not (defined? 'NDEBUG))
- `(if (not ,assertion)
+ `(if (not ,assertion)
(error 'assert-failure "~S[~D]: ~A failed~%"
(port-filename) (port-line-number) ',assertion)))
(#t (values))))
@@ -58,47 +58,47 @@
;; -------- sys/types.h inttypes.h getopt.h--------
;; C type declarations
- (c-define
+ (c-define
'(;; -------- limits.h --------
- (C-macro (int (SCHAR_MIN SCHAR_MAX UCHAR_MAX CHAR_BIT CHAR_MIN CHAR_MAX __WORDSIZE
+ (C-macro (int (SCHAR_MIN SCHAR_MAX UCHAR_MAX CHAR_BIT CHAR_MIN CHAR_MAX __WORDSIZE
SHRT_MIN SHRT_MAX USHRT_MAX INT_MIN INT_MAX UINT_MAX LONG_MIN LONG_MAX ULONG_MAX
LLONG_MIN LLONG_MAX ULLONG_MAX
- _POSIX_AIO_LISTIO_MAX _POSIX_AIO_MAX _POSIX_ARG_MAX _POSIX_CHILD_MAX _POSIX_DELAYTIMER_MAX _POSIX_HOST_NAME_MAX
- _POSIX_LINK_MAX _POSIX_LOGIN_NAME_MAX _POSIX_MAX_CANON _POSIX_MAX_INPUT _POSIX_MQ_OPEN_MAX _POSIX_MQ_PRIO_MAX
- _POSIX_NAME_MAX _POSIX_NGROUPS_MAX _POSIX_OPEN_MAX _POSIX_FD_SETSIZE _POSIX_PATH_MAX _POSIX_PIPE_BUF _POSIX_RE_DUP_MAX
- _POSIX_RTSIG_MAX _POSIX_SEM_NSEMS_MAX _POSIX_SEM_VALUE_MAX _POSIX_SIGQUEUE_MAX _POSIX_SSIZE_MAX _POSIX_STREAM_MAX
- _POSIX_SYMLINK_MAX _POSIX_SYMLOOP_MAX _POSIX_TIMER_MAX _POSIX_TTY_NAME_MAX _POSIX_TZNAME_MAX _POSIX_QLIMIT
- _POSIX_HIWAT _POSIX_UIO_MAXIOV _POSIX_CLOCKRES_MIN SSIZE_MAX NGROUPS_MAX _POSIX2_BC_BASE_MAX _POSIX2_BC_DIM_MAX
- _POSIX2_BC_SCALE_MAX _POSIX2_BC_STRING_MAX _POSIX2_COLL_WEIGHTS_MAX _POSIX2_EXPR_NEST_MAX _POSIX2_LINE_MAX
- _POSIX2_RE_DUP_MAX _POSIX2_CHARCLASS_NAME_MAX BC_BASE_MAX BC_DIM_MAX BC_SCALE_MAX BC_STRING_MAX COLL_WEIGHTS_MAX
+ _POSIX_AIO_LISTIO_MAX _POSIX_AIO_MAX _POSIX_ARG_MAX _POSIX_CHILD_MAX _POSIX_DELAYTIMER_MAX _POSIX_HOST_NAME_MAX
+ _POSIX_LINK_MAX _POSIX_LOGIN_NAME_MAX _POSIX_MAX_CANON _POSIX_MAX_INPUT _POSIX_MQ_OPEN_MAX _POSIX_MQ_PRIO_MAX
+ _POSIX_NAME_MAX _POSIX_NGROUPS_MAX _POSIX_OPEN_MAX _POSIX_FD_SETSIZE _POSIX_PATH_MAX _POSIX_PIPE_BUF _POSIX_RE_DUP_MAX
+ _POSIX_RTSIG_MAX _POSIX_SEM_NSEMS_MAX _POSIX_SEM_VALUE_MAX _POSIX_SIGQUEUE_MAX _POSIX_SSIZE_MAX _POSIX_STREAM_MAX
+ _POSIX_SYMLINK_MAX _POSIX_SYMLOOP_MAX _POSIX_TIMER_MAX _POSIX_TTY_NAME_MAX _POSIX_TZNAME_MAX _POSIX_QLIMIT
+ _POSIX_HIWAT _POSIX_UIO_MAXIOV _POSIX_CLOCKRES_MIN SSIZE_MAX NGROUPS_MAX _POSIX2_BC_BASE_MAX _POSIX2_BC_DIM_MAX
+ _POSIX2_BC_SCALE_MAX _POSIX2_BC_STRING_MAX _POSIX2_COLL_WEIGHTS_MAX _POSIX2_EXPR_NEST_MAX _POSIX2_LINE_MAX
+ _POSIX2_RE_DUP_MAX _POSIX2_CHARCLASS_NAME_MAX BC_BASE_MAX BC_DIM_MAX BC_SCALE_MAX BC_STRING_MAX COLL_WEIGHTS_MAX
EXPR_NEST_MAX LINE_MAX CHARCLASS_NAME_MAX RE_DUP_MAX)))
-
+
;; -------- float.h --------
(C-macro (int (FLT_RADIX FLT_MANT_DIG DBL_MANT_DIG LDBL_MANT_DIG FLT_DIG DBL_DIG LDBL_DIG FLT_MIN_EXP DBL_MIN_EXP
LDBL_MIN_EXP FLT_MIN_10_EXP DBL_MIN_10_EXP LDBL_MIN_10_EXP FLT_MAX_EXP DBL_MAX_EXP LDBL_MAX_EXP
FLT_MAX_10_EXP DBL_MAX_10_EXP LDBL_MAX_10_EXP FLT_ROUNDS FLT_EVAL_METHOD)))
(C-macro (double (FLT_MAX DBL_MAX LDBL_MAX FLT_EPSILON DBL_EPSILON LDBL_EPSILON FLT_MIN DBL_MIN LDBL_MIN)))
-
-
+
+
;; -------- stdint.h --------
- (C-macro (int (INT8_MIN INT16_MIN INT32_MIN INT64_MIN INT8_MAX INT16_MAX INT32_MAX INT64_MAX UINT8_MAX UINT16_MAX
- UINT32_MAX UINT64_MAX INT_LEAST8_MIN INT_LEAST16_MIN INT_LEAST32_MIN INT_LEAST64_MIN INT_LEAST8_MAX
- INT_LEAST16_MAX INT_LEAST32_MAX INT_LEAST64_MAX UINT_LEAST8_MAX UINT_LEAST16_MAX UINT_LEAST32_MAX
- UINT_LEAST64_MAX INT_FAST8_MIN INT_FAST16_MIN INT_FAST32_MIN INT_FAST64_MIN INT_FAST8_MAX INT_FAST16_MAX
- INT_FAST32_MAX INT_FAST64_MAX UINT_FAST8_MAX UINT_FAST16_MAX UINT_FAST32_MAX UINT_FAST64_MAX INTPTR_MIN
- INTPTR_MAX UINTPTR_MAX INTMAX_MIN INTMAX_MAX UINTMAX_MAX PTRDIFF_MIN PTRDIFF_MAX SIG_ATOMIC_MIN SIG_ATOMIC_MAX
+ (C-macro (int (INT8_MIN INT16_MIN INT32_MIN INT64_MIN INT8_MAX INT16_MAX INT32_MAX INT64_MAX UINT8_MAX UINT16_MAX
+ UINT32_MAX UINT64_MAX INT_LEAST8_MIN INT_LEAST16_MIN INT_LEAST32_MIN INT_LEAST64_MIN INT_LEAST8_MAX
+ INT_LEAST16_MAX INT_LEAST32_MAX INT_LEAST64_MAX UINT_LEAST8_MAX UINT_LEAST16_MAX UINT_LEAST32_MAX
+ UINT_LEAST64_MAX INT_FAST8_MIN INT_FAST16_MIN INT_FAST32_MIN INT_FAST64_MIN INT_FAST8_MAX INT_FAST16_MAX
+ INT_FAST32_MAX INT_FAST64_MAX UINT_FAST8_MAX UINT_FAST16_MAX UINT_FAST32_MAX UINT_FAST64_MAX INTPTR_MIN
+ INTPTR_MAX UINTPTR_MAX INTMAX_MIN INTMAX_MAX UINTMAX_MAX PTRDIFF_MIN PTRDIFF_MAX SIG_ATOMIC_MIN SIG_ATOMIC_MAX
SIZE_MAX WCHAR_MIN WCHAR_MAX WINT_MIN WINT_MAX )))
-
+
(FILE* (stdin stdout stderr))
-
+
;; -------- endian.h --------
;; also has htobe16 etc
(C-macro (int (__BYTE_ORDER __BIG_ENDIAN __LITTLE_ENDIAN)))
-
-
+
+
(in-C "
- static s7_pointer g_c_pointer_to_string(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_c_pointer_to_string(s7_scheme *sc, s7_pointer args)
{return(s7_make_string_with_length(sc, (const char *)s7_c_pointer(s7_car(args)), s7_integer(s7_cadr(args))));}
static s7_pointer g_string_to_c_pointer(s7_scheme *sc, s7_pointer args)
{
@@ -106,10 +106,10 @@
return(s7_make_c_pointer_with_type(sc, (void *)s7_string(s7_car(args)), s7_make_symbol(sc, \"void*\"), s7_f(sc)));
return(s7_car(args));
}")
-
+
(C-function ("c-pointer->string" g_c_pointer_to_string "" 2))
(C-function ("string->c-pointer" g_string_to_c_pointer "" 1))
-
+
;; -------- ctype.h --------
(int isalnum (int))
(int isalpha (int))
@@ -126,12 +126,12 @@
(int toupper (int))
;; -------- fcntl.h --------
- (C-macro (int (S_IFMT S_IFDIR S_IFCHR S_IFBLK S_IFREG S_IFIFO __S_IFLNK S_IFSOCK S_ISUID S_ISGID S_IRUSR
- S_IWUSR S_IXUSR S_IRWXU S_IRGRP S_IWGRP S_IXGRP S_IRWXG S_IROTH S_IWOTH S_IXOTH S_IRWXO R_OK W_OK X_OK
- F_OK SEEK_SET SEEK_CUR SEEK_END F_ULOCK F_LOCK F_TLOCK F_TEST O_ACCMODE O_RDONLY O_WRONLY O_RDWR O_CREAT
- O_EXCL O_NOCTTY O_TRUNC O_APPEND O_NONBLOCK O_NDELAY O_SYNC O_FSYNC O_ASYNC O_DSYNC O_RSYNC O_LARGEFILE
- F_DUPFD F_GETFD F_SETFD F_GETFL F_SETFL F_GETLK F_SETLK F_SETLKW F_GETLK64 F_SETLK64 F_SETLKW64
- FD_CLOEXEC F_RDLCK F_WRLCK F_UNLCK POSIX_FADV_NORMAL POSIX_FADV_RANDOM POSIX_FADV_SEQUENTIAL
+ (C-macro (int (S_IFMT S_IFDIR S_IFCHR S_IFBLK S_IFREG S_IFIFO __S_IFLNK S_IFSOCK S_ISUID S_ISGID S_IRUSR
+ S_IWUSR S_IXUSR S_IRWXU S_IRGRP S_IWGRP S_IXGRP S_IRWXG S_IROTH S_IWOTH S_IXOTH S_IRWXO R_OK W_OK X_OK
+ F_OK SEEK_SET SEEK_CUR SEEK_END F_ULOCK F_LOCK F_TLOCK F_TEST O_ACCMODE O_RDONLY O_WRONLY O_RDWR O_CREAT
+ O_EXCL O_NOCTTY O_TRUNC O_APPEND O_NONBLOCK O_NDELAY O_SYNC O_FSYNC O_ASYNC O_DSYNC O_RSYNC O_LARGEFILE
+ F_DUPFD F_GETFD F_SETFD F_GETFL F_SETFL F_GETLK F_SETLK F_SETLKW F_GETLK64 F_SETLK64 F_SETLKW64
+ FD_CLOEXEC F_RDLCK F_WRLCK F_UNLCK POSIX_FADV_NORMAL POSIX_FADV_RANDOM POSIX_FADV_SEQUENTIAL
POSIX_FADV_WILLNEED POSIX_FADV_DONTNEED POSIX_FADV_NOREUSE)))
(int fcntl (int int))
(in-C "
@@ -161,11 +161,11 @@
(C-function ("open" g_c_open "" 2 1))
(int creat (char* (mode_t int)))
(int lockf (int int int))
- (reader-cond ((provided? 'linux)
+ (reader-cond ((provided? 'linux)
(int posix_fadvise (int int int int))
(int posix_fallocate (int int int))))
-
-
+
+
;; -------- fenv.h --------
(C-macro (int (FE_INEXACT FE_DIVBYZERO FE_UNDERFLOW FE_OVERFLOW FE_INVALID FE_ALL_EXCEPT
FE_TONEAREST FE_UPWARD FE_DOWNWARD FE_TOWARDZERO)))
@@ -182,17 +182,17 @@
(int feupdateenv (fenv_t*))
;(C-macro (fenv_t* (FE_DFL_ENV)))
(in-C "
- static s7_pointer g_fenv_t_make(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_fenv_t_make(s7_scheme *sc, s7_pointer args)
{return(s7_make_c_pointer_with_type(sc, (void *)calloc(1, sizeof(fenv_t)), s7_make_symbol(sc, \"fenv_t*\"), s7_f(sc)));}")
(C-function ("fenv_t.make" g_fenv_t_make "" 0))
-
-
+
+
;; -------- fnmatch.h --------
(C-macro (int (FNM_PATHNAME FNM_NOESCAPE FNM_PERIOD FNM_FILE_NAME FNM_LEADING_DIR FNM_CASEFOLD FNM_EXTMATCH FNM_NOMATCH)))
(int fnmatch (char* char* int))
-
-
+
+
;; -------- string.h --------
(void* memcpy (void* void* size_t))
(void* memmove (void* void* size_t))
@@ -220,9 +220,9 @@
(char* strerror (int))
(int strcasecmp (char* char*))
(int strncasecmp (char* char* size_t))
-
+
#|
- (reader-cond
+ (reader-cond
((provided? 'linux)
;; -------- semaphore.h --------
(int sem_init (sem_t* int int))
@@ -234,11 +234,11 @@
(int sem_post (sem_t*))))
;; not in clang??
|#
-
+
;; -------- stdio.h --------
(C-macro (int (_IOFBF _IOLBF _IONBF BUFSIZ EOF L_tmpnam TMP_MAX FILENAME_MAX L_ctermid L_cuserid FOPEN_MAX IOV_MAX)))
(C-macro (char* P_tmpdir))
-
+
(int remove (char*))
(int rename (char* char*))
(FILE* tmpfile (void))
@@ -283,22 +283,22 @@
(void funlockfile (FILE*))
;; int fprintf (FILE* char* ...)
;; int printf (char* ...)
- ;; int sprintf (char* char* ...)
+ ;; int sprintf (char* char* ...)
;; int vfprintf (FILE* char* va_list)
;; int vprintf (char* va_list)
- ;; int vsprintf (char* char* va_list)
+ ;; int vsprintf (char* char* va_list)
;; int snprintf (char* size_t char* ...)
;; int vsnprintf (char* size_t char* va_list)
;; int vasprintf (char** char* va_list)
;; int asprintf (char** char* ...)
;; int fscanf (FILE* char* ...)
;; int scanf (char* ...)
- ;; int sscanf (char* char* ...)
+ ;; int sscanf (char* char* ...)
;; int vfscanf (FILE* char* va_list)
;; int vscanf (char* va_list)
;; int vsscanf (char* char* va_list)
-
-
+
+
;; -------- stdlib.h --------
(C-macro (int (RAND_MAX EXIT_FAILURE EXIT_SUCCESS MB_CUR_MAX)))
(double atof (char*))
@@ -327,9 +327,9 @@
; (char* realpath (char* char*))
(int abs (int))
(int labs (int))
-
+
(in-C "
- static s7_pointer g_llabs(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_llabs(s7_scheme *sc, s7_pointer args)
{
#if ((__GNUC__) && ((__GNUC__ < 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ < 4))))
return(s7_make_integer(sc, labs(s7_integer(s7_car(args)))));
@@ -349,11 +349,11 @@
}
static s7_pointer g_free(s7_scheme *sc, s7_pointer args)
{free(s7_c_pointer(s7_car(args))); return(s7_f(sc));}
- static s7_pointer g_strtod(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_strtod(s7_scheme *sc, s7_pointer args)
{return(s7_make_real(sc, strtod(s7_string(s7_car(args)), NULL)));}
- static s7_pointer g_strtof(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_strtof(s7_scheme *sc, s7_pointer args)
{return(s7_make_real(sc, strtof(s7_string(s7_car(args)), NULL)));}
- static s7_pointer g_strtol(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_strtol(s7_scheme *sc, s7_pointer args)
{return(s7_make_integer(sc, strtol(s7_string(s7_car(args)), NULL, s7_integer(s7_cadr(args)))));}
static s7_pointer g_strtoll(s7_scheme *sc, s7_pointer args)
{return(s7_make_integer(sc, strtoll(s7_string(s7_car(args)), NULL, s7_integer(s7_cadr(args)))));}
@@ -375,8 +375,8 @@
(C-function ("div" g_ldiv "" 2))
(C-function ("ldiv" g_ldiv "" 2))
(C-function ("realpath" g_realpath "" 2))
-
-
+
+
;; -------- errno.h --------
;; pws for errno?
(C-macro (int (__GLIBC__ __GLIBC_MINOR__ ; features.h from errno.h
@@ -391,10 +391,10 @@
static s7_pointer g_set_errno(s7_scheme *sc, s7_pointer args) {errno = (int)s7_integer(s7_car(args)); return(s7_car(args));}")
(C-function ("errno" g_errno "" 0))
(C-function ("set_errno" g_set_errno "" 1))
-
-
+
+
;; -------- locale.h --------
- (C-macro (int (LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES LC_ALL LC_PAPER LC_NAME
+ (C-macro (int (LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES LC_ALL LC_PAPER LC_NAME
LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT LC_IDENTIFICATION)))
(char* setlocale (int char*))
(in-C "
@@ -413,7 +413,7 @@
s7_make_symbol(sc, \"mon_grouping\"), s7_make_string(sc, lc->mon_grouping),
s7_make_symbol(sc, \"positive_sign\"), s7_make_string(sc, lc->positive_sign),
s7_make_symbol(sc, \"negative_sign\"), s7_make_string(sc, lc->negative_sign),
-
+
s7_make_symbol(sc, \"int_frac_digits\"), s7_make_integer(sc, lc->int_frac_digits),
s7_make_symbol(sc, \"frac_digits\"), s7_make_integer(sc, lc->frac_digits),
s7_make_symbol(sc, \"p_cs_precedes\"), s7_make_integer(sc, lc->p_cs_precedes),
@@ -424,37 +424,37 @@
s7_make_symbol(sc, \"n_sign_posn\"), s7_make_integer(sc, lc->n_sign_posn))));
}")
(C-function ("localeconv" g_localeconv "" 0))
-
-
+
+
;; -------- sys/utsname.h --------
(in-C "
static s7_pointer g_uname(s7_scheme *sc, s7_pointer args)
{
struct utsname buf;
uname(&buf);
- return(s7_list(sc, 5, s7_make_string(sc, buf.sysname),
- s7_make_string(sc, buf.machine),
- s7_make_string(sc, buf.nodename),
- s7_make_string(sc, buf.version),
+ return(s7_list(sc, 5, s7_make_string(sc, buf.sysname),
+ s7_make_string(sc, buf.machine),
+ s7_make_string(sc, buf.nodename),
+ s7_make_string(sc, buf.version),
s7_make_string(sc, buf.release)));
}")
(C-function ("uname" g_uname "" 0))
-
-
- ;; -------- unistd.h --------
+
+
+ ;; -------- unistd.h --------
(C-macro (int (_POSIX_VERSION _POSIX2_VERSION _POSIX_JOB_CONTROL _POSIX_SAVED_IDS _POSIX_PRIORITY_SCHEDULING _POSIX_SYNCHRONIZED_IO
_POSIX_FSYNC _POSIX_MAPPED_FILES _POSIX_MEMLOCK _POSIX_MEMLOCK_RANGE _POSIX_MEMORY_PROTECTION _POSIX_CHOWN_RESTRICTED
_POSIX_VDISABLE _POSIX_NO_TRUNC _POSIX_THREADS _POSIX_REENTRANT_FUNCTIONS _POSIX_THREAD_SAFE_FUNCTIONS
_POSIX_THREAD_PRIORITY_SCHEDULING _POSIX_THREAD_ATTR_STACKSIZE _POSIX_THREAD_ATTR_STACKADDR _POSIX_THREAD_PRIO_INHERIT
_POSIX_THREAD_PRIO_PROTECT _POSIX_SEMAPHORES _POSIX_REALTIME_SIGNALS _POSIX_ASYNCHRONOUS_IO _POSIX_ASYNC_IO
_POSIX_PRIORITIZED_IO _POSIX_SHARED_MEMORY_OBJECTS _POSIX_CPUTIME _POSIX_THREAD_CPUTIME _POSIX_REGEXP
- _POSIX_READER_WRITER_LOCKS _POSIX_SHELL _POSIX_TIMEOUTS _POSIX_SPIN_LOCKS _POSIX_SPAWN _POSIX_TIMERS
+ _POSIX_READER_WRITER_LOCKS _POSIX_SHELL _POSIX_TIMEOUTS _POSIX_SPIN_LOCKS _POSIX_SPAWN _POSIX_TIMERS
_POSIX_BARRIERS _POSIX_MESSAGE_PASSING _POSIX_THREAD_PROCESS_SHARED _POSIX_MONOTONIC_CLOCK _POSIX_CLOCK_SELECTION
_POSIX_ADVISORY_INFO _POSIX_IPV6 _POSIX_RAW_SOCKETS _POSIX2_CHAR_TERM _POSIX_SPORADIC_SERVER _POSIX_THREAD_SPORADIC_SERVER
- _POSIX_TRACE _POSIX_TRACE_EVENT_FILTER _POSIX_TRACE_INHERIT _POSIX_TRACE_LOG _POSIX_TYPED_MEMORY_OBJECTS
+ _POSIX_TRACE _POSIX_TRACE_EVENT_FILTER _POSIX_TRACE_INHERIT _POSIX_TRACE_LOG _POSIX_TYPED_MEMORY_OBJECTS
STDIN_FILENO STDOUT_FILENO STDERR_FILENO)))
-
- (C-macro
+
+ (C-macro
(int (_PC_LINK_MAX _PC_MAX_CANON _PC_MAX_INPUT _PC_NAME_MAX _PC_PATH_MAX _PC_PIPE_BUF _PC_CHOWN_RESTRICTED _PC_NO_TRUNC
_PC_VDISABLE _PC_SYNC_IO _PC_ASYNC_IO _PC_PRIO_IO _PC_SOCK_MAXBUF _PC_FILESIZEBITS _PC_REC_INCR_XFER_SIZE _PC_REC_MAX_XFER_SIZE
_PC_REC_MIN_XFER_SIZE _PC_REC_XFER_ALIGN _PC_ALLOC_SIZE_MIN _PC_SYMLINK_MAX _PC_2_SYMLINKS _SC_ARG_MAX _SC_CHILD_MAX _SC_CLK_TCK
@@ -464,11 +464,11 @@
_SC_DELAYTIMER_MAX _SC_MQ_OPEN_MAX _SC_MQ_PRIO_MAX _SC_VERSION _SC_PAGESIZE _SC_PAGE_SIZE _SC_RTSIG_MAX _SC_SEM_NSEMS_MAX _SC_SEM_VALUE_MAX
_SC_SIGQUEUE_MAX _SC_TIMER_MAX _SC_BC_BASE_MAX _SC_BC_DIM_MAX _SC_BC_SCALE_MAX _SC_BC_STRING_MAX _SC_COLL_WEIGHTS_MAX _SC_EQUIV_CLASS_MAX
_SC_EXPR_NEST_MAX _SC_LINE_MAX _SC_RE_DUP_MAX _SC_CHARCLASS_NAME_MAX _SC_2_VERSION _SC_2_C_BIND _SC_2_C_DEV _SC_2_FORT_DEV _SC_2_FORT_RUN
- _SC_2_SW_DEV _SC_2_LOCALEDEF _SC_PII _SC_PII_XTI _SC_PII_SOCKET _SC_PII_INTERNET _SC_PII_OSI _SC_POLL _SC_SELECT _SC_UIO_MAXIOV
+ _SC_2_SW_DEV _SC_2_LOCALEDEF _SC_PII _SC_PII_XTI _SC_PII_SOCKET _SC_PII_INTERNET _SC_PII_OSI _SC_POLL _SC_SELECT _SC_UIO_MAXIOV
_SC_IOV_MAX _SC_PII_INTERNET_STREAM _SC_PII_INTERNET_DGRAM _SC_PII_OSI_COTS _SC_PII_OSI_CLTS _SC_PII_OSI_M _SC_T_IOV_MAX _SC_THREADS
- _SC_THREAD_SAFE_FUNCTIONS _SC_GETGR_R_SIZE_MAX _SC_GETPW_R_SIZE_MAX _SC_LOGIN_NAME_MAX _SC_TTY_NAME_MAX _SC_THREAD_DESTRUCTOR_ITERATIONS
- _SC_THREAD_KEYS_MAX _SC_THREAD_STACK_MIN _SC_THREAD_THREADS_MAX _SC_THREAD_ATTR_STACKADDR _SC_THREAD_ATTR_STACKSIZE
- _SC_THREAD_PRIO_INHERIT _SC_THREAD_PRIO_PROTECT _SC_THREAD_PROCESS_SHARED _SC_NPROCESSORS_CONF _SC_NPROCESSORS_ONLN _SC_PHYS_PAGES
+ _SC_THREAD_SAFE_FUNCTIONS _SC_GETGR_R_SIZE_MAX _SC_GETPW_R_SIZE_MAX _SC_LOGIN_NAME_MAX _SC_TTY_NAME_MAX _SC_THREAD_DESTRUCTOR_ITERATIONS
+ _SC_THREAD_KEYS_MAX _SC_THREAD_STACK_MIN _SC_THREAD_THREADS_MAX _SC_THREAD_ATTR_STACKADDR _SC_THREAD_ATTR_STACKSIZE
+ _SC_THREAD_PRIO_INHERIT _SC_THREAD_PRIO_PROTECT _SC_THREAD_PROCESS_SHARED _SC_NPROCESSORS_CONF _SC_NPROCESSORS_ONLN _SC_PHYS_PAGES
_SC_AVPHYS_PAGES _SC_ATEXIT_MAX _SC_PASS_MAX _SC_2_CHAR_TERM _SC_2_C_VERSION _SC_2_UPE _SC_CHAR_BIT _SC_CHAR_MAX _SC_CHAR_MIN _SC_INT_MAX
_SC_INT_MIN _SC_LONG_BIT _SC_WORD_BIT _SC_MB_LEN_MAX _SC_NZERO _SC_SSIZE_MAX _SC_SCHAR_MAX _SC_SCHAR_MIN _SC_SHRT_MAX _SC_SHRT_MIN
_SC_UCHAR_MAX _SC_UINT_MAX _SC_ULONG_MAX _SC_USHRT_MAX _SC_NL_ARGMAX _SC_NL_LANGMAX _SC_NL_MSGMAX _SC_NL_NMAX _SC_NL_SETMAX
@@ -479,12 +479,12 @@
_SC_SYSTEM_DATABASE _SC_SYSTEM_DATABASE_R _SC_TIMEOUTS _SC_TYPED_MEMORY_OBJECTS _SC_USER_GROUPS _SC_USER_GROUPS_R
_SC_2_PBS _SC_2_PBS_ACCOUNTING _SC_2_PBS_LOCATE _SC_2_PBS_MESSAGE _SC_2_PBS_TRACK _SC_SYMLOOP_MAX _SC_STREAMS _SC_2_PBS_CHECKPOINT
_SC_HOST_NAME_MAX _SC_TRACE _SC_TRACE_EVENT_FILTER _SC_TRACE_INHERIT _SC_TRACE_LOG _SC_LEVEL1_ICACHE_SIZE _SC_LEVEL1_ICACHE_ASSOC
- _SC_LEVEL1_ICACHE_LINESIZE _SC_LEVEL1_DCACHE_SIZE _SC_LEVEL1_DCACHE_ASSOC _SC_LEVEL1_DCACHE_LINESIZE _SC_LEVEL2_CACHE_SIZE
- _SC_LEVEL2_CACHE_LINESIZE _SC_LEVEL3_CACHE_SIZE _SC_LEVEL3_CACHE_ASSOC _SC_LEVEL3_CACHE_LINESIZE _SC_LEVEL4_CACHE_SIZE
+ _SC_LEVEL1_ICACHE_LINESIZE _SC_LEVEL1_DCACHE_SIZE _SC_LEVEL1_DCACHE_ASSOC _SC_LEVEL1_DCACHE_LINESIZE _SC_LEVEL2_CACHE_SIZE
+ _SC_LEVEL2_CACHE_LINESIZE _SC_LEVEL3_CACHE_SIZE _SC_LEVEL3_CACHE_ASSOC _SC_LEVEL3_CACHE_LINESIZE _SC_LEVEL4_CACHE_SIZE
_SC_LEVEL4_CACHE_LINESIZE _SC_IPV6 _SC_RAW_SOCKETS _SC_SS_REPL_MAX _SC_TRACE_EVENT_NAME_MAX _SC_TRACE_NAME_MAX _SC_TRACE_SYS_MAX
- _SC_TRACE_USER_EVENT_MAX _SC_THREAD_ROBUST_PRIO_INHERIT _SC_THREAD_ROBUST_PRIO_PROTECT _CS_PATH _CS_GNU_LIBC_VERSION
+ _SC_TRACE_USER_EVENT_MAX _SC_THREAD_ROBUST_PRIO_INHERIT _SC_THREAD_ROBUST_PRIO_PROTECT _CS_PATH _CS_GNU_LIBC_VERSION
_SC_THREAD_PRIORITY_SCHEDULING _SC_LEVEL2_CACHE_ASSOC _SC_LEVEL4_CACHE_ASSOC _CS_GNU_LIBPTHREAD_VERSION)))
-
+
(int access (char* int))
(int lseek (int int int))
(int close (int))
@@ -530,9 +530,9 @@
(char* getlogin (void))
(int truncate (char* int))
(int ftruncate (int int))
-
+
(in-C "
- extern char **environ;
+ extern char **environ;
static s7_pointer getenvs(s7_scheme *sc, s7_pointer args)
{
s7_pointer p;
@@ -572,7 +572,7 @@
")
(C-function ("getenvs" getenvs "(getenvs) returns all the environment variables in an alist" 0))
(C-function ("getgroups" g_getgroups "" 1))
-
+
;; perhaps call these as (define* n (path ...) = args? and use execve for all?
;; but are these useful in this context? How is fork used here?
;; int execve (char* path char* argv[] char* envp[])
@@ -581,41 +581,41 @@
;; int execl (char* path char* arg ...)
;; int execvp (char* file char* argv[])
;; int execlp (char* file char* arg ...)
-
-
+
+
;; -------- dirent.h --------
(DIR* opendir (char*))
(int closedir (DIR*))
(void rewinddir (DIR*))
(in-C "
static char *read_dir(DIR *p)
- {
- struct dirent *dirp;
- dirp = readdir(p);
- if (!dirp) return(NULL);
- else return(dirp->d_name);
+ {
+ struct dirent *dirp;
+ dirp = readdir(p);
+ if (!dirp) return(NULL);
+ else return(dirp->d_name);
}")
(char* read_dir (DIR*))
;; int scandir (char* dirent*** func func)
;; int alphasort (dirent** dirent**)
-
-
+
+
;; -------- ftw.h --------
(C-macro (int (FTW_F FTW_D FTW_DNR FTW_NS)))
(in-C "
static s7_scheme *internal_ftw_sc = NULL;
static s7_pointer internal_ftw_closure = NULL, internal_ftw_arglist = NULL;
-
+
static int internal_ftw_function(const char *fpath, const struct stat *sb, int typeflag)
{
s7_list_set(internal_ftw_sc, internal_ftw_arglist, 0, s7_make_string(internal_ftw_sc, fpath));
- s7_list_set(internal_ftw_sc, internal_ftw_arglist, 1,
+ s7_list_set(internal_ftw_sc, internal_ftw_arglist, 1,
s7_make_c_pointer_with_type(internal_ftw_sc, (void *)sb, /* need cast due to const */
s7_make_symbol(internal_ftw_sc, \"stat*\"), s7_f(internal_ftw_sc)));
s7_list_set(internal_ftw_sc, internal_ftw_arglist, 2, s7_make_integer(internal_ftw_sc, typeflag));
return((int)s7_integer(s7_call(internal_ftw_sc, internal_ftw_closure, internal_ftw_arglist)));
}
-
+
static s7_pointer g_ftw(s7_scheme *sc, s7_pointer args)
{
/* ftw(file-name, function(path, stat, type), nopenfd=max open dirs) */
@@ -626,77 +626,77 @@
return(s7_make_integer(sc, ftw(s7_string(s7_car(args)), internal_ftw_function, s7_integer(s7_caddr(args)))));
}")
(C-function ("ftw" g_ftw "" 3))
-
-
+
+
;; -------- sys/stat.h --------
(C-macro (int S_IFLNK))
-
+
(in-C "
static s7_pointer g_stat(s7_scheme *sc, s7_pointer args)
- {return(s7_make_integer(sc, stat(s7_string(s7_car(args)),
+ {return(s7_make_integer(sc, stat(s7_string(s7_car(args)),
(struct stat *)s7_c_pointer_with_type(sc, s7_cadr(args), s7_make_symbol(sc, \"stat*\"), __func__, 1))));}
static s7_pointer g_fstat(s7_scheme *sc, s7_pointer args)
- {return(s7_make_integer(sc, fstat(s7_integer(s7_car(args)),
+ {return(s7_make_integer(sc, fstat(s7_integer(s7_car(args)),
(struct stat *)s7_c_pointer_with_type(sc, s7_cadr(args), s7_make_symbol(sc, \"stat*\"), __func__, 1))));}
static s7_pointer g_lstat(s7_scheme *sc, s7_pointer args)
- {return(s7_make_integer(sc, lstat(s7_string(s7_car(args)),
+ {return(s7_make_integer(sc, lstat(s7_string(s7_car(args)),
(struct stat *)s7_c_pointer_with_type(sc, s7_cadr(args), s7_make_symbol(sc, \"stat*\"), __func__, 1))));}
")
(C-function ("stat" g_stat "" 2))
(C-function ("fstat" g_fstat "" 2))
(C-function ("lstat" g_lstat "" 2))
-
+
(int chmod (char* int))
(int mkdir (char* int))
(int mknod (char* int int))
(int mkfifo (char* int))
-
+
(in-C "
- static s7_pointer g_isdir(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_isdir(s7_scheme *sc, s7_pointer args)
{return(s7_make_boolean(sc, S_ISDIR(s7_integer(s7_car(args)))));}
- static s7_pointer g_ischr(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_ischr(s7_scheme *sc, s7_pointer args)
{return(s7_make_boolean(sc, S_ISCHR(s7_integer(s7_car(args)))));}
- static s7_pointer g_isblk(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_isblk(s7_scheme *sc, s7_pointer args)
{return(s7_make_boolean(sc, S_ISBLK(s7_integer(s7_car(args)))));}
- static s7_pointer g_isreg(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_isreg(s7_scheme *sc, s7_pointer args)
{return(s7_make_boolean(sc, S_ISREG(s7_integer(s7_car(args)))));}
- static s7_pointer g_isfifo(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_isfifo(s7_scheme *sc, s7_pointer args)
{return(s7_make_boolean(sc, S_ISFIFO(s7_integer(s7_car(args)))));}
- static s7_pointer g_islnk(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_islnk(s7_scheme *sc, s7_pointer args)
{return(s7_make_boolean(sc, S_ISLNK(s7_integer(s7_car(args)))));}
- static s7_pointer g_issock(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_issock(s7_scheme *sc, s7_pointer args)
{return(s7_make_boolean(sc, S_ISSOCK(s7_integer(s7_car(args)))));}
- static s7_pointer g_st_dev(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_st_dev(s7_scheme *sc, s7_pointer args)
{return(s7_make_integer(sc, ((struct stat *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"stat*\"), __func__, 1))->st_dev));}
- static s7_pointer g_st_ino(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_st_ino(s7_scheme *sc, s7_pointer args)
{return(s7_make_integer(sc, ((struct stat *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"stat*\"), __func__, 1))->st_ino));}
- static s7_pointer g_st_mode(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_st_mode(s7_scheme *sc, s7_pointer args)
{return(s7_make_integer(sc, ((struct stat *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"stat*\"), __func__, 1))->st_mode));}
- static s7_pointer g_st_nlink(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_st_nlink(s7_scheme *sc, s7_pointer args)
{return(s7_make_integer(sc, ((struct stat *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"stat*\"), __func__, 1))->st_nlink));}
- static s7_pointer g_st_uid(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_st_uid(s7_scheme *sc, s7_pointer args)
{return(s7_make_integer(sc, ((struct stat *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"stat*\"), __func__, 1))->st_uid));}
- static s7_pointer g_st_gid(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_st_gid(s7_scheme *sc, s7_pointer args)
{return(s7_make_integer(sc, ((struct stat *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"stat*\"), __func__, 1))->st_gid));}
- static s7_pointer g_st_rdev(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_st_rdev(s7_scheme *sc, s7_pointer args)
{return(s7_make_integer(sc, ((struct stat *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"stat*\"), __func__, 1))->st_rdev));}
- static s7_pointer g_st_size(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_st_size(s7_scheme *sc, s7_pointer args)
{return(s7_make_integer(sc, ((struct stat *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"stat*\"), __func__, 1))->st_size));}
- static s7_pointer g_st_blksize(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_st_blksize(s7_scheme *sc, s7_pointer args)
{return(s7_make_integer(sc, ((struct stat *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"stat*\"), __func__, 1))->st_blksize));}
- static s7_pointer g_st_blocks(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_st_blocks(s7_scheme *sc, s7_pointer args)
{return(s7_make_integer(sc, ((struct stat *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"stat*\"), __func__, 1))->st_blocks));}
- static s7_pointer g_st_atime(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_st_atime(s7_scheme *sc, s7_pointer args)
{return(s7_make_integer(sc, ((struct stat *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"stat*\"), __func__, 1))->st_atime));}
- static s7_pointer g_st_mtime(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_st_mtime(s7_scheme *sc, s7_pointer args)
{return(s7_make_integer(sc, ((struct stat *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"stat*\"), __func__, 1))->st_mtime));}
- static s7_pointer g_st_ctime(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_st_ctime(s7_scheme *sc, s7_pointer args)
{return(s7_make_integer(sc, ((struct stat *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"stat*\"), __func__, 1))->st_ctime));}
static s7_pointer g_stat_make(s7_scheme *sc, s7_pointer args)
{return(s7_make_c_pointer_with_type(sc, (void *)calloc(1, sizeof(struct stat)), s7_make_symbol(sc, \"stat*\"), s7_f(sc)));}
static s7_pointer g_stat_free(s7_scheme *sc, s7_pointer args) {free(s7_c_pointer(s7_car(args))); return(s7_f(sc));}
")
-
+
(C-function ("S_ISDIR" g_isdir "" 1))
(C-function ("S_ISCHR" g_ischr "" 1))
(C-function ("S_ISBLK" g_isblk "" 1))
@@ -704,7 +704,7 @@
(C-function ("S_ISFIFO" g_isfifo "" 1))
(C-function ("S_ISLNK" g_islnk "" 1))
(C-function ("S_ISSOCK" g_issock "" 1))
-
+
(C-function ("stat.st_dev" g_st_dev "" 1))
(C-function ("stat.st_ino" g_st_ino "" 1))
(C-function ("stat.st_mode" g_st_mode "" 1))
@@ -720,25 +720,25 @@
(C-function ("stat.st_ctime" g_st_ctime "" 1))
(C-function ("stat.free" g_stat_free "" 1))
(C-function ("stat.make" g_stat_make "" 0))
-
-
+
+
;; -------- time.h sys/time.h --------
- (C-macro (int (CLOCKS_PER_SEC CLOCK_REALTIME CLOCK_MONOTONIC CLOCK_PROCESS_CPUTIME_ID CLOCK_THREAD_CPUTIME_ID
+ (C-macro (int (CLOCKS_PER_SEC CLOCK_REALTIME CLOCK_MONOTONIC CLOCK_PROCESS_CPUTIME_ID CLOCK_THREAD_CPUTIME_ID
CLOCK_MONOTONIC_RAW CLOCK_REALTIME_COARSE CLOCK_MONOTONIC_COARSE))) ; also CLOCK_TAI in linux
(int clock (void))
-
+
(int time (time_t*))
(double difftime ((time_t integer) (time_t integer)))
(tm* gmtime (time_t*))
(char* ctime (time_t*))
(tm* localtime (time_t*))
-
+
(in-C "
- static s7_pointer g_mktime(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_mktime(s7_scheme *sc, s7_pointer args)
{
return(s7_make_integer(sc, (s7_int)mktime((struct tm *)s7_c_pointer(s7_car(args)))));
}
- static s7_pointer g_time_make(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_time_make(s7_scheme *sc, s7_pointer args)
{
time_t *tm;
tm = (time_t *)calloc(1, sizeof(time_t));
@@ -746,11 +746,11 @@
return(s7_make_c_pointer_with_type(sc, (void *)tm, s7_make_symbol(sc, \"time_t*\"), s7_f(sc)));
}
static s7_pointer g_time_free(s7_scheme *sc, s7_pointer args) {free(s7_c_pointer(s7_car(args))); return(s7_f(sc));}
- static s7_pointer g_strftime(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_strftime(s7_scheme *sc, s7_pointer args)
{
- return(s7_make_integer(sc, (s7_int)strftime((char *)s7_string(s7_car(args)),
- (size_t)s7_integer(s7_cadr(args)),
- s7_string(s7_caddr(args)),
+ return(s7_make_integer(sc, (s7_int)strftime((char *)s7_string(s7_car(args)),
+ (size_t)s7_integer(s7_cadr(args)),
+ s7_string(s7_caddr(args)),
(const struct tm *)s7_c_pointer(s7_cadddr(args)))));
}
static s7_pointer g_gettimeofday(s7_scheme *sc, s7_pointer args)
@@ -832,8 +832,8 @@
(C-function ("clock_settime" g_clock_settime "" 3))
(reader-cond ((not (provided? 'solaris)) (C-function ("clock_getcpuclockid" g_clock_getcpuclockid "" 1))))
(C-function ("clock_nanosleep" g_clock_nanosleep "" 4))
-
-
+
+
;; -------- utime.h --------
(in-C "
static s7_pointer g_utime(s7_scheme *sc, s7_pointer args)
@@ -844,20 +844,20 @@
return(s7_make_integer(sc, utime(s7_string(s7_car(args)), &tb)));
}")
(C-function ("utime" g_utime "" 3))
-
-
+
+
;; -------- termios.h --------
- (C-macro (int (VINTR VQUIT VERASE VKILL VEOF VTIME VMIN VSWTC VSTART VSTOP VSUSP VEOL VREPRINT
- VDISCARD VWERASE VLNEXT VEOL2 IGNBRK BRKINT IGNPAR PARMRK INPCK ISTRIP INLCR
- IGNCR ICRNL IUCLC IXON IXANY IXOFF IMAXBEL IUTF8 OPOST OLCUC ONLCR OCRNL ONOCR
- ONLRET OFILL OFDEL ISIG ICANON ECHO ECHOE ECHOK ECHONL NOFLSH TOSTOP IEXTEN
+ (C-macro (int (VINTR VQUIT VERASE VKILL VEOF VTIME VMIN VSWTC VSTART VSTOP VSUSP VEOL VREPRINT
+ VDISCARD VWERASE VLNEXT VEOL2 IGNBRK BRKINT IGNPAR PARMRK INPCK ISTRIP INLCR
+ IGNCR ICRNL IUCLC IXON IXANY IXOFF IMAXBEL IUTF8 OPOST OLCUC ONLCR OCRNL ONOCR
+ ONLRET OFILL OFDEL ISIG ICANON ECHO ECHOE ECHOK ECHONL NOFLSH TOSTOP IEXTEN
TCOOFF TCOON TCIOFF TCION TCIFLUSH TCOFLUSH TCIOFLUSH TCSANOW TCSADRAIN TCSAFLUSH)))
-
+
(int tcsendbreak (int int))
(int tcdrain (int))
(int tcflush (int int))
(int tcflow (int int))
-
+
(in-C "
static s7_pointer g_cfgetospeed(s7_scheme *sc, s7_pointer args)
{
@@ -921,7 +921,7 @@
")
;; tcflag_t c_iflag, c_oflag, c_cflag; cc_t c_line;
;; cc_t c_cc[NCCS];
-
+
(C-function ("cfgetospeed" g_cfgetospeed "" 1))
(C-function ("cfgetispeed" g_cfgetispeed "" 1))
(C-function ("cfsetospeed" g_cfsetospeed "" 2))
@@ -932,31 +932,31 @@
(C-function ("termios.c_lflag" g_termios_c_lflag "" 1))
(C-function ("termios.set_c_lflag" g_termios_set_c_lflag "" 2))
(C-function ("termios.set_c_cc" g_termios_set_c_cc "" 3))
-
-
+
+
;; -------- grp.h --------
(in-C "
static s7_pointer g_getgrgid(s7_scheme *sc, s7_pointer args)
{return(s7_make_c_pointer_with_type(sc, getgrgid(s7_integer(s7_car(args))), s7_make_symbol(sc, \"group*\"), s7_f(sc)));}
static s7_pointer g_getgrnam(s7_scheme *sc, s7_pointer args)
{return(s7_make_c_pointer_with_type(sc, getgrnam(s7_string(s7_car(args))), s7_make_symbol(sc, \"group*\"), s7_f(sc)));}
- static s7_pointer g_group_gr_name(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_group_gr_name(s7_scheme *sc, s7_pointer args)
{
- struct group *g;
+ struct group *g;
g = (struct group *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"group*\"), __func__, 1);
if (!g) return(s7_make_string(sc, \"\"));
return(s7_make_string(sc, ((struct group *)g)->gr_name));
}
- static s7_pointer g_group_gr_passwd(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_group_gr_passwd(s7_scheme *sc, s7_pointer args)
{
- struct group *g;
+ struct group *g;
g = (struct group *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"group*\"), __func__, 1);
if (!g) return(s7_make_string(sc, \"\"));
return(s7_make_string(sc, ((struct group *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"group*\"), __func__, 1))->gr_passwd));
}
- static s7_pointer g_group_gr_gid(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_group_gr_gid(s7_scheme *sc, s7_pointer args)
{
- struct group *g;
+ struct group *g;
g = (struct group *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"group*\"), __func__, 1);
if (!g) return(s7_make_integer(sc, -1));
return(s7_make_integer(sc, (s7_int)(((struct group *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"group*\"), __func__, 1))->gr_gid)));
@@ -982,8 +982,8 @@
;; ((*libc* 'group.gr_name) ((*libc* 'getgrnam) "wheel")) -> "wheel" (if any)
;; ((*libc* 'group.gr_name) ((*libc* 'getgrgid) 0)) -> "root"
;; ((*libc* 'group.gr_gid) ((*libc* 'getgrnam) "root")) -> 0
-
-
+
+
;; -------- pwd.h --------
(C-macro (int NSS_BUFLEN_PASSWD))
(void setpwent (void))
@@ -992,19 +992,19 @@
(passwd* getpwuid (int))
(passwd* getpwnam (char*))
(in-C "
- static s7_pointer g_passwd_pw_name(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_passwd_pw_name(s7_scheme *sc, s7_pointer args)
{return(s7_make_string(sc, ((struct passwd *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"passwd*\"), __func__, 1))->pw_name));}
- static s7_pointer g_passwd_pw_passwd(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_passwd_pw_passwd(s7_scheme *sc, s7_pointer args)
{return(s7_make_string(sc, ((struct passwd *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"passwd*\"), __func__, 1))->pw_passwd));}
- static s7_pointer g_passwd_pw_uid(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_passwd_pw_uid(s7_scheme *sc, s7_pointer args)
{return(s7_make_integer(sc, ((struct passwd *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"passwd*\"), __func__, 1))->pw_uid));}
- static s7_pointer g_passwd_pw_gid(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_passwd_pw_gid(s7_scheme *sc, s7_pointer args)
{return(s7_make_integer(sc, ((struct passwd *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"passwd*\"), __func__, 1))->pw_gid));}
- static s7_pointer g_passwd_pw_gecos(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_passwd_pw_gecos(s7_scheme *sc, s7_pointer args)
{return(s7_make_string(sc, ((struct passwd *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"passwd*\"), __func__, 1))->pw_gecos));}
- static s7_pointer g_passwd_pw_dir(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_passwd_pw_dir(s7_scheme *sc, s7_pointer args)
{return(s7_make_string(sc, ((struct passwd *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"passwd*\"), __func__, 1))->pw_dir));}
- static s7_pointer g_passwd_pw_shell(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_passwd_pw_shell(s7_scheme *sc, s7_pointer args)
{return(s7_make_string(sc, ((struct passwd *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"passwd*\"), __func__, 1))->pw_shell));}
")
(C-function ("passwd.pw_name" g_passwd_pw_name "" 1))
@@ -1015,11 +1015,11 @@
(C-function ("passwd.pw_dir" g_passwd_pw_dir "" 1))
(C-function ("passwd.pw_shell" g_passwd_pw_shell "" 1))
;; ((*libc* 'passwd.pw_name) ((*libc* 'getpwnam) "bil")) -> "bil"
-
-
+
+
;; -------- wordexp.h --------
(reader-cond ((not (provided? 'openbsd))
- (int (WRDE_DOOFFS WRDE_APPEND WRDE_NOCMD WRDE_REUSE WRDE_SHOWERR WRDE_UNDEF
+ (int (WRDE_DOOFFS WRDE_APPEND WRDE_NOCMD WRDE_REUSE WRDE_SHOWERR WRDE_UNDEF
WRDE_NOSPACE WRDE_BADCHAR WRDE_BADVAL WRDE_CMDSUB WRDE_SYNTAX))
(int wordexp (char* wordexp_t* int))
(void wordfree (wordexp_t*))
@@ -1045,12 +1045,12 @@
(C-function ("wordexp.we_wordc" g_wordexp_we_wordc "" 1))
(C-function ("wordexp.we_wordv" g_wordexp_we_wordv "" 1))))
;; (with-let (sublet *libc*) (let ((w (wordexp.make))) (wordexp "~/cl/snd-gdraw" w 0) (wordexp.we_wordv w))) -> ("/home/bil/cl/snd-gdraw")
-
-
+
+
;; -------- glob.h --------
;; does any of this work in openbsd?
- (C-macro (int (GLOB_ERR GLOB_MARK GLOB_NOSORT GLOB_DOOFFS GLOB_NOCHECK GLOB_APPEND GLOB_NOESCAPE GLOB_PERIOD
- GLOB_MAGCHAR GLOB_ALTDIRFUNC GLOB_BRACE GLOB_NOMAGIC GLOB_TILDE GLOB_ONLYDIR GLOB_TILDE_CHECK
+ (C-macro (int (GLOB_ERR GLOB_MARK GLOB_NOSORT GLOB_DOOFFS GLOB_NOCHECK GLOB_APPEND GLOB_NOESCAPE GLOB_PERIOD
+ GLOB_MAGCHAR GLOB_ALTDIRFUNC GLOB_BRACE GLOB_NOMAGIC GLOB_TILDE GLOB_ONLYDIR GLOB_TILDE_CHECK
GLOB_NOSPACE GLOB_ABORTED GLOB_NOMATCH GLOB_NOSYS)))
(void globfree (glob_t*))
(in-C "
@@ -1059,7 +1059,7 @@
static s7_pointer g_glob_gl_pathc(s7_scheme *sc, s7_pointer args)
{return(s7_make_integer(sc, ((glob_t *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"glob_t*\"), __func__, 1))->gl_pathc));}
static s7_pointer g_glob(s7_scheme *sc, s7_pointer args)
- {return(s7_make_integer(sc, glob(s7_string(s7_car(args)), s7_integer(s7_cadr(args)), NULL,
+ {return(s7_make_integer(sc, glob(s7_string(s7_car(args)), s7_integer(s7_cadr(args)), NULL,
(glob_t *)s7_c_pointer_with_type(sc, s7_caddr(args), s7_make_symbol(sc, \"glob_t*\"), __func__, 1))));}
static s7_pointer g_glob_gl_pathv(s7_scheme *sc, s7_pointer args)
{
@@ -1076,27 +1076,27 @@
(C-function ("glob.gl_pathc" g_glob_gl_pathc "" 1))
(C-function ("glob.gl_pathv" g_glob_gl_pathv "" 1))
(C-function ("glob" g_glob "" 3))
-
-
+
+
;; -------- signal.h sys/wait.h --------
- (C-macro (int (SIGHUP SIGINT SIGQUIT SIGILL SIGTRAP SIGABRT SIGIOT SIGBUS SIGFPE
- SIGKILL SIGUSR1 SIGSEGV SIGUSR2 SIGPIPE SIGALRM SIGTERM SIGSTKFLT
- SIGCLD SIGCHLD SIGCONT SIGSTOP SIGTSTP SIGTTIN SIGTTOU SIGURG
- SIGXCPU SIGXFSZ SIGVTALRM SIGPROF SIGWINCH SIGPOLL SIGIO SIGPWR SIGSYS
+ (C-macro (int (SIGHUP SIGINT SIGQUIT SIGILL SIGTRAP SIGABRT SIGIOT SIGBUS SIGFPE
+ SIGKILL SIGUSR1 SIGSEGV SIGUSR2 SIGPIPE SIGALRM SIGTERM SIGSTKFLT
+ SIGCLD SIGCHLD SIGCONT SIGSTOP SIGTSTP SIGTTIN SIGTTOU SIGURG
+ SIGXCPU SIGXFSZ SIGVTALRM SIGPROF SIGWINCH SIGPOLL SIGIO SIGPWR SIGSYS
(reader-cond ((not (provided? 'osx)) SIGUNUSED))
WNOHANG WUNTRACED WSTOPPED WEXITED WCONTINUED WNOWAIT
- RLIMIT_CPU RLIMIT_FSIZE RLIMIT_DATA RLIMIT_STACK RLIMIT_CORE RLIMIT_RSS
- RLIMIT_NOFILE RLIMIT_OFILE RLIMIT_AS RLIMIT_NPROC RLIMIT_MEMLOCK RLIMIT_LOCKS
- RLIMIT_SIGPENDING RLIMIT_MSGQUEUE RLIMIT_NICE RLIMIT_RTPRIO RLIMIT_NLIMITS
- RLIM_NLIMITS RLIM_INFINITY RLIM_SAVED_MAX RLIM_SAVED_CUR RUSAGE_SELF
- RUSAGE_CHILDREN RUSAGE_THREAD RUSAGE_LWP
+ RLIMIT_CPU RLIMIT_FSIZE RLIMIT_DATA RLIMIT_STACK RLIMIT_CORE RLIMIT_RSS
+ RLIMIT_NOFILE RLIMIT_OFILE RLIMIT_AS RLIMIT_NPROC RLIMIT_MEMLOCK RLIMIT_LOCKS
+ RLIMIT_SIGPENDING RLIMIT_MSGQUEUE RLIMIT_NICE RLIMIT_RTPRIO RLIMIT_NLIMITS
+ RLIM_NLIMITS RLIM_INFINITY RLIM_SAVED_MAX RLIM_SAVED_CUR RUSAGE_SELF
+ RUSAGE_CHILDREN RUSAGE_THREAD RUSAGE_LWP
PRIO_MIN PRIO_MAX PRIO_PROCESS PRIO_PGRP PRIO_USER
- SA_NOCLDSTOP SA_NOCLDWAIT SA_SIGINFO SA_ONSTACK SA_RESTART SA_NODEFER SA_RESETHAND SA_NOMASK SA_ONESHOT SA_STACK
+ SA_NOCLDSTOP SA_NOCLDWAIT SA_SIGINFO SA_ONSTACK SA_RESTART SA_NODEFER SA_RESETHAND SA_NOMASK SA_ONESHOT SA_STACK
SIG_BLOCK SIG_UNBLOCK SIG_SETMASK
)))
-
+
;; (let ((v (rusage.make))) (getrusage (*libc* 'RUSAGE_SELF) v) (let ((mem (rusage.ru_maxrss v))) (free v) mem))
-
+
(int kill (int int))
(int raise (int))
(int sigemptyset (sigset_t*))
@@ -1108,8 +1108,8 @@
(int sigsuspend (sigset_t*))
(int sigpending (sigset_t*))
(int getpriority (int int))
- (int setpriority (int int int))
-
+ (int setpriority (int int int))
+
(in-C "
static s7_pointer g_rlimit_make(s7_scheme *sc, s7_pointer args)
{return(s7_make_c_pointer_with_type(sc, (void *)calloc(1, sizeof(struct rlimit)), s7_make_symbol(sc, \"rlimit*\"), s7_f(sc)));}
@@ -1139,7 +1139,7 @@
static s7_pointer g_rusage_ru_stime(s7_scheme *sc, s7_pointer args)
{return(s7_make_c_pointer(sc, &(((struct rusage *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"rusage*\"), __func__, 1))->ru_stime)));}
static s7_pointer g_getrusage(s7_scheme *sc, s7_pointer args)
- {return(s7_make_integer(sc, getrusage(s7_integer(s7_car(args)),
+ {return(s7_make_integer(sc, getrusage(s7_integer(s7_car(args)),
(struct rusage *)s7_c_pointer_with_type(sc, s7_cadr(args), s7_make_symbol(sc, \"rusage*\"), __func__, 1))));}
static s7_pointer g_sigset_make(s7_scheme *sc, s7_pointer args)
@@ -1197,7 +1197,7 @@
static s7_pointer g_sigtimedwait(s7_scheme *sc, s7_pointer args)
{
#if (__linux__)
- return(s7_make_integer(sc, sigtimedwait((const sigset_t *)s7_c_pointer(s7_car(args)),
+ return(s7_make_integer(sc, sigtimedwait((const sigset_t *)s7_c_pointer(s7_car(args)),
(siginfo_t *)s7_c_pointer(s7_cadr(args)),
(const struct timespec *)s7_c_pointer(s7_caddr(args)))));
#else
@@ -1236,12 +1236,12 @@
static s7_pointer g_siginfo_si_fd(s7_scheme *sc, s7_pointer args)
{return(s7_make_integer(sc, ((siginfo_t *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"siginfo_t*\"), __func__, 1))->si_fd));}
static s7_pointer g_siginfo_si_ptr(s7_scheme *sc, s7_pointer args)
- {return(s7_make_c_pointer_with_type(sc,
- ((siginfo_t *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"siginfo_t*\"), __func__, 1))->si_ptr,
+ {return(s7_make_c_pointer_with_type(sc,
+ ((siginfo_t *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"siginfo_t*\"), __func__, 1))->si_ptr,
s7_make_symbol(sc, \"siginfo_t*\"), s7_f(sc)));}
static s7_pointer g_siginfo_si_addr(s7_scheme *sc, s7_pointer args)
- {return(s7_make_c_pointer_with_type(sc,
- ((siginfo_t *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"siginfo_t*\"), __func__, 1))->si_addr,
+ {return(s7_make_c_pointer_with_type(sc,
+ ((siginfo_t *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"siginfo_t*\"), __func__, 1))->si_addr,
s7_make_symbol(sc, \"siginfo_t*\"), s7_f(sc)));}
#endif
@@ -1296,10 +1296,10 @@
if (s7_c_pointer(s7_cadr(args)) == (void *)SIG_IGN)
((struct sigaction *)s7_c_pointer(s7_car(args)))->sa_handler = SIG_IGN;
}}
- else
+ else
{
((struct sigaction *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"sigaction*\"), __func__, 1))->sa_handler = s7_signal_handler;
- s7_vector_set(sighandlers_s7, sighandlers, SIGUNUSED,
+ s7_vector_set(sighandlers_s7, sighandlers, SIGUNUSED,
s7_cons(sc, s7_cons(sc, s7_car(args), s7_cadr(args)), s7_vector_ref(sighandlers_s7, sighandlers, SIGUNUSED)));
}
return(s7_cadr(args));
@@ -1342,11 +1342,11 @@
return(s7_make_c_pointer(sc, (void *)signal(sig, s7_signal_handler)));
}
")
-
+
(C-function ("rlimit.make" g_rlimit_make "" 0))
(C-function ("rlimit.rlim_cur" g_rlimit_rlim_cur "" 1))
(C-function ("rlimit.rlim_max" g_rlimit_rlim_max "" 1))
-
+
(C-function ("rusage.make" g_rusage_make "" 0))
(C-function ("getrusage" g_getrusage "" 2))
(C-function ("rusage.ru_maxrss" g_rusage_ru_maxrss "" 1))
@@ -1358,8 +1358,8 @@
(C-function ("rusage.ru_nivcsw" g_rusage_ru_nivcsw "" 1))
(C-function ("rusage.ru_utime" g_rusage_ru_utime "" 1))
(C-function ("rusage.ru_stime" g_rusage_ru_stime "" 1))
-
- (reader-cond ((provided? 'linux)
+
+ (reader-cond ((provided? 'linux)
(C-function ("siginfo.make" g_siginfo_make "" 0))
(C-function ("siginfo.si_signo" g_siginfo_si_signo "" 1))
(C-function ("siginfo.si_errno" g_siginfo_si_errno "" 1))
@@ -1377,18 +1377,18 @@
(C-function ("siginfo.si_fd" g_siginfo_si_fd "" 1))
(C-function ("siginfo.si_ptr" g_siginfo_si_ptr "" 1))
(C-function ("siginfo.si_addr" g_siginfo_si_addr "" 1))))
-
+
(C-function ("timespec.make" g_timespec_make "" 0))
(C-function ("timespec.tv_sec" g_timespec_tv_sec "" 1))
(C-function ("timespec.tv_nsec" g_timespec_tv_nsec "" 1))
-
+
(C-function ("sigaction.make" g_sigaction_make "" 0))
(C-function ("sigaction.sa_handler" g_sigaction_sa_handler "" 1))
(C-function ("sigaction.sa_flags" g_sigaction_sa_flags "" 1))
(C-function ("sigaction.sa_mask" g_sigaction_sa_mask "" 1))
(C-function ("sigaction.set_sa_handler" g_sigaction_set_sa_handler "" 2))
(C-function ("sigaction.set_sa_flags" g_sigaction_set_sa_flags "" 2))
-#|
+#|
(with-let (sublet *libc*)
(let ((sa (sigaction.make)))
(sigemptyset (sigaction.sa_mask sa))
@@ -1400,15 +1400,15 @@
(do ((i 0 (+ i 1)))
((= i 10))
(sleep 1))))
-|#
- (reader-cond ((provided? 'linux)
+|#
+ (reader-cond ((provided? 'linux)
(C-function ("WEXITSTATUS" g_WEXITSTATUS "" 1))
(C-function ("WTERMSIG" g_WTERMSIG "" 1))
(C-function ("WSTOPSIG" g_WSTOPSIG "" 1))
(C-function ("WIFEXITED" g_WIFEXITED "" 1))
(C-function ("WIFSIGNALED" g_WIFSIGNALED "" 1))
(C-function ("WIFSTOPPED" g_WIFSTOPPED "" 1))))
-
+
(C-function ("wait" g_wait "" 0))
(C-function ("waitpid" g_waitpid "" 2))
(C-function ("sigqueue" g_sigqueue "" 3))
@@ -1416,25 +1416,25 @@
(C-function ("sigaction" g_sigaction "" 3))
(C-function ("sigtimedwait" g_sigtimedwait "" 3))
(C-function ("sigset.make" g_sigset_make "" 0))
-
+
(C-function ("signal" g_signal "" 2))
-
+
(int getrlimit (int struct-rlimit*))
(int setrlimit (int struct-rlimit*))
- (reader-cond ((provided? 'linux)
+ (reader-cond ((provided? 'linux)
(int sigwaitinfo (sigset_t* siginfo_t*))
(int waitid ((idtype_t int) int siginfo_t* int))))
(c-pointer (SIG_ERR SIG_DFL SIG_IGN))
-
-
+
+
;; -------- netdb.h --------
(reader-cond ((provided? 'linux)
(int (IPPORT_ECHO IPPORT_DISCARD IPPORT_SYSTAT IPPORT_DAYTIME IPPORT_NETSTAT IPPORT_FTP IPPORT_TELNET IPPORT_SMTP
IPPORT_TIMESERVER IPPORT_NAMESERVER IPPORT_WHOIS IPPORT_MTP IPPORT_TFTP IPPORT_RJE IPPORT_FINGER IPPORT_TTYLINK
IPPORT_SUPDUP IPPORT_EXECSERVER IPPORT_LOGINSERVER IPPORT_CMDSERVER IPPORT_EFSSERVER IPPORT_BIFFUDP
IPPORT_WHOSERVER IPPORT_ROUTESERVER IPPORT_RESERVED IPPORT_USERRESERVED))))
-
+
(C-macro (int (AI_PASSIVE AI_CANONNAME AI_NUMERICHOST AI_V4MAPPED AI_ALL AI_ADDRCONFIG AI_NUMERICSERV
EAI_BADFLAGS EAI_NONAME EAI_AGAIN EAI_FAIL EAI_FAMILY EAI_SOCKTYPE EAI_SERVICE EAI_MEMORY EAI_SYSTEM EAI_OVERFLOW
NI_NUMERICHOST NI_NUMERICSERV NI_NOFQDN NI_NAMEREQD NI_DGRAM
@@ -1457,7 +1457,7 @@
SHUT_RD SHUT_WR SHUT_RDWR)))
(C-macro (char* (_PATH_HEQUIV _PATH_HOSTS _PATH_NETWORKS _PATH_NSSWITCH_CONF _PATH_PROTOCOLS _PATH_SERVICES)))
-
+
(reader-cond ((not (provided? 'msys))
(hostent* gethostent (void))
(void setnetent (int))
@@ -1465,33 +1465,33 @@
(netent* getnetent (void))
(netent* getnetbyname (char*))
(netent* getnetbyaddr (int int))))
-
+
(void sethostent (int))
(void endhostent (void))
-
+
(void setservent (int))
(void endservent (void))
(servent* getservent (void))
-
+
(void setprotoent (int))
(void endprotoent (void))
(protoent* getprotoent (void))
-
-
+
+
(int socket (int int int))
(int listen (int int))
(int shutdown (int int))
-
+
(hostent* gethostbyname (char*))
(hostent* gethostbyaddr (void* int int))
(servent* getservbyname (char* char*))
(servent* getservbyport (int char*))
(protoent* getprotobyname (char*))
(protoent* getprotobynumber (int))
-
+
(void freeaddrinfo (struct-addrinfo*))
(char* gai_strerror (int))
-
+
(int bind (int const-struct-sockaddr* int))
(int connect (int const-struct-sockaddr* int))
(int send (int void* int int))
@@ -1499,79 +1499,79 @@
(int sendto (int void* int int const-struct-sockaddr* int))
(int sendmsg (int const-struct-msghdr* int))
(int recvmsg (int struct-msghdr* int))
-
+
(in-C "
static s7_pointer g_ntohl(s7_scheme *sc, s7_pointer args) {return(s7_make_integer(sc, ntohl(s7_integer(s7_car(args)))));}
static s7_pointer g_ntohs(s7_scheme *sc, s7_pointer args) {return(s7_make_integer(sc, ntohs(s7_integer(s7_car(args)))));}
static s7_pointer g_htonl(s7_scheme *sc, s7_pointer args) {return(s7_make_integer(sc, htonl(s7_integer(s7_car(args)))));}
static s7_pointer g_htons(s7_scheme *sc, s7_pointer args) {return(s7_make_integer(sc, htons(s7_integer(s7_car(args)))));}
- static s7_pointer g_addrinfo_make(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_addrinfo_make(s7_scheme *sc, s7_pointer args)
{
return(s7_make_c_pointer_with_type(sc, (void *)calloc(1, sizeof(struct addrinfo)), s7_make_symbol(sc, \"addrinfo*\"), s7_f(sc)));
}
- static s7_pointer g_addrinfo_ai_flags(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_addrinfo_ai_flags(s7_scheme *sc, s7_pointer args)
{
return(s7_make_integer(sc, ((struct addrinfo *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"addrinfo*\"), __func__, 1))->ai_flags));
}
- static s7_pointer g_addrinfo_set_ai_flags(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_addrinfo_set_ai_flags(s7_scheme *sc, s7_pointer args)
{
((struct addrinfo *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"addrinfo*\"), __func__, 1))->ai_flags = (int)s7_integer(s7_cadr(args));
return(s7_cadr(args));
}
- static s7_pointer g_addrinfo_ai_family(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_addrinfo_ai_family(s7_scheme *sc, s7_pointer args)
{
return(s7_make_integer(sc, ((struct addrinfo *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"addrinfo*\"), __func__, 1))->ai_family));
}
- static s7_pointer g_addrinfo_set_ai_family(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_addrinfo_set_ai_family(s7_scheme *sc, s7_pointer args)
{
((struct addrinfo *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"addrinfo*\"), __func__, 1))->ai_family = (int)s7_integer(s7_cadr(args));
return(s7_cadr(args));
}
- static s7_pointer g_addrinfo_ai_socktype(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_addrinfo_ai_socktype(s7_scheme *sc, s7_pointer args)
{
return(s7_make_integer(sc, ((struct addrinfo *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"addrinfo*\"), __func__, 1))->ai_socktype));
}
- static s7_pointer g_addrinfo_set_ai_socktype(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_addrinfo_set_ai_socktype(s7_scheme *sc, s7_pointer args)
{
((struct addrinfo *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"addrinfo*\"), __func__, 1))->ai_socktype = (int)s7_integer(s7_cadr(args));
return(s7_cadr(args));
}
- static s7_pointer g_addrinfo_ai_protocol(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_addrinfo_ai_protocol(s7_scheme *sc, s7_pointer args)
{
return(s7_make_integer(sc, ((struct addrinfo *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"addrinfo*\"), __func__, 1))->ai_protocol));
}
- static s7_pointer g_addrinfo_set_ai_protocol(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_addrinfo_set_ai_protocol(s7_scheme *sc, s7_pointer args)
{
((struct addrinfo *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"addrinfo*\"), __func__, 1))->ai_protocol = (int)s7_integer(s7_cadr(args));
return(s7_cadr(args));
}
- static s7_pointer g_addrinfo_ai_canonname(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_addrinfo_ai_canonname(s7_scheme *sc, s7_pointer args)
{
return(s7_make_string(sc, ((struct addrinfo *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"addrinfo*\"), __func__, 1))->ai_canonname));
}
- static s7_pointer g_addrinfo_ai_next(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_addrinfo_ai_next(s7_scheme *sc, s7_pointer args)
{
return(s7_make_c_pointer_with_type(sc, (void *)(((struct addrinfo *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"addrinfo*\"), __func__, 1))->ai_next), s7_make_symbol(sc, \"addrinfo*\"), s7_f(sc)));
}
- static s7_pointer g_getaddrinfo(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_getaddrinfo(s7_scheme *sc, s7_pointer args)
{
struct addrinfo *result;
int err;
- err = getaddrinfo(s7_string(s7_car(args)),
+ err = getaddrinfo(s7_string(s7_car(args)),
s7_string(s7_cadr(args)),
(const struct addrinfo *)s7_c_pointer_with_type(sc, s7_caddr(args), s7_make_symbol(sc, \"addrinfo*\"), __func__, 1),
&result);
- return(s7_list(sc, 2, s7_make_integer(sc, err),
+ return(s7_list(sc, 2, s7_make_integer(sc, err),
s7_make_c_pointer_with_type(sc, (void *)result, s7_make_symbol(sc, \"addrinfo*\"), s7_f(sc))));
}
- static s7_pointer g_getnameinfo(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_getnameinfo(s7_scheme *sc, s7_pointer args)
{
#ifndef NI_MAXHOST
#define NI_MAXHOST 1025
@@ -1589,16 +1589,16 @@
s7_integer(s7_caddr(args)));
return(s7_list(sc, 3, s7_make_integer(sc, err), s7_make_string(sc, host), s7_make_string(sc, service)));
}
-
- static s7_pointer g_socketpair(s7_scheme *sc, s7_pointer args)
+
+ static s7_pointer g_socketpair(s7_scheme *sc, s7_pointer args)
{
int fds[2];
int err;
err = socketpair(s7_integer(s7_car(args)), s7_integer(s7_cadr(args)), s7_integer(s7_caddr(args)), fds);
return(s7_list(sc, 3, s7_make_integer(sc, err), s7_make_integer(sc, fds[0]), s7_make_integer(sc, fds[1])));
}
-
- static s7_pointer g_getsockname(s7_scheme *sc, s7_pointer args)
+
+ static s7_pointer g_getsockname(s7_scheme *sc, s7_pointer args)
{
int err;
socklen_t res;
@@ -1606,7 +1606,7 @@
err = getsockname(s7_integer(s7_car(args)), (struct sockaddr *)s7_c_pointer(s7_cadr(args)), &res);
return(s7_list(sc, 2, s7_make_integer(sc, err), s7_make_integer(sc, res)));
}
- static s7_pointer g_getpeername(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_getpeername(s7_scheme *sc, s7_pointer args)
{
int err;
socklen_t res;
@@ -1614,7 +1614,7 @@
err = getpeername(s7_integer(s7_car(args)), (struct sockaddr *)s7_c_pointer(s7_cadr(args)), &res);
return(s7_list(sc, 2, s7_make_integer(sc, err), s7_make_integer(sc, res)));
}
- static s7_pointer g_accept(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_accept(s7_scheme *sc, s7_pointer args)
{
int err;
socklen_t res;
@@ -1622,7 +1622,7 @@
err = accept(s7_integer(s7_car(args)), (struct sockaddr *)s7_c_pointer(s7_cadr(args)), &res);
return(s7_list(sc, 2, s7_make_integer(sc, err), s7_make_integer(sc, res)));
}
- static s7_pointer g_getsockopt(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_getsockopt(s7_scheme *sc, s7_pointer args)
{
int err;
socklen_t res;
@@ -1630,22 +1630,22 @@
err = getsockopt(s7_integer(s7_car(args)), s7_integer(s7_cadr(args)), s7_integer(s7_caddr(args)), s7_c_pointer(s7_cadddr(args)), &res);
return(s7_list(sc, 2, s7_make_integer(sc, err), s7_make_integer(sc, (s7_int)res)));
}
- static s7_pointer g_setsockopt(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_setsockopt(s7_scheme *sc, s7_pointer args)
{
socklen_t res;
res = (socklen_t)s7_integer(s7_list_ref(sc, args, 4));
- return(s7_make_integer(sc, setsockopt(s7_integer(s7_car(args)), s7_integer(s7_cadr(args)),
+ return(s7_make_integer(sc, setsockopt(s7_integer(s7_car(args)), s7_integer(s7_cadr(args)),
s7_integer(s7_caddr(args)), s7_c_pointer(s7_cadddr(args)), res)));
}
- static s7_pointer g_recvfrom(s7_scheme *sc, s7_pointer args)
+ static s7_pointer g_recvfrom(s7_scheme *sc, s7_pointer args)
{
int err;
socklen_t res;
res = (socklen_t)s7_integer(s7_list_ref(sc, args, 5));
- err = recvfrom(s7_integer(s7_car(args)),
+ err = recvfrom(s7_integer(s7_car(args)),
s7_c_pointer(s7_cadr(args)), /* void* buf */
- s7_integer(s7_caddr(args)),
- s7_integer(s7_cadddr(args)),
+ s7_integer(s7_caddr(args)),
+ s7_integer(s7_cadddr(args)),
(struct sockaddr *)s7_c_pointer(s7_list_ref(sc, args, 4)),
&res);
return(s7_list(sc, 2, s7_make_integer(sc, err), s7_make_integer(sc, (s7_int)res)));
@@ -1678,7 +1678,7 @@
static s7_pointer g_hostent_h_aliases(s7_scheme *sc, s7_pointer args)
{
s7_pointer p;
- char **str;
+ char **str;
struct hostent *h;
p = s7_nil(sc);
h = (struct hostent *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"hostent*\"), __func__, 1);
@@ -1689,7 +1689,7 @@
static s7_pointer g_servent_s_aliases(s7_scheme *sc, s7_pointer args)
{
s7_pointer p;
- char **str;
+ char **str;
struct servent *h;
p = s7_nil(sc);
h = (struct servent *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"servent*\"), __func__, 1);
@@ -1700,7 +1700,7 @@
static s7_pointer g_netent_n_aliases(s7_scheme *sc, s7_pointer args)
{
s7_pointer p;
- char **str;
+ char **str;
struct netent *h;
p = s7_nil(sc);
h = (struct netent *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"netvent*\"), __func__, 1);
@@ -1711,7 +1711,7 @@
static s7_pointer g_protoent_p_aliases(s7_scheme *sc, s7_pointer args)
{
s7_pointer p;
- char **str;
+ char **str;
struct protoent *h;
p = s7_nil(sc);
h = (struct protoent *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"protoent*\"), __func__, 1);
@@ -1724,7 +1724,7 @@
(C-function ("htons" g_htons "" 1))
(C-function ("ntohl" g_ntohl "" 1))
(C-function ("ntohs" g_ntohs "" 1))
-
+
(C-function ("getaddrinfo" g_getaddrinfo "" 3))
(C-function ("getnameinfo" g_getnameinfo "" 3))
(C-function ("addrinfo.make" g_addrinfo_make "" 0))
@@ -1738,7 +1738,7 @@
(C-function ("addrinfo.set_ai_protocol" g_addrinfo_set_ai_protocol "" 2))
(C-function ("addrinfo.ai_canonname" g_addrinfo_ai_canonname "" 1))
(C-function ("addrinfo.ai_next" g_addrinfo_ai_next "" 1))
-
+
(C-function ("hostent.h_name" g_hostent_h_name "" 1))
(C-function ("netent.n_name" g_netent_n_name "" 1))
(C-function ("servent.s_name" g_servent_s_name "" 1))
@@ -1750,14 +1750,14 @@
(C-function ("netent.n_net" g_netent_n_net "" 1))
(C-function ("servent.s_port" g_servent_s_port "" 1))
(C-function ("protoent.p_proto" g_protoent_p_proto "" 1))
-
+
(C-function ("hostent.h_aliases" g_hostent_h_aliases "" 1))
(C-function ("servent.s_aliases" g_servent_s_aliases "" 1))
(C-function ("netent.n_aliases" g_netent_n_aliases "" 1))
(C-function ("protoent.p_aliases" g_protoent_p_aliases "" 1))
;; (define h (gethostbyname "fatty4"))
;; ((*libc* 'hostent.h_aliases) h) -> ("localhost" "localhost.localdomain")
-
+
(C-function ("socketpair" g_socketpair "" 3))
(C-function ("getsockname" g_getsockname "" 3))
(C-function ("getpeername" g_getpeername "" 3))
@@ -1777,9 +1777,9 @@
int res, flags;
regex_t *regexp;
const char *str;
- if (!s7_is_string(s7_cadr(args)))
+ if (!s7_is_string(s7_cadr(args)))
return(s7_wrong_type_error(sc, s7_make_string_wrapper_with_length(sc, \"(*libc* 'regcomp)\", 17), 2, s7_cadr(args), string_string));
- if (!s7_is_integer(s7_caddr(args)))
+ if (!s7_is_integer(s7_caddr(args)))
return(s7_wrong_type_error(sc, s7_make_string_wrapper_with_length(sc, \"(*libc* 'regcomp)\", 17), 3, s7_caddr(args), integer_string));
regexp = (regex_t *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"regex_t*\"), __func__, 1);
str = (const char *)s7_string(s7_cadr(args));
@@ -1797,11 +1797,11 @@
s7_pointer subs;
s7_int *els;
- if (!s7_is_string(s7_cadr(args)))
+ if (!s7_is_string(s7_cadr(args)))
return(s7_wrong_type_error(sc, s7_make_string_wrapper_with_length(sc, \"(*libc* 'regexec)\", 17), 2, s7_cadr(args), string_string));
- if (!s7_is_integer(s7_caddr(args)))
+ if (!s7_is_integer(s7_caddr(args)))
return(s7_wrong_type_error(sc, s7_make_string_wrapper_with_length(sc, \"(*libc* 'regexec)\", 17), 3, s7_caddr(args), integer_string));
- if (!s7_is_integer(s7_cadddr(args)))
+ if (!s7_is_integer(s7_cadddr(args)))
return(s7_wrong_type_error(sc, s7_make_string_wrapper_with_length(sc, \"(*libc* 'regexec)\", 17), 4, s7_cadddr(args), integer_string));
regexp = (regex_t *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"regex_t*\"), __func__, 1);
str = (const char *)s7_string(s7_cadr(args));
@@ -1865,24 +1865,24 @@
(C-function ("regex.free" g_regex_free "" 1))
(C-function ("regfree" g_regfree "" 1))
(C-function ("regcomp" g_regcomp "" 3))
- (C-function ("regexec" g_regexec "" 4)) ; (regexec regex string nmatches flags)
+ (C-function ("regexec" g_regexec "" 4)) ; (regexec regex string nmatches flags)
(C-function ("regerror" g_regerror "" 2))
)
-
- ""
- (list "limits.h" "ctype.h" "errno.h" "float.h" "stdint.h" "locale.h" "stdlib.h" "string.h" "fcntl.h"
+
+ ""
+ (list "limits.h" "ctype.h" "errno.h" "float.h" "stdint.h" "locale.h" "stdlib.h" "string.h" "fcntl.h"
"fenv.h" "stdio.h" "sys/utsname.h" "unistd.h" "dirent.h" "ftw.h" "sys/stat.h" "time.h" "sys/time.h"
- "utime.h" "termios.h" "grp.h" "pwd.h" "fnmatch.h" "glob.h" "signal.h" "sys/wait.h" "netdb.h"
+ "utime.h" "termios.h" "grp.h" "pwd.h" "fnmatch.h" "glob.h" "signal.h" "sys/wait.h" "netdb.h"
"sys/resource.h" "regex.h"
(reader-cond ((provided? 'linux) "semaphore.h"))
(reader-cond ((not (provided? 'openbsd)) "wordexp.h"))
(reader-cond ((provided? 'freebsd) "sys/socket.h" "netinet/in.h"))
)
- ""
- (if (provided? 'linux) "-lrt"
+ ""
+ (if (provided? 'linux) "-lrt"
(if (provided? 'openbsd) "-pthread" ""))
"libc_s7")
-
+
(curlet))))
*libc*