/*
** Automatically generated from `bit_buffer.m'
** by the Mercury compiler,
** version 14.01.1, configured for x86_64--netbsd.
** Do not edit.
**
** The autoconfigured grade settings governing
** the generation of this C file were
**
** TAG_BITS=3
** UNBOXED_FLOAT=yes
** PREGENERATED_DIST=no
** HIGHLEVEL_CODE=yes
**
** END_OF_C_GRADE_INFO
*/


/* :- module bit_buffer. */
/* :- interface. */

#ifndef MR_HEADER_GUARD_bit_buffer
#define MR_HEADER_GUARD_bit_buffer

#ifdef __cplusplus
extern "C" {
#endif

#include "mercury.h"


#ifndef BIT_BUFFER_DECL_GUARD
#define BIT_BUFFER_DECL_GUARD
#line 137 "bit_buffer.m"

typedef struct {
    MR_BitmapPtr    ML_bit_buffer_bitmap;
    MR_Integer      ML_bit_buffer_pos;
    MR_Integer      ML_bit_buffer_size;
    MR_Word         ML_bit_buffer_use_stream;
    MR_Word         ML_bit_buffer_stream;
    MR_Word         ML_bit_buffer_state;
    MR_Word         ML_bit_buffer_filled_bitmaps;
    MR_Word         ML_bit_buffer_read_status;
} ML_BitBuffer;

typedef ML_BitBuffer *ML_BitBufferPtr;

#endif




#line 55 "bit_buffer.mih.tmp"
extern const MR_TypeCtorInfo_Struct mercury__bit_buffer__bit_buffer__type_ctor_info_bit_buffer_3;

#line 58 "bit_buffer.mih.tmp"
extern const MR_TypeCtorInfo_Struct mercury__bit_buffer__bit_buffer__type_ctor_info_bit_buffer_2;

#line 61 "bit_buffer.mih.tmp"
extern const MR_TypeCtorInfo_Struct mercury__bit_buffer__bit_buffer__type_ctor_info_error_state_0;

#line 64 "bit_buffer.mih.tmp"
extern const MR_TypeCtorInfo_Struct mercury__bit_buffer__bit_buffer__type_ctor_info_error_stream_0;

#line 67 "bit_buffer.mih.tmp"
extern const MR_TypeCtorInfo_Struct mercury__bit_buffer__bit_buffer__type_ctor_info_error_stream_error_0;

#line 70 "bit_buffer.mih.tmp"
extern const MR_BaseTypeclassInfo base_typeclass_info_stream__writer__arity3__bit_buffer__error_stream__arity0__bitmap__slice__arity0__bit_buffer__error_state__arity0__[6];

#line 73 "bit_buffer.mih.tmp"
extern const MR_BaseTypeclassInfo base_typeclass_info_stream__stream__arity2__bit_buffer__error_stream__arity0__bit_buffer__error_state__arity0__[6];

#line 76 "bit_buffer.mih.tmp"
extern const MR_BaseTypeclassInfo base_typeclass_info_stream__output__arity2__bit_buffer__error_stream__arity0__bit_buffer__error_state__arity0__[6];

#line 79 "bit_buffer.mih.tmp"
extern const MR_BaseTypeclassInfo base_typeclass_info_stream__input__arity2__bit_buffer__error_stream__arity0__bit_buffer__error_state__arity0__[5];

#line 82 "bit_buffer.mih.tmp"
extern const MR_BaseTypeclassInfo base_typeclass_info_stream__error__arity1__bit_buffer__error_stream_error__arity0__[6];

#line 85 "bit_buffer.mih.tmp"
extern const MR_BaseTypeclassInfo base_typeclass_info_stream__bulk_reader__arity5__bit_buffer__error_stream__arity0__int__arity0__bitmap__bitmap__arity0__bit_buffer__error_state__arity0__bit_buffer__error_stream_error__arity0__[6];

#line 87 "bit_buffer.m"
void MR_CALL 
mercury__bit_buffer__ClassMethod_for_stream__writer____bit_buffer__error_stream__arity0__bitmap__slice__arity0__bit_buffer__error_state__arity0______stream__put_4_4_p_0(
#line 87 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_1);

#line 67 "bit_buffer.m"
void MR_CALL 
mercury__bit_buffer__ClassMethod_for_stream__stream____bit_buffer__error_stream__arity0__bit_buffer__error_state__arity0______stream__name_4_4_p_0(
#line 67 "bit_buffer.m"
  MR_String * mercury__bit_buffer__param_1);

#line 81 "bit_buffer.m"
void MR_CALL 
mercury__bit_buffer__ClassMethod_for_stream__output____bit_buffer__error_stream__arity0__bit_buffer__error_state__arity0______stream__flush_3_3_p_0(void);

#line 62 "bit_buffer.m"
MR_String MR_CALL 
mercury__bit_buffer__ClassMethod_for_stream__error____bit_buffer__error_stream_error__arity0______stream__error_message_1_1_f_0(void);

#line 76 "bit_buffer.m"
void MR_CALL 
mercury__bit_buffer__ClassMethod_for_stream__bulk_reader____bit_buffer__error_stream__arity0__int__arity0__bitmap__bitmap__arity0__bit_buffer__error_state__arity0__bit_buffer__error_stream_error__arity0______stream__bulk_get_9_9_p_0(
#line 76 "bit_buffer.m"
  MR_Integer mercury__bit_buffer__param_1,
#line 76 "bit_buffer.m"
  MR_Integer mercury__bit_buffer__param_2,
#line 76 "bit_buffer.m"
  MR_Box mercury__bit_buffer__param_3,
#line 76 "bit_buffer.m"
  MR_Box * mercury__bit_buffer__param_4,
#line 76 "bit_buffer.m"
  MR_Integer * mercury__bit_buffer__param_5,
#line 76 "bit_buffer.m"
  MR_Word * mercury__bit_buffer__param_6);

#line 41 "bit_buffer.m"
void MR_CALL 
mercury__bit_buffer____Compare____error_stream_error_0_0(
#line 41 "bit_buffer.m"
  MR_Word * mercury__bit_buffer__param_1);

#line 41 "bit_buffer.m"
MR_bool MR_CALL 
mercury__bit_buffer____Unify____error_stream_error_0_0(void);

#line 39 "bit_buffer.m"
void MR_CALL 
mercury__bit_buffer____Compare____error_stream_0_0(
#line 39 "bit_buffer.m"
  MR_Word * mercury__bit_buffer__param_1);

#line 39 "bit_buffer.m"
MR_bool MR_CALL 
mercury__bit_buffer____Unify____error_stream_0_0(void);

#line 40 "bit_buffer.m"
void MR_CALL 
mercury__bit_buffer____Compare____error_state_0_0(
#line 40 "bit_buffer.m"
  MR_Word * mercury__bit_buffer__param_1);

#line 40 "bit_buffer.m"
MR_bool MR_CALL 
mercury__bit_buffer____Unify____error_state_0_0(void);

#line 152 "bit_buffer.m"
void MR_CALL 
mercury__bit_buffer____Compare____bit_buffer_3_0(
#line 152 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_1,
#line 152 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_2,
#line 152 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_3,
#line 152 "bit_buffer.m"
  MR_Word * mercury__bit_buffer__param_4,
#line 152 "bit_buffer.m"
  MR_Box mercury__bit_buffer__param_5,
#line 152 "bit_buffer.m"
  MR_Box mercury__bit_buffer__param_6);

#line 152 "bit_buffer.m"
MR_bool MR_CALL 
mercury__bit_buffer____Unify____bit_buffer_3_0(
#line 152 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_1,
#line 152 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_2,
#line 152 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_3,
#line 152 "bit_buffer.m"
  MR_Box mercury__bit_buffer__param_4,
#line 152 "bit_buffer.m"
  MR_Box mercury__bit_buffer__param_5);

#line 127 "bit_buffer.m"
void MR_CALL 
mercury__bit_buffer____Compare____bit_buffer_2_0(
#line 127 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_1,
#line 127 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_2,
#line 127 "bit_buffer.m"
  MR_Word * mercury__bit_buffer__param_3,
#line 127 "bit_buffer.m"
  MR_Box mercury__bit_buffer__param_4,
#line 127 "bit_buffer.m"
  MR_Box mercury__bit_buffer__param_5);

#line 127 "bit_buffer.m"
MR_bool MR_CALL 
mercury__bit_buffer____Unify____bit_buffer_2_0(
#line 127 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_1,
#line 127 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_2,
#line 127 "bit_buffer.m"
  MR_Box mercury__bit_buffer__param_3,
#line 127 "bit_buffer.m"
  MR_Box mercury__bit_buffer__param_4);

#line 339 "bit_buffer.m"
void MR_CALL 
mercury__bit_buffer__set_read_status_3_p_0(
#line 339 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_1,
#line 339 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_2,
#line 339 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_3,
#line 339 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_4,
#line 339 "bit_buffer.m"
  MR_Box mercury__bit_buffer__param_5,
#line 339 "bit_buffer.m"
  MR_Box * mercury__bit_buffer__param_6);

#line 323 "bit_buffer.m"
void MR_CALL 
mercury__bit_buffer__set_use_stream_3_p_0(
#line 323 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_1,
#line 323 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_2,
#line 323 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_3,
#line 323 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_4,
#line 323 "bit_buffer.m"
  MR_Box mercury__bit_buffer__param_5,
#line 323 "bit_buffer.m"
  MR_Box * mercury__bit_buffer__param_6);

#line 308 "bit_buffer.m"
void MR_CALL 
mercury__bit_buffer__set_state_3_p_0(
#line 308 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_1,
#line 308 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_2,
#line 308 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_3,
#line 308 "bit_buffer.m"
  MR_Box mercury__bit_buffer__param_4,
#line 308 "bit_buffer.m"
  MR_Box mercury__bit_buffer__param_5,
#line 308 "bit_buffer.m"
  MR_Box * mercury__bit_buffer__param_6);

#line 290 "bit_buffer.m"
void MR_CALL 
mercury__bit_buffer__set_bitmap_4_p_0(
#line 290 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_1,
#line 290 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_2,
#line 290 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_3,
#line 290 "bit_buffer.m"
  MR_Box mercury__bit_buffer__param_4,
#line 290 "bit_buffer.m"
  MR_Integer mercury__bit_buffer__param_5,
#line 290 "bit_buffer.m"
  MR_Box mercury__bit_buffer__param_6,
#line 290 "bit_buffer.m"
  MR_Box * mercury__bit_buffer__param_7);

#line 266 "bit_buffer.m"
void MR_CALL 
mercury__bit_buffer__set_all_7_p_0(
#line 266 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_1,
#line 266 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_2,
#line 266 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_3,
#line 266 "bit_buffer.m"
  MR_Box mercury__bit_buffer__param_4,
#line 266 "bit_buffer.m"
  MR_Integer mercury__bit_buffer__param_5,
#line 266 "bit_buffer.m"
  MR_Integer mercury__bit_buffer__param_6,
#line 266 "bit_buffer.m"
  MR_Box mercury__bit_buffer__param_7,
#line 266 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_8,
#line 266 "bit_buffer.m"
  MR_Box mercury__bit_buffer__param_9,
#line 266 "bit_buffer.m"
  MR_Box * mercury__bit_buffer__param_10);

#line 198 "bit_buffer.m"
MR_Word MR_CALL 
mercury__bit_buffer__read_status_1_f_0(
#line 198 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_1,
#line 198 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_2,
#line 198 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_3,
#line 198 "bit_buffer.m"
  MR_Box mercury__bit_buffer__param_4);

#line 196 "bit_buffer.m"
MR_Word MR_CALL 
mercury__bit_buffer__filled_bitmaps_1_f_0(
#line 196 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_1,
#line 196 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_2,
#line 196 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_3,
#line 196 "bit_buffer.m"
  MR_Box mercury__bit_buffer__param_4);

#line 195 "bit_buffer.m"
MR_Box MR_CALL 
mercury__bit_buffer__state_1_f_0(
#line 195 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_1,
#line 195 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_2,
#line 195 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_3,
#line 195 "bit_buffer.m"
  MR_Box mercury__bit_buffer__param_4);

#line 193 "bit_buffer.m"
MR_Box MR_CALL 
mercury__bit_buffer__stream_1_f_0(
#line 193 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_1,
#line 193 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_2,
#line 193 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_3,
#line 193 "bit_buffer.m"
  MR_Box mercury__bit_buffer__param_4);

#line 192 "bit_buffer.m"
MR_Word MR_CALL 
mercury__bit_buffer__use_stream_1_f_0(
#line 192 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_1,
#line 192 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_2,
#line 192 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_3,
#line 192 "bit_buffer.m"
  MR_Box mercury__bit_buffer__param_4);

#line 191 "bit_buffer.m"
MR_Integer MR_CALL 
mercury__bit_buffer__size_1_f_0(
#line 191 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_1,
#line 191 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_2,
#line 191 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_3,
#line 191 "bit_buffer.m"
  MR_Box mercury__bit_buffer__param_4);

#line 190 "bit_buffer.m"
MR_Integer MR_CALL 
mercury__bit_buffer__pos_1_f_0(
#line 190 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_1,
#line 190 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_2,
#line 190 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_3,
#line 190 "bit_buffer.m"
  MR_Box mercury__bit_buffer__param_4);

#line 188 "bit_buffer.m"
MR_Box MR_CALL 
mercury__bit_buffer__bitmap_1_f_0(
#line 188 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_1,
#line 188 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_2,
#line 188 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_3,
#line 188 "bit_buffer.m"
  MR_Box mercury__bit_buffer__param_4);

#line 165 "bit_buffer.m"
MR_Box MR_CALL 
mercury__bit_buffer__new_buffer_2_7_f_0(
#line 165 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_1,
#line 165 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_2,
#line 165 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_3,
#line 165 "bit_buffer.m"
  MR_Box mercury__bit_buffer__param_4,
#line 165 "bit_buffer.m"
  MR_Integer mercury__bit_buffer__param_5,
#line 165 "bit_buffer.m"
  MR_Integer mercury__bit_buffer__param_6,
#line 165 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_7,
#line 165 "bit_buffer.m"
  MR_Box mercury__bit_buffer__param_8,
#line 165 "bit_buffer.m"
  MR_Box mercury__bit_buffer__param_9,
#line 165 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_10);

#line 155 "bit_buffer.m"
MR_Box MR_CALL 
mercury__bit_buffer__new_buffer_6_f_0(
#line 155 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_1,
#line 155 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_2,
#line 155 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_3,
#line 155 "bit_buffer.m"
  MR_Box mercury__bit_buffer__param_4,
#line 155 "bit_buffer.m"
  MR_Integer mercury__bit_buffer__param_5,
#line 155 "bit_buffer.m"
  MR_Integer mercury__bit_buffer__param_6,
#line 155 "bit_buffer.m"
  MR_Word mercury__bit_buffer__param_7,
#line 155 "bit_buffer.m"
  MR_Box mercury__bit_buffer__param_8,
#line 155 "bit_buffer.m"
  MR_Box mercury__bit_buffer__param_9);

void mercury__bit_buffer__init(void);
void mercury__bit_buffer__init_type_tables(void);
void mercury__bit_buffer__init_debugger(void);

#ifdef __cplusplus
}
#endif

#endif /* MR_HEADER_GUARD_bit_buffer */

/* :- end_interface bit_buffer. */
