1#ifndef __LINUX_SEQ_FILE_H__
2#define __LINUX_SEQ_FILE_H__
6#include <linux/kernel.h>
122#define DEFINE_SHOW_ATTRIBUTE(__name) \
123 static int __name##_open(struct inode* inode, struct file* file) \
126 return single_open(file, __name##_show, NULL); \
128 static const struct file_operations __name##_fops = { \
129 .owner = THIS_MODULE, \
130 .open = __name##_open, \
132 .llseek = seq_lseek, \
133 .release = single_release, \
149static inline int seq_write(
struct seq_file* seq,
const void*
data,
size_t len)
179static inline char* mangle_path(
char* s,
const char* p,
const char* esc)
186 }
else if (!
strchr(esc, c)) {
188 }
else if (s + 4 > p) {
192 *s++ = (char)(
'0' + ((c & 0300) >> 6));
193 *s++ = (char)(
'0' + ((c & 070) >> 3));
194 *s++ = (char)(
'0' + (c & 07));
char * strchr(const char *String, int ch)
locates first occurance of character in string
Definition utclib.c:611
#define NULL
Definition actypes.h:561
size_t size
Definition drm_bridge.h:1299
const char * fmt
Definition drm_file.h:466
size_t len
Definition initial.c:23
void * data
Definition kthread.h:30
uint64_t loff_t
Definition kernel.h:49
void seq_printf(const void *m, const char *fmt,...)
long seq_lseek(const void *m, long off, int whence)
void seq_puts(const void *m, const char *s)
int single_open(struct file *file, int(*show)(struct seq_file *, void *), void *data)
int single_release(struct inode *inode, struct file *file)
long seq_read(const void *m, char *buf, unsigned long count, long long *ppos)
loff_t index
Definition seq_file.h:51
size_t size
Definition seq_file.h:49
char * buf
Definition seq_file.h:48
size_t count
Definition seq_file.h:50
int(* show)(struct seq_file *m, void *v)
Definition seq_file.h:73
void(* stop)(struct seq_file *m, void *v)
Definition seq_file.h:71