at v2.6.32 2.5 kB view raw
1#ifndef _LINUX_TRACE_SEQ_H 2#define _LINUX_TRACE_SEQ_H 3 4#include <linux/fs.h> 5 6#include <asm/page.h> 7 8/* 9 * Trace sequences are used to allow a function to call several other functions 10 * to create a string of data to use (up to a max of PAGE_SIZE). 11 */ 12 13struct trace_seq { 14 unsigned char buffer[PAGE_SIZE]; 15 unsigned int len; 16 unsigned int readpos; 17}; 18 19static inline void 20trace_seq_init(struct trace_seq *s) 21{ 22 s->len = 0; 23 s->readpos = 0; 24} 25 26/* 27 * Currently only defined when tracing is enabled. 28 */ 29#ifdef CONFIG_TRACING 30extern int trace_seq_printf(struct trace_seq *s, const char *fmt, ...) 31 __attribute__ ((format (printf, 2, 3))); 32extern int trace_seq_vprintf(struct trace_seq *s, const char *fmt, va_list args) 33 __attribute__ ((format (printf, 2, 0))); 34extern int 35trace_seq_bprintf(struct trace_seq *s, const char *fmt, const u32 *binary); 36extern void trace_print_seq(struct seq_file *m, struct trace_seq *s); 37extern ssize_t trace_seq_to_user(struct trace_seq *s, char __user *ubuf, 38 size_t cnt); 39extern int trace_seq_puts(struct trace_seq *s, const char *str); 40extern int trace_seq_putc(struct trace_seq *s, unsigned char c); 41extern int trace_seq_putmem(struct trace_seq *s, const void *mem, size_t len); 42extern int trace_seq_putmem_hex(struct trace_seq *s, const void *mem, 43 size_t len); 44extern void *trace_seq_reserve(struct trace_seq *s, size_t len); 45extern int trace_seq_path(struct trace_seq *s, struct path *path); 46 47#else /* CONFIG_TRACING */ 48static inline int trace_seq_printf(struct trace_seq *s, const char *fmt, ...) 49{ 50 return 0; 51} 52static inline int 53trace_seq_bprintf(struct trace_seq *s, const char *fmt, const u32 *binary) 54{ 55 return 0; 56} 57 58static inline void trace_print_seq(struct seq_file *m, struct trace_seq *s) 59{ 60} 61static inline ssize_t trace_seq_to_user(struct trace_seq *s, char __user *ubuf, 62 size_t cnt) 63{ 64 return 0; 65} 66static inline int trace_seq_puts(struct trace_seq *s, const char *str) 67{ 68 return 0; 69} 70static inline int trace_seq_putc(struct trace_seq *s, unsigned char c) 71{ 72 return 0; 73} 74static inline int 75trace_seq_putmem(struct trace_seq *s, const void *mem, size_t len) 76{ 77 return 0; 78} 79static inline int trace_seq_putmem_hex(struct trace_seq *s, const void *mem, 80 size_t len) 81{ 82 return 0; 83} 84static inline void *trace_seq_reserve(struct trace_seq *s, size_t len) 85{ 86 return NULL; 87} 88static inline int trace_seq_path(struct trace_seq *s, struct path *path) 89{ 90 return 0; 91} 92#endif /* CONFIG_TRACING */ 93 94#endif /* _LINUX_TRACE_SEQ_H */