/*===========================================================================*/
/*   (Llib/semaphore.scm)                                                    */
/*   Bigloo (4.7a)                                                           */
/*   Inria -- Sophia Antipolis (c)       Thu Feb 19 09:11:58 AM CET 2026     */
/*===========================================================================*/
/* COMPILATION: (/home/serrano/prgm/project/bigloo/4.7a/bin/bigloo -srfi bigloo-safe -O3 -fcfa-arithmetic -q -lib-dir /home/serrano/prgm/project/bigloo/4.7a/lib/bigloo/4.7a +rm -O3 -mklib -cc gcc -fsharing -q -unsafev -eval (set! *indent* 4) -stdc -c Llib/semaphore.scm -indent -o objs/obj_s/Llib/semaphore.c) */
/* GC selection */
#define THE_GC BOEHM_GC

/* traces mode */
#define BIGLOO_TRACE 0

/* standard Bigloo include */
#include <bigloo.h>

#ifdef __cplusplus
extern "C" {
#endif
#ifndef BGL_MODULE_TYPE_DEFINITIONS
#define BGL_MODULE_TYPE_DEFINITIONS
#ifndef BGL___SEMAPHORE_TYPE_DEFINITIONS
#define BGL___SEMAPHORE_TYPE_DEFINITIONS
#endif // BGL___SEMAPHORE_TYPE_DEFINITIONS
#endif // BGL_MODULE_TYPE_DEFINITIONS

static obj_t BGl_requirezd2initializa7ationz75zz__semaphorez00 = BUNSPEC;
BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zz__semaphorez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zz__errorz00(long, char *);
BGL_EXPORTED_DECL bool_t BGl_semaphorezf3zf3zz__semaphorez00(obj_t);
static obj_t BGl_genericzd2initzd2zz__semaphorez00(void);
static obj_t BGl_z62semaphorezf3z91zz__semaphorez00(obj_t, obj_t);
static obj_t BGl_importedzd2moduleszd2initz00zz__semaphorez00(void);
static obj_t BGl_gczd2rootszd2initz00zz__semaphorez00(void);
static obj_t BGl_objectzd2initzd2zz__semaphorez00(void);
static obj_t BGl_methodzd2initzd2zz__semaphorez00(void);
static obj_t *__cnst;


BGL_DEFINE_STRING(BGl_string1594z00zz__semaphorez00, BgL_bgl_string1594za700za7za7_1595za7, "__semaphore", 11 );
DEFINE_EXPORT_BGL_PROCEDURE(BGl_semaphorezf3zd2envz21zz__semaphorez00, BgL_bgl_za762semaphoreza7f3za71596za7, BGl_z62semaphorezf3z91zz__semaphorez00, 0L, BUNSPEC, 1);

/* contant bindings */
static void bgl_constant_bindings() {
BGL_BIND_PROCEDURE(BGl_semaphorezf3zd2envz21zz__semaphorez00, BgL_bgl_za762semaphoreza7f3za71596za7);
BGL_BIND_STRING(BGl_string1594z00zz__semaphorez00, BgL_bgl_string1594za700za7za7_1595za7);
}

/* GC roots registration */
static obj_t bgl_gc_roots_register() {
#if defined( BGL_GC_ROOTS )
#define ADD_ROOT( addr ) (addr > roots_max ? roots_max = addr : (addr < roots_min ? roots_min = addr : 0))
void *roots_min = (void*)ULONG_MAX, *roots_max = 0;
ADD_ROOT( (void *)(&BGl_requirezd2initializa7ationz75zz__semaphorez00) );
#undef ADD_ROOT
if( roots_max > 0 ) GC_add_roots( roots_min, ((void **)roots_max) + 1 );
#endif
return BUNSPEC;
}



/* module-initialization */
BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zz__semaphorez00(long BgL_checksumz00_1704, char * BgL_fromz00_1705)
{
{ 
if(
CBOOL(BGl_requirezd2initializa7ationz75zz__semaphorez00))
{ 
BGl_requirezd2initializa7ationz75zz__semaphorez00 = 
BBOOL(((bool_t)0)); 
bgl_constant_bindings(); 
BGl_gczd2rootszd2initz00zz__semaphorez00(); 
BGl_importedzd2moduleszd2initz00zz__semaphorez00(); 
return 
BGl_methodzd2initzd2zz__semaphorez00();}  else 
{ 
return BUNSPEC;} } 

}



/* gc-roots-init */
obj_t BGl_gczd2rootszd2initz00zz__semaphorez00(void)
{
{ /* Llib/semaphore.scm 15 */
return 
bgl_gc_roots_register();} 

}



/* semaphore? */
BGL_EXPORTED_DEF bool_t BGl_semaphorezf3zf3zz__semaphorez00(obj_t BgL_oz00_3)
{
{ /* Llib/semaphore.scm 53 */
return 
BGL_SEMAPHOREP(BgL_oz00_3);} 

}



/* &semaphore? */
obj_t BGl_z62semaphorezf3z91zz__semaphorez00(obj_t BgL_envz00_1702, obj_t BgL_oz00_1703)
{
{ /* Llib/semaphore.scm 53 */
return 
BBOOL(
BGl_semaphorezf3zf3zz__semaphorez00(BgL_oz00_1703));} 

}



/* object-init */
obj_t BGl_objectzd2initzd2zz__semaphorez00(void)
{
{ /* Llib/semaphore.scm 15 */
return BUNSPEC;} 

}



/* generic-init */
obj_t BGl_genericzd2initzd2zz__semaphorez00(void)
{
{ /* Llib/semaphore.scm 15 */
return BUNSPEC;} 

}



/* method-init */
obj_t BGl_methodzd2initzd2zz__semaphorez00(void)
{
{ /* Llib/semaphore.scm 15 */
return BUNSPEC;} 

}



/* imported-modules-init */
obj_t BGl_importedzd2moduleszd2initz00zz__semaphorez00(void)
{
{ /* Llib/semaphore.scm 15 */
return 
BGl_modulezd2initializa7ationz75zz__errorz00(88804785L, 
BSTRING_TO_STRING(BGl_string1594z00zz__semaphorez00));} 

}

#ifdef __cplusplus
}
#endif
