projects
/
ust.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
mark 32 bit support as broken
[ust.git]
/
libust
/
relay.h
diff --git
a/libust/relay.h
b/libust/relay.h
index 630c4eacc5ebd3e43995d93eb06920b7719a98dc..0e1827912b4870472088ed51f07d32d4e9fe42e6 100644
(file)
--- a/
libust/relay.h
+++ b/
libust/relay.h
@@
-213,18
+213,26
@@
static inline struct buf_page *ltt_relay_cache_page(struct rchan_buf *buf,
}
//ust// #ifdef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
}
//ust// #ifdef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
-
static inline void ltt_relay_do_copy(void *dest, const void *src, size_t len)
+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;
switch (len) {
case 0: break;
- case 1: *(u8 *)dest = *
(const u8 *)src
;
+ case 1: *(u8 *)dest = *
u.src8
;
break;
break;
- case 2: *(u16 *)dest = *
(const u16 *)src
;
+ case 2: *(u16 *)dest = *
u.src16
;
break;
break;
- case 4: *(u32 *)dest = *
(const u32 *)src
;
+ case 4: *(u32 *)dest = *
u.src32
;
break;
//ust// #if (BITS_PER_LONG == 64)
break;
//ust// #if (BITS_PER_LONG == 64)
- case 8: *(u64 *)dest = *
(const u64 *)src
;
+ case 8: *(u64 *)dest = *
u.src64
;
break;
//ust// #endif
default:
break;
//ust// #endif
default:
@@
-309,7
+317,7
@@
static inline int ltt_relay_write(struct rchan_buf *buf, size_t offset,
* CONFIG_LTT_RELAY kernel API, ltt/ltt-relay-alloc.c
*/
* CONFIG_LTT_RELAY kernel API, ltt/ltt-relay-alloc.c
*/
-struct rchan *ltt_relay_open(const char *base_filename,
+
extern
struct rchan *ltt_relay_open(const char *base_filename,
struct dentry *parent,
size_t subbuf_size,
size_t n_subbufs,
struct dentry *parent,
size_t subbuf_size,
size_t n_subbufs,
@@
-367,10
+375,15
@@
struct ltt_channel_buf_struct {
local_t commit_seq[0] ____cacheline_aligned;
} ____cacheline_aligned;
local_t commit_seq[0] ____cacheline_aligned;
} ____cacheline_aligned;
-int ltt_do_get_subbuf(struct rchan_buf *buf, struct ltt_channel_buf_struct *ltt_buf, long *pconsumed_old);
+extern int ltt_do_get_subbuf(struct rchan_buf *buf, struct ltt_channel_buf_struct *ltt_buf, long *pconsumed_old);
+
+extern int ltt_do_put_subbuf(struct rchan_buf *buf, struct ltt_channel_buf_struct *ltt_buf, u32 uconsumed_old);
-
int ltt_do_put_subbuf(struct rchan_buf *buf, struct ltt_channel_buf_struct *ltt_buf, u32 uconsumed_ol
d);
+
extern void init_ustrelay_transport(voi
d);
-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 */
#endif /* _LINUX_LTT_RELAY_H */
This page took
0.037687 seconds
and
4
git commands to generate.