X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=libust%2Frelay.h;h=ba536d700672af24dbf9d316f9edc7895f02147f;hb=772030fed323e388da467735cf4b5e8781acb710;hp=6b3a8b79692affb40781a66990b7279c18a49e09;hpb=64d9b80b1e4dfbb0c8329ed950d1c0d4de3e4c7a;p=ust.git diff --git a/libust/relay.h b/libust/relay.h index 6b3a8b7..ba536d7 100644 --- a/libust/relay.h +++ b/libust/relay.h @@ -22,10 +22,10 @@ //ust// #include //ust// #include #include -#include "tracer.h" -#include "kref.h" +#include //#include "list.h" #include "channels.h" +#include "buffer.h" /* Needs a _much_ better name... */ #define FIX_SIZE(x) ((((x) - 1) & PAGE_MASK) + PAGE_SIZE) @@ -215,16 +215,24 @@ static inline struct buf_page *ltt_relay_cache_page(struct rchan_buf *buf, //ust// #ifdef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS static inline void ltt_relay_do_copy(void *dest, const void *src, size_t len) { + union { + const void *src; + const u8 *src8; + const u16 *src16; + const u32 *src32; + const u64 *src64; + } u = { .src = src }; + switch (len) { case 0: break; - case 1: *(u8 *)dest = *(const u8 *)src; + case 1: *(u8 *)dest = *u.src8; break; - case 2: *(u16 *)dest = *(const u16 *)src; + case 2: *(u16 *)dest = *u.src16; break; - case 4: *(u32 *)dest = *(const u32 *)src; + case 4: *(u32 *)dest = *u.src32; break; //ust// #if (BITS_PER_LONG == 64) - case 8: *(u64 *)dest = *(const u64 *)src; + case 8: *(u64 *)dest = *u.src64; break; //ust// #endif default: @@ -371,4 +379,11 @@ int ltt_do_get_subbuf(struct rchan_buf *buf, struct ltt_channel_buf_struct *ltt_ int ltt_do_put_subbuf(struct rchan_buf *buf, struct ltt_channel_buf_struct *ltt_buf, u32 uconsumed_old); +void init_ustrelay_transport(void); + +/*static*/ /* inline */ notrace void ltt_commit_slot( + struct ltt_channel_struct *ltt_channel, + void **transport_data, long buf_offset, + size_t data_size, size_t slot_size); + #endif /* _LINUX_LTT_RELAY_H */