#line 2708 "/home/travis/build/felix-lang/felix/src/packages/sdl.fdoc"
  
  //#define SDL_RWclose(ctx)              (ctx)->close(ctx)
  //#define SDL_RWwrite(ctx, ptr, size, n)        (ctx)->write(ctx, ptr, size, n)
  //#define SDL_RWread(ctx, ptr, size, n) (ctx)->read(ctx, ptr, size, n)
  //#define SDL_RWtell(ctx)                       (ctx)->seek(ctx, 0, SEEK_CUR)
  //#define SDL_RWseek(ctx, offset, whence)       (ctx)->seek(ctx, offset, whence)
  //#define _SDL_RWops_h
  
  //INCLUDES
  
  open class SDL_rwops_h
  {
    //ABSTRACT TYPES
    type SDL_RWops = 'SDL_RWops*';
  
  /*
    //C FUNCTION POINTER TYPES
    header '''typedef int (*SDL_rwops_h_cft_1)(struct SDL_RWops *,  int, int);''';
    type SDL_rwops_h_cft_1 = 'SDL_rwops_h_cft_1';
    header '''typedef int (*SDL_rwops_h_cft_3)(struct SDL_RWops *,  void const *,  int, int);''';
    type SDL_rwops_h_cft_3 = 'SDL_rwops_h_cft_3';
    header '''typedef int (*SDL_rwops_h_cft_2)(struct SDL_RWops *,  void *, int,  int);''';
    type SDL_rwops_h_cft_2 = 'SDL_rwops_h_cft_2';
    header '''typedef int (*SDL_rwops_h_cft_4)(struct SDL_RWops *);''';
    type SDL_rwops_h_cft_4 = 'SDL_rwops_h_cft_4';
  */
    //PROCEDURES
    proc SDL_FreeRW: SDL_RWops;
  
    //FUNCTIONS
    fun SDL_AllocRW: 1 -> SDL_RWops;
    fun SDL_RWFromConstMem: address * int -> SDL_RWops;
    fun SDL_RWFromFP: FILE * int -> SDL_RWops;
    fun SDL_RWFromInputFile: string -> SDL_RWops = 'SDL_RWFromFile($1.c_str(),"r")';
    fun SDL_RWFromFile: string -> SDL_RWops = 'SDL_RWFromFile($1.c_str(),"rw")';
    fun SDL_RWFromMem: address * int -> SDL_RWops;
  
  /*
    //STRUCT and UNION FIELDS
    fun get_read: _struct_SDL_RWops -> SDL_rwops_h_cft_2 = '$1->read';
    fun get_write: _struct_SDL_RWops -> SDL_rwops_h_cft_3 = '$1->write';
    fun get_seek: _struct_SDL_RWops -> SDL_rwops_h_cft_1 = '$1->seek';
    fun get_close: _struct_SDL_RWops -> SDL_rwops_h_cft_4 = '$1->close';
    fun get_type: _struct_SDL_RWops -> uint32 = '$1->type';
  */
  
  }