//ust// #include <linux/kref.h>
//ust// #include <linux/mm.h>
//ust// #include <linux/ltt-core.h>
-#include "kref.h"
-#include "list.h"
+#include <assert.h>
+#include <kcompat/kref.h>
+//#include "list.h"
#include "channels.h"
+#include "buffer.h"
/* Needs a _much_ better name... */
#define FIX_SIZE(x) ((((x) - 1) & PAGE_MASK) + PAGE_SIZE)
//ust// _ltt_relay_write(buf, offset, src, len, page, pagecpy);
//ust// return len;
-
size_t cpy;
- cpy = min_t(size_t, len, buf->buf_size - offset);
- ltt_relay_do_copy(buf->buf_data + offset, src, cpy);
+ size_t buf_offset = BUFFER_OFFSET(offset, buf->chan);
+
+ assert(buf_offset < buf->chan->subbuf_size*buf->chan->n_subbufs);
+
+ cpy = min_t(size_t, len, buf->buf_size - buf_offset);
+ ltt_relay_do_copy(buf->buf_data + buf_offset, src, cpy);
if (unlikely(len != cpy))
- _ltt_relay_write(buf, offset, src, len, cpy);
+ _ltt_relay_write(buf, buf_offset, src, len, cpy);
return len;
}
int ltt_do_put_subbuf(struct rchan_buf *buf, struct ltt_channel_buf_struct *ltt_buf, u32 uconsumed_old);
+void init_ustrelay_transport(void);
+
#endif /* _LINUX_LTT_RELAY_H */