GOOF----LE-8-2.0&]4h] gguile  gdefine-module*   gsystem gforeign  gfilenameS fsystem/foreign.scm gimportsS grnrs g bytevectors     gsrfi gsrfi-1   gsrfi-9   ggnu    gexportsS gvoid gfloat gdouble gshort gunsigned-short !gint "g unsigned-int #glong $g unsigned-long %gsize_t &gssize_t 'g ptrdiff_t (gint8 )guint8 *guint16 +gint16 ,guint32 -gint32 .guint64 /gint64 0gsizeof 1galignof 2g %null-pointer 3g null-pointer? 4gpointer? 5g make-pointer 6g pointer->scm 7g scm->pointer 8gpointer-address 9gpointer->bytevector :gbytevector->pointer ;gset-pointer-finalizer! pointer >gpointer->string ?gpointer->procedure @g make-c-struct Agparse-c-struct Bgdefine-wrapped-pointer-type C !"#$%&'()*+,-./0123456789:;<=>?@AB' Dgset-current-module ED FD Ggload-extension Hg string-append If libguile- Jgeffective-version Kfscm_init_foreign Lgdefined? Mgprocedure->pointer Ngcall-with-deferred-observers ON PN Qgmodule-export! RQ SQ Tgcurrent-module UT VT WM Xg* Ygerror Zfwhat machine is this? [gbytevector-pointer-ref \gbytevector-pointer-set! ]g"bytevector-ieee-single-native-set! ^] _] `g"bytevector-ieee-double-native-set! a` b` cgbytevector-s8-set! dc ec fgbytevector-u8-set! gf hf igbytevector-s16-native-set! ji ki lgbytevector-u16-native-set! ml nl ogbytevector-s32-native-set! po qo rgbytevector-u32-native-set! sr tr ugbytevector-s64-native-set! vu wu xgbytevector-u64-native-set! yx zx {g *writers* |g!bytevector-ieee-single-native-ref }| ~| g!bytevector-ieee-double-native-ref   gbytevector-s8-ref   gbytevector-u8-ref   gbytevector-s16-native-ref   gbytevector-u16-native-ref   gbytevector-s32-native-ref   gbytevector-u32-native-ref   gbytevector-s64-native-ref   gbytevector-u64-native-ref   g *readers* galign gwrite-c-struct gassv-ref ftoo few values ftoo many values g read-c-struct greverse gmake-bytevector gfold gmake-syntax-transformer   gmacro g $sc-dispatch   g_ gany  g datum->syntax ggensym fwrap g syntax-object gbegin gtop  gribcage  g%wrap   fl-40afcf54ff-e4   g type-name gpred gwrap gunwrap gprint   fl-40afcf54ff-d8 fl-40afcf54ff-d9 fl-40afcf54ff-da fl-40afcf54ff-db fl-40afcf54ff-dc   gstx  fl-40afcf54ff-d5    ghygiene   gdefine-record-type  gpointer   gdefine  glet  gptr->obj  gmake-weak-value-hash-table       glambda  gptr   gor  ghash-ref   go  g hash-set!    gset-record-type-printer!  gsyntax-violation   f-source expression failed to match any patternC5h0]4   C54F>"G4Gi4HiI4Ji55K>"G8h]45 Cgpointer  gfilenamefsystem/foreign.scm B  D  D   gnameg null-pointer?g documentationf+Return true if POINTER is the null pointer.C3R4LiM5$4PSVWhE]456=gfilenamefsystem/foreign.scm G   C>"G"40iX5 $5hz]6rgbv  goffset  gfilenamefsystem/foreign.scm P Q  Q   C" $5hz]6rgbv  goffset  gfilenamefsystem/foreign.scm R S  S   C" 4YiZ5[R40iX5 $8h]45Cgbv  goffset  gptr   gfilenamefsystem/foreign.scm X  Y 1  Y    C" $8h]45Cgbv  goffset  gptr   gfilenamefsystem/foreign.scm Z  [ 1  [    C" 4YiZ5\Ri_ib(ie)ih+ik*in-iq,it/iw.izX\i {Ri~i(i)i+i*i-i,i/i.iX[i Rh]Cgoff  g alignment  gfilenamefsystem/foreign.scm y  z   z  z  z   gnamegalignCR1{0Y h>],"$$r4455$4>"G"445>"G45"6(C 6"X6gbv  goffset  gtypes   gvals   goffset   gtypes   gvals   gtype   goffset  '  gfilenamefsystem/foreign.scm |  }   ~    ~         # '  '  , 0  1 : & = 2 B O P _ 1 d o  v y % | 1     } #  gnamegwrite-c-structCR10hx]+"c$V445545$45"4455"6"gbv  xgoffset  xgtypes   xgoffset   igtypes   igvals   igtype   cgoffset  cgfilenamefsystem/foreign.scm           #   %  , / % 2  6  7  @ / B  G  H  V  Y c  i  i  n / x   x gnameg read-c-structCR0:h0] 445 54 >"G6gtypes  .gvals  .gbv   .gfilenamefsystem/foreign.scm         .   . gnameg make-c-structC@R01h ]454455Cgtype  gtotal  gfilenamefsystem/foreign.scm      &       C9h ] 4 545 6gforeign  gtypes  gsize  gfilenamefsystem/foreign.scm          gnamegparse-c-structCAR4Bhh] 4455       Cg type-name  egpred  egwrap   egunwrap   egprint   egtmp   egfilenamefsystem/foreign.scm    2 :  2      e Ch(] 45$@6gstx  "gtmp "gfilenamefsystem/foreign.scm   " g documentationfSDefine helper procedures to wrap pointer objects into Scheme objects with a disjoint type. Specifically, this macro defines PRED, a predicate for the new Scheme type, WRAP, a procedure that takes a pointer object and returns an object that satisfies PRED, and UNWRAP which does the reverse. PRINT must name a user-defined object printer.C5BRCgm  ,gkey  2gkey > gfilenamefsystem/foreign.scm   - :  2 :  8 : ! 9 : - A :  C ;  H :  8 B 9 F  ? F  A F  E F F G   O   O   O   O  ' T - T  / T 5 N 6 W  < W  > W  > W   \  \   \  V  _   ^  l  d k " y 9 |  (  0 C6