/*===========================================================================*/
/*   (Foreign/access.scm)                                                    */
/*   Bigloo (2.6b)                                                           */
/*   Inria -- Sophia Antipolis (c)       Mon Dec 15 12:14:36 CET 2003        */
/*===========================================================================*/
/* COMPILATION: (/users/serrano/prgm/project/bigloo/bin/bigloo -q -afile .afile -fsharing -fno-reflection -cc gcc-2.95 -lib-dir /users/serrano/prgm/project/bigloo/lib/2.6b -unsafev -no-hello -O2 -rm -unsafe -s -indent Foreign/access.scm)*/
/* GC selection */
#define THE_GC BOEHM_GC

#include <bigloo.h>


/* Object type definitions */
typedef struct BgL_typez00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_idz00;
   obj_t BgL_namez00;
   obj_t BgL_siza7eza7;
   obj_t BgL_classz00;
   obj_t BgL_coercezd2tozd2;
   obj_t BgL_parentsz00;
   bool_t BgL_initzf3zf3;
   bool_t BgL_magiczf3zf3;
   obj_t BgL_z42z42;
   obj_t BgL_aliasz00;
   obj_t BgL_pointedzd2tozd2byz00;
   obj_t BgL_tvectorz00;
   obj_t BgL_locationz00;
   obj_t BgL_importzd2locationzd2;
} *BgL_typez00_bglt;


BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zzforeign_accessz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_typez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzforeign_caliasz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzforeign_cenumz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzforeign_copaquez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzforeign_cfunctionz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzforeign_cpointerz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzforeign_cstructz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__objectz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__readerz00(long, char *);
static obj_t BGl_methodzd2initzd2zzforeign_accessz00();
BGL_IMPORT obj_t BGl_addzd2genericz12zc0zz__objectz00(obj_t, obj_t);
BGL_EXPORTED_DECL obj_t BGl_makezd2ctypezd2accessesz12z12zzforeign_accessz00(BgL_typez00_bglt, BgL_typez00_bglt, obj_t);
static obj_t BGl__makezd2ctypezd2accessesz12zd2default1090zc0zzforeign_accessz00(obj_t, obj_t, obj_t, obj_t);
static obj_t BGl__makezd2ctypezd2accessesz12z12zzforeign_accessz00(obj_t, obj_t, obj_t, obj_t);
static obj_t BGl_importedzd2moduleszd2initz00zzforeign_accessz00();
static obj_t BGl_requirezd2initializa7ationz75zzforeign_accessz00 = BUNSPEC;
static obj_t BGl_libraryzd2moduleszd2initz00zzforeign_accessz00();
static obj_t BGl_toplevelzd2initzd2zzforeign_accessz00();
static obj_t *__cnst;


DEFINE_EXPORT_GENERIC( BGl_makezd2ctypezd2accessesz12zd2envzc0zzforeign_accessz00, BgL_bgl__makeza7d2ctypeza7d2accessesza712za712za7za7foreign_accessza7001140za7, BGl__makezd2ctypezd2accessesz12z12zzforeign_accessz00, 0L, 3 );
DEFINE_STATIC_PROCEDURE( BGl_makezd2ctypezd2accessesz12zd2default1090zd2envz12zzforeign_accessz00, BgL_bgl__makeza7d2ctypeza7d2accessesza712za7d2default1090za7c0za7za7foreign_accessza7001141z00, BGl__makezd2ctypezd2accessesz12zd2default1090zc0zzforeign_accessz00, 0L, 3 );



/* module-initialization */
BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zzforeign_accessz00(long BgL_checksumz00_116, char * BgL_fromz00_117)
{ AN_OBJECT;
{ 
if(
CBOOL(BGl_requirezd2initializa7ationz75zzforeign_accessz00))
{ 
BGl_requirezd2initializa7ationz75zzforeign_accessz00 = 
BBOOL(((bool_t)0)); 
BGl_libraryzd2moduleszd2initz00zzforeign_accessz00(); 
BGl_importedzd2moduleszd2initz00zzforeign_accessz00(); 
BGl_methodzd2initzd2zzforeign_accessz00(); 
return BUNSPEC;}  else 
{ 
return BUNSPEC;} } 
}



/* library-modules-init */
obj_t BGl_libraryzd2moduleszd2initz00zzforeign_accessz00()
{ AN_OBJECT;
{ /* ./Foreign/access.scm 19 */
BGl_modulezd2initializa7ationz75zz__objectz00(((long)0), "foreign_access"); 
BGl_modulezd2initializa7ationz75zz__readerz00(((long)0), "foreign_access"); 
return BUNSPEC;} 
}



/* toplevel-init */
obj_t BGl_toplevelzd2initzd2zzforeign_accessz00()
{ AN_OBJECT;
{ /* ./Foreign/access.scm 19 */
return BUNSPEC;} 
}



/* method-init */
obj_t BGl_methodzd2initzd2zzforeign_accessz00()
{ AN_OBJECT;
{ /* ./Foreign/access.scm 19 */
return 
BGl_addzd2genericz12zc0zz__objectz00(BGl_makezd2ctypezd2accessesz12zd2envzc0zzforeign_accessz00, BGl_makezd2ctypezd2accessesz12zd2default1090zd2envz12zzforeign_accessz00);} 
}



/* make-ctype-accesses! */
BGL_EXPORTED_DEF obj_t BGl_makezd2ctypezd2accessesz12z12zzforeign_accessz00(BgL_typez00_bglt BgL_whatz00_1, BgL_typez00_bglt BgL_whoz00_2, obj_t BgL_locz00_3)
{ AN_OBJECT;
{ /* ./Foreign/access.scm 34 */
{ /* ./Foreign/access.scm 34 */
obj_t BgL_method1091z00_80;
{ /* ./Foreign/access.scm 34 */
BgL_objectz00_bglt BgL_objz00_81;
BgL_objz00_81 = 
(BgL_objectz00_bglt)(BgL_whatz00_1); 
{ /* ./Foreign/access.scm 34 */
long BgL_objzd2classzd2numz00_82;
BgL_objzd2classzd2numz00_82 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_81); 
{ /* ./Foreign/access.scm 34 */
obj_t BgL_arg2017z00_83;
{ /* ./Foreign/access.scm 34 */
int BgL_auxz00_129;
BgL_auxz00_129 = 
(int)(((long)1)); 
BgL_arg2017z00_83 = 
PROCEDURE_REF(BGl_makezd2ctypezd2accessesz12zd2envzc0zzforeign_accessz00, BgL_auxz00_129); } 
{ /* ./Foreign/access.scm 34 */
int BgL_offsetz00_86;
BgL_offsetz00_86 = 
(int)(BgL_objzd2classzd2numz00_82); 
{ /* ./Foreign/access.scm 34 */
long BgL_offsetz00_87;
{ /* ./Foreign/access.scm 34 */
long BgL_auxz00_133;
BgL_auxz00_133 = 
(long)(BgL_offsetz00_86); 
BgL_offsetz00_87 = 
(BgL_auxz00_133-OBJECT_TYPE); } 
{ /* ./Foreign/access.scm 34 */
long BgL_modz00_88;
{ /* ./Foreign/access.scm 34 */
int BgL_arg2028z00_89;
BgL_arg2028z00_89 = 
(int)(((long)8)); 
{ /* ./Foreign/access.scm 34 */
long BgL_n2z00_97;
BgL_n2z00_97 = 
(long)(BgL_arg2028z00_89); 
BgL_modz00_88 = 
(BgL_offsetz00_87/BgL_n2z00_97); } } 
{ /* ./Foreign/access.scm 34 */
long BgL_restz00_90;
{ /* ./Foreign/access.scm 34 */
int BgL_arg2024z00_91;
BgL_arg2024z00_91 = 
(int)(((long)8)); 
{ /* ./Foreign/access.scm 34 */
long BgL_n2z00_100;
BgL_n2z00_100 = 
(long)(BgL_arg2024z00_91); 
BgL_restz00_90 = 
(BgL_offsetz00_87%BgL_n2z00_100); } } 
{ /* ./Foreign/access.scm 34 */

{ /* ./Foreign/access.scm 34 */
obj_t BgL_bucketz00_92;
{ /* ./Foreign/access.scm 34 */
int BgL_kz00_102;
BgL_kz00_102 = 
(int)(BgL_modz00_88); 
BgL_bucketz00_92 = 
VECTOR_REF(BgL_arg2017z00_83,BgL_kz00_102); } 
{ /* ./Foreign/access.scm 34 */
int BgL_kz00_104;
BgL_kz00_104 = 
(int)(BgL_restz00_90); 
BgL_method1091z00_80 = 
VECTOR_REF(BgL_bucketz00_92,BgL_kz00_104); } } } } } } } } } } 
return 
PROCEDURE_ENTRY(BgL_method1091z00_80)(BgL_method1091z00_80, 
(obj_t)(BgL_whatz00_1), 
(obj_t)(BgL_whoz00_2), BgL_locz00_3, BEOA);} } 
}



/* _make-ctype-accesses! */
obj_t BGl__makezd2ctypezd2accessesz12z12zzforeign_accessz00(obj_t BgL_envz00_105, obj_t BgL_whatz00_106, obj_t BgL_whoz00_107, obj_t BgL_locz00_108)
{ AN_OBJECT;
{ /* ./Foreign/access.scm 34 */
return 
BGl_makezd2ctypezd2accessesz12z12zzforeign_accessz00(
(BgL_typez00_bglt)(BgL_whatz00_106), 
(BgL_typez00_bglt)(BgL_whoz00_107), BgL_locz00_108);} 
}



/* _make-ctype-accesses!-default1090 */
obj_t BGl__makezd2ctypezd2accessesz12zd2default1090zc0zzforeign_accessz00(obj_t BgL_envz00_109, obj_t BgL_whatz00_110, obj_t BgL_whoz00_111, obj_t BgL_locz00_112)
{ AN_OBJECT;
{ /* ./Foreign/access.scm 19 */
return BNIL;} 
}



/* imported-modules-init */
obj_t BGl_importedzd2moduleszd2initz00zzforeign_accessz00()
{ AN_OBJECT;
{ /* ./Foreign/access.scm 19 */
BGl_modulezd2initializa7ationz75zztype_typez00(((long)19090), "foreign_access"); 
BGl_modulezd2initializa7ationz75zzforeign_caliasz00(((long)30641), "foreign_access"); 
BGl_modulezd2initializa7ationz75zzforeign_cenumz00(((long)5809), "foreign_access"); 
BGl_modulezd2initializa7ationz75zzforeign_copaquez00(((long)12463), "foreign_access"); 
BGl_modulezd2initializa7ationz75zzforeign_cfunctionz00(((long)28250), "foreign_access"); 
BGl_modulezd2initializa7ationz75zzforeign_cpointerz00(((long)39810), "foreign_access"); 
return 
BGl_modulezd2initializa7ationz75zzforeign_cstructz00(((long)18814), "foreign_access");} 
}

