+int bf_close2(BFile bf);
+
+/** \brief closes an extended Block file handle..
+ \param bf extended block file opened with bf_xopen
+ \param version version to be put in a file
+ \param more_info more information to be stored in file (header)
+ \retval 0 success
+ \retval -1 failure (can never happen as the code is now)
+*/
+YAZ_EXPORT
+int bf_xclose(BFile bf, int version, const char *more_info);
+
+/** \brief opens and returns a Block file handle
+ \param bfs block files
+ \param name filename
+ \param block_size block size in bytes
+ \param wflag 1=opened for read&write, 0=read only
+ \retval 0 success
+ \retval -1 failure (can never happen as the code is now)
+*/
+YAZ_EXPORT
+BFile bf_open(BFiles bfs, const char *name, int block_size, int wflag);
+
+/** \brief opens and returns an extended Block file handle
+ \param bfs block files
+ \param name filename
+ \param block_size block size in bytes
+ \param wflag 1=opened for read&write, 0=read only
+ \param magic magic string to be used for file
+ \param read_version holds after completion of bf_xopen the version
+ \param more_info holds more_info as read from file (header)
+*/
+YAZ_EXPORT
+BFile bf_xopen(BFiles bfs, const char *name, int block_size, int wflag,
+ const char *magic, int *read_version,
+ const char **more_info);
+
+/** \brief read from block file (may call exit)
+ \param bf block file handle
+ \param no block no (first block is 0, second is 1..)
+ \param offset offset within block to be read
+ \param nbytes number of bytes to read (0 for whole block)
+ \param buf raw bytes with content (at least nbytes of size)
+ \retval 1 whole block could be read
+ \retval 0 whole block could not be read
+ */
+YAZ_EXPORT
+int bf_read(BFile bf, zint no, int offset, int nbytes, void *buf);
+
+/** \brief read from block file
+ \param bf block file handle
+ \param no block no (first block is 0, second is 1..)
+ \param offset offset within block to be read
+ \param nbytes number of bytes to read (0 for whole block)
+ \param buf raw bytes with content (at least nbytes of size)
+ \retval 1 whole block could be read
+ \retval 0 whole block could not be read
+ \retval -1 error
+ */
+YAZ_EXPORT
+int bf_read2(BFile bf, zint no, int offset, int nbytes, void *buf)
+ ZEBRA_GCC_ATTR((warn_unused_result));
+