gm2-libs/wrapc (The GNU Modula-2 Compiler)

#### 4.1.64 gm2-libs/wrapc ¶

    DEFINITION MODULE wrapc ;

    FROM SYSTEM IMPORT ADDRESS ;

    (*
       strtime - returns the C string for the equivalent C asctime
                 function.
    *)

    PROCEDURE strtime () : ADDRESS ;

    (*
       filesize - assigns the size of a file, f, into low, high and
                  returns zero if successful.
    *)

    PROCEDURE filesize (f: INTEGER; VAR low, high: CARDINAL) : INTEGER ;

    (*
       fileinode - return the inode associated with file, f.
    *)

    PROCEDURE fileinode (f: INTEGER; VAR low, high: CARDINAL) : INTEGER ;

    (*
       filemtime - returns the mtime of a file, f.
    *)

    PROCEDURE filemtime (f: INTEGER) : INTEGER ;

    (*
       getrand - returns a random number between 0..n-1
    *)

    PROCEDURE getrand (n: INTEGER) : INTEGER ;

    (*
       getusername - returns a C string describing the current user.
    *)

    PROCEDURE getusername () : ADDRESS ;

    (*
       getnameuidgid - fills in the, uid, and, gid, which represents
                       user, name.
    *)

    PROCEDURE getnameuidgid (name: ADDRESS; VAR uid, gid: INTEGER) ;

    (*
       in C these procedure functions are really macros, so we provide
       real C functions and let gm2 call these if the builtins
       are unavailable.
    *)

    PROCEDURE signbit (r: REAL) : INTEGER ;
    PROCEDURE signbitf (s: SHORTREAL) : INTEGER ;
    PROCEDURE signbitl (l: LONGREAL) : INTEGER ;

    (*
       isfinite - provide non builtin alternative to the gcc builtin isfinite.
                  Returns 1 if x is finite and 0 if it is not.
    *)

    PROCEDURE isfinite (x: REAL) : INTEGER ;

    (*
       isfinitef - provide non builtin alternative to the gcc builtin isfinite.
                   Returns 1 if x is finite and 0 if it is not.
    *)

    PROCEDURE isfinitef (x: SHORTREAL) : INTEGER ;

    (*
       isfinitel - provide non builtin alternative to the gcc builtin isfinite.
                   Returns 1 if x is finite and 0 if it is not.
    *)

    PROCEDURE isfinitel (x: LONGREAL) : INTEGER ;

    (*
       isnan - provide non builtin alternative to the gcc builtin isnan.
               Returns 1 if x is a NaN otherwise return 0.
    *)

    PROCEDURE isnan (x: REAL) : INTEGER ;

    (*
       isnanf - provide non builtin alternative to the gcc builtin isnanf.
                Returns 1 if x is a NaN otherwise return 0.
    *)

    PROCEDURE isnanf (x: SHORTREAL) : INTEGER ;

    (*
       isnanl - provide non builtin alternative to the gcc builtin isnanl.
                Returns 1 if x is a NaN otherwise return 0.
    *)

    PROCEDURE isnanl (x: LONGREAL) : INTEGER ;

    (*
       SeekSet - return the system libc SEEK_SET value.
    *)

    PROCEDURE SeekSet () : INTEGER ;

    (*
        SeekEnd - return the system libc SEEK_END value.
    *)

    PROCEDURE SeekEnd () : INTEGER ;

    (*
       ReadOnly - return the system value of O_RDONLY.
    *)

    PROCEDURE ReadOnly () : BITSET ;

    (*
       WriteOnly - return the system value of O_WRONLY.
    *)

    PROCEDURE WriteOnly () : BITSET ;

    END wrapc.