/* >>>> Generated by mkmark.rkt from mzmarksrc.c <<<< */

static int mark_indexed_string_SIZE(void *p, struct NewGC *gc) {
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
  gcBYTES_TO_WORDS(sizeof(Scheme_Indexed_String));
#else
  return 0;
#endif
}

static int mark_indexed_string_MARK(void *p, struct NewGC *gc) {
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
  Scheme_Indexed_String *is = (Scheme_Indexed_String *)p;
    
  gcMARK2(is->string, gc);

# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
  return 0;
# else
  return
  gcBYTES_TO_WORDS(sizeof(Scheme_Indexed_String));
# endif
#endif
}

static int mark_indexed_string_FIXUP(void *p, struct NewGC *gc) {
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
  Scheme_Indexed_String *is = (Scheme_Indexed_String *)p;
    
  gcFIXUP2(is->string, gc);

# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
  return 0;
# else
  return
  gcBYTES_TO_WORDS(sizeof(Scheme_Indexed_String));
# endif
#endif
}

#define mark_indexed_string_IS_ATOMIC 0
#define mark_indexed_string_IS_CONST_SIZE 1


static int mark_user_input_SIZE(void *p, struct NewGC *gc) {
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
  gcBYTES_TO_WORDS(sizeof(User_Input_Port));
#else
  return 0;
#endif
}

static int mark_user_input_MARK(void *p, struct NewGC *gc) {
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
  User_Input_Port *uip = (User_Input_Port *)p;

  gcMARK2(uip->read_proc, gc);
  gcMARK2(uip->peek_proc, gc);
  gcMARK2(uip->progress_evt_proc, gc);
  gcMARK2(uip->peeked_read_proc, gc);
  gcMARK2(uip->location_proc, gc);
  gcMARK2(uip->count_lines_proc, gc);
  gcMARK2(uip->buffer_mode_proc, gc);
  gcMARK2(uip->close_proc, gc);
  gcMARK2(uip->reuse_str, gc);
  gcMARK2(uip->peeked, gc);
  gcMARK2(uip->prefix_pipe, gc);
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
  return 0;
# else
  return
  gcBYTES_TO_WORDS(sizeof(User_Input_Port));
# endif
#endif
}

static int mark_user_input_FIXUP(void *p, struct NewGC *gc) {
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
  User_Input_Port *uip = (User_Input_Port *)p;

  gcFIXUP2(uip->read_proc, gc);
  gcFIXUP2(uip->peek_proc, gc);
  gcFIXUP2(uip->progress_evt_proc, gc);
  gcFIXUP2(uip->peeked_read_proc, gc);
  gcFIXUP2(uip->location_proc, gc);
  gcFIXUP2(uip->count_lines_proc, gc);
  gcFIXUP2(uip->buffer_mode_proc, gc);
  gcFIXUP2(uip->close_proc, gc);
  gcFIXUP2(uip->reuse_str, gc);
  gcFIXUP2(uip->peeked, gc);
  gcFIXUP2(uip->prefix_pipe, gc);
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
  return 0;
# else
  return
  gcBYTES_TO_WORDS(sizeof(User_Input_Port));
# endif
#endif
}

#define mark_user_input_IS_ATOMIC 0
#define mark_user_input_IS_CONST_SIZE 1


static int mark_user_output_SIZE(void *p, struct NewGC *gc) {
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
  gcBYTES_TO_WORDS(sizeof(User_Output_Port));
#else
  return 0;
#endif
}

static int mark_user_output_MARK(void *p, struct NewGC *gc) {
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
  User_Output_Port *uop = (User_Output_Port *)p;

  gcMARK2(uop->evt, gc);
  gcMARK2(uop->write_evt_proc, gc);
  gcMARK2(uop->write_proc, gc);
  gcMARK2(uop->write_special_evt_proc, gc);
  gcMARK2(uop->write_special_proc, gc);
  gcMARK2(uop->location_proc, gc);
  gcMARK2(uop->count_lines_proc, gc);
  gcMARK2(uop->buffer_mode_proc, gc);
  gcMARK2(uop->close_proc, gc);
  gcMARK2(uop->buffer_pipe, gc);
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
  return 0;
# else
  return
  gcBYTES_TO_WORDS(sizeof(User_Output_Port));
# endif
#endif
}

static int mark_user_output_FIXUP(void *p, struct NewGC *gc) {
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
  User_Output_Port *uop = (User_Output_Port *)p;

  gcFIXUP2(uop->evt, gc);
  gcFIXUP2(uop->write_evt_proc, gc);
  gcFIXUP2(uop->write_proc, gc);
  gcFIXUP2(uop->write_special_evt_proc, gc);
  gcFIXUP2(uop->write_special_proc, gc);
  gcFIXUP2(uop->location_proc, gc);
  gcFIXUP2(uop->count_lines_proc, gc);
  gcFIXUP2(uop->buffer_mode_proc, gc);
  gcFIXUP2(uop->close_proc, gc);
  gcFIXUP2(uop->buffer_pipe, gc);
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
  return 0;
# else
  return
  gcBYTES_TO_WORDS(sizeof(User_Output_Port));
# endif
#endif
}

#define mark_user_output_IS_ATOMIC 0
#define mark_user_output_IS_CONST_SIZE 1


