#undef LOCAL_DEBUG
-#include "ucw/lib.h"
-#include "ucw/fastbuf.h"
-#include "ucw/io.h"
-#include "ucw/asio.h"
-#include "ucw/conf.h"
-#include "ucw/threads.h"
+#include <ucw/lib.h>
+#include <ucw/fastbuf.h>
+#include <ucw/io.h>
+#include <ucw/asio.h>
+#include <ucw/conf.h>
+#include <ucw/threads.h>
#include <string.h>
#include <fcntl.h>
enum fbdir_mode mode;
byte name[0];
};
-#define FB_DIRECT(f) ((struct fb_direct *)(f)->is_fastbuf)
+#define FB_DIRECT(f) ((struct fb_direct *)(f))
#ifndef TEST
-uns fbdir_cheat;
+uint fbdir_cheat;
static struct cf_section fbdir_cf = {
CF_ITEMS {
- CF_UNS("Cheat", &fbdir_cheat),
+ CF_UINT("Cheat", &fbdir_cheat),
CF_END
}
};
if (!r->status)
return 0;
if (r->status < 0)
- die("Error reading %s: %s", f->name, strerror(r->returned_errno));
+ bthrow(f, "read", "Error reading %s: %s", f->name, strerror(r->returned_errno));
f->bptr = f->buffer = r->buffer;
f->bstop = f->bufend = f->buffer + r->status;
f->pos += r->status;
asio_sync(F->io_queue);
DBG("FB-DIRECT: Truncating at %llu", (long long)f->pos);
if (ucw_ftruncate(F->fd, f->pos) < 0)
- die("Error truncating %s: %m", f->name);
+ bthrow(f, "write", "Error truncating %s: %m", f->name);
}
else
asio_submit(r);
}
static struct asio_queue *
-fbdir_get_io_queue(uns buffer_size, uns write_back)
+fbdir_get_io_queue(uint buffer_size, uint write_back)
{
struct ucwlib_context *ctx = ucwlib_thread_context();
struct asio_queue *q = ctx->io_queue;
}
static int
-fbdir_config(struct fastbuf *f, uns item, int value)
+fbdir_config(struct fastbuf *f, uint item, int value)
{
int orig;
}
struct fastbuf *
-fbdir_open_fd_internal(int fd, const char *name, struct asio_queue *q, uns buffer_size, uns read_ahead UNUSED, uns write_back)
+fbdir_open_fd_internal(int fd, const char *name, struct asio_queue *q, uint buffer_size, uint read_ahead UNUSED, uint write_back)
{
int namelen = strlen(name) + 1;
struct fb_direct *F = xmalloc(sizeof(struct fb_direct) + namelen);
#ifdef TEST
-#include "ucw/getopt.h"
+#include <ucw/getopt.h>
int main(int argc, char **argv)
{