+RSET rset_dup (RSET rs);
+
+
+#define RSETF_READ 0
+#define RSETF_WRITE 1
+/* RSFD rset_open(RSET rs, int wflag); */
+#define rset_open(rs, wflag) (*(rs)->control->f_open)((rs), (wflag))
+
+/* void rset_close(RSFD rfd); */
+#define rset_close(rfd) (*(rfd)->rset->control->f_close)(rfd)
+
+/* void rset_rewind(RSFD rfd); */
+#define rset_rewind(rfd) (*(rfd)->rset->control->f_rewind)((rfd))
+
+/* int rset_forward(RSFD rfd, void *buf, void *untilbuf); */
+#define rset_forward(rfd, buf, untilbuf) \
+ (*(rfd)->rset->control->f_forward)((rfd),(buf),(untilbuf))
+
+/* int rset_pos(RSFD fd, double *current, double *total); */
+#define rset_pos(rfd,cur,tot) \
+ (*(rfd)->rset->control->f_pos)( (rfd),(cur),(tot))
+
+/* int rset_read(RSFD rfd, void *buf); */
+#define rset_read(rfd, buf) (*(rfd)->rset->control->f_read)((rfd), (buf))
+
+/* int rset_write(RSFD rfd, const void *buf); */
+#define rset_write(rfd, buf) (*(rfd)->rset->control->f_write)((rfd), (buf))
+
+/* int rset_type (RSET) */
+#define rset_type(rs) ((rs)->control->desc)
+
+RSET rstemp_create( NMEM nmem, const struct key_control *kcontrol,
+ int scope,
+ const char *temp_path);
+
+RSET rsnull_create(NMEM nmem, const struct key_control *kcontrol);
+
+RSET rsbool_create_and( NMEM nmem, const struct key_control *kcontrol,
+ int scope,
+ RSET rset_l, RSET rset_r);
+
+RSET rsbool_create_or ( NMEM nmem, const struct key_control *kcontrol,
+ int scope,
+ RSET rset_l, RSET rset_r);
+
+RSET rsbool_create_not( NMEM nmem, const struct key_control *kcontrol,
+ int scope,
+ RSET rset_l, RSET rset_r);
+
+RSET rsbetween_create( NMEM nmem, const struct key_control *kcontrol,
+ int scope,
+ RSET rset_l, RSET rset_m, RSET rset_r,
+ RSET rset_attr);
+
+RSET rsmultior_create( NMEM nmem, const struct key_control *kcontrol,
+ int scope,
+ int no_rsets, RSET* rsets);
+
+RSET rsmultiand_create( NMEM nmem, const struct key_control *kcontrol,
+ int scope,
+ int no_rsets, RSET* rsets);
+
+RSET rsprox_create( NMEM nmem, const struct key_control *kcontrol,
+ int scope,
+ int rset_no, RSET *rset,
+ int ordered, int exclusion,
+ int relation, int distance);
+
+RSET rsisamb_create( NMEM nmem, const struct key_control *kcontrol,
+ int scope,
+ ISAMB is, ISAMB_P pos);
+
+RSET rsisamc_create( NMEM nmem, const struct key_control *kcontrol,
+ int scope,
+ ISAMC is, ISAMC_P pos);
+
+RSET rsisams_create( NMEM nmem, const struct key_control *kcontrol,
+ int scope,
+ ISAMS is, ISAMS_P pos);
+
+
+
+#ifdef __cplusplus
+}
+#endif