/* This is an Scheme48/C interface file, 
** automatically generated by a hacked version of cig 3.0.
step 4
*/

#include <stdio.h>
#include <stdlib.h> /* For malloc. */
#include "libcig.h"

#include "time1.h"
s48_value df_time_plus_ticks(s48_value mv_vec)
{
    extern s48_value time_plus_ticks(int *, int *, int *, int *);
    s48_value ret1;
    s48_value r1;
    int r2;
    int r3;
    int r4;
    int r5;

    
    r1 = time_plus_ticks(&r2, &r3, &r4, &r5);
    ret1 = r1;
    S48_VECTOR_SET(mv_vec,0,s48_enter_fixnum(r2));
    S48_VECTOR_SET(mv_vec,1,s48_enter_fixnum(r3));
    S48_VECTOR_SET(mv_vec,2,s48_enter_fixnum(r4));
    S48_VECTOR_SET(mv_vec,3,s48_enter_fixnum(r5));
    return ret1;
}

s48_value df_scheme_time(s48_value mv_vec)
{
    extern s48_value scheme_time(int *, int *);
    s48_value ret1;
    s48_value r1;
    int r2;
    int r3;

    
    r1 = scheme_time(&r2, &r3);
    ret1 = r1;
    S48_VECTOR_SET(mv_vec,0,s48_enter_fixnum(r2));
    S48_VECTOR_SET(mv_vec,1,s48_enter_fixnum(r3));
    return ret1;
}

s48_value df_date2time(s48_value g1, s48_value g2, s48_value g3, s48_value g4, s48_value g5, s48_value g6, s48_value g7, s48_value g8, s48_value g9, s48_value mv_vec)
{
    extern s48_value date2time(int , int , int , int , int , int , s48_value , s48_value , int , int *, int *);
    s48_value ret1;
    s48_value r1;
    int r2;
    int r3;

    
    r1 = date2time(s48_extract_fixnum(g1), s48_extract_fixnum(g2), s48_extract_fixnum(g3), s48_extract_fixnum(g4), s48_extract_fixnum(g5), s48_extract_fixnum(g6), g7, g8, EXTRACT_BOOLEAN(g9), &r2, &r3);
    ret1 = r1;
    S48_VECTOR_SET(mv_vec,0,s48_enter_fixnum(r2));
    S48_VECTOR_SET(mv_vec,1,s48_enter_fixnum(r3));
    return ret1;
}

s48_value df_time2date(s48_value g1, s48_value g2, s48_value g3, s48_value mv_vec)
{
    extern s48_value time2date(int , int , s48_value , int *, int *, int *, int *, int *, int *, const char **, int *, int *, int *, int *);
    s48_value ret1;
    s48_value r1;
    int r2;
    int r3;
    int r4;
    int r5;
    int r6;
    int r7;
    const char *r8;
    int r9;
    int r10;
    int r11;
    int r12;

    
    r1 = time2date(s48_extract_fixnum(g1), s48_extract_fixnum(g2), g3, &r2, &r3, &r4, &r5, &r6, &r7, &r8, &r9, &r10, &r11, &r12);
    ret1 = r1;
    S48_VECTOR_SET(mv_vec,0,s48_enter_fixnum(r2));
    S48_VECTOR_SET(mv_vec,1,s48_enter_fixnum(r3));
    S48_VECTOR_SET(mv_vec,2,s48_enter_fixnum(r4));
    S48_VECTOR_SET(mv_vec,3,s48_enter_fixnum(r5));
    S48_VECTOR_SET(mv_vec,4,s48_enter_fixnum(r6));
    S48_VECTOR_SET(mv_vec,5,s48_enter_fixnum(r7));
    SetAlienVal(S48_CAR(S48_VECTOR_REF(mv_vec,6)),(long) r8); S48_SET_CDR(S48_VECTOR_REF(mv_vec,6),strlen_or_false(r8));//str-and-len
    S48_VECTOR_SET(mv_vec,7,s48_enter_fixnum(r9));
    S48_VECTOR_SET(mv_vec,8,ENTER_BOOLEAN(r10));
    S48_VECTOR_SET(mv_vec,9,s48_enter_fixnum(r11));
    S48_VECTOR_SET(mv_vec,10,s48_enter_fixnum(r12));
    return ret1;
}

s48_value df_format_date(s48_value g1, s48_value g2, s48_value g3, s48_value g4, s48_value g5, s48_value g6, s48_value g7, s48_value g8, s48_value g9, s48_value g10, s48_value g11, s48_value mv_vec)
{
    extern s48_value format_date(const char *, int , int , int , int , int , int , s48_value , int , int , int , const char **);
    s48_value ret1;
    s48_value r1;
    const char *r2;

    
    r1 = format_date(s48_extract_string(g1), s48_extract_fixnum(g2), s48_extract_fixnum(g3), s48_extract_fixnum(g4), s48_extract_fixnum(g5), s48_extract_fixnum(g6), s48_extract_fixnum(g7), g8, EXTRACT_BOOLEAN(g9), s48_extract_fixnum(g10), s48_extract_fixnum(g11), &r2);
    ret1 = r1;
    SetAlienVal(S48_CAR(S48_VECTOR_REF(mv_vec,0)),(long) r2); S48_SET_CDR(S48_VECTOR_REF(mv_vec,0),strlen_or_false(r2));//str-and-len
    return ret1;
}

s48_value s48_init_time(void)
{
    S48_EXPORT_FUNCTION(df_time_plus_ticks);
    S48_EXPORT_FUNCTION(df_scheme_time);
    S48_EXPORT_FUNCTION(df_date2time);
    S48_EXPORT_FUNCTION(df_time2date);
    S48_EXPORT_FUNCTION(df_format_date);

    return S48_UNSPECIFIC;
}