X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=ndk%2Fandroid-ndk-r4%2Flinux%2Fplatforms%2Fandroid-8%2Farch-x86%2Fusr%2Finclude%2Flinux%2Frelay.h;fp=ndk%2Fandroid-ndk-r4%2Flinux%2Fplatforms%2Fandroid-8%2Farch-x86%2Fusr%2Finclude%2Flinux%2Frelay.h;h=09f72198a077d29d6cc01cd9a9fb7b7dd90c8e61;hb=72eddb87bfc38a2f6fae40566ec6380eb838489a;hp=0000000000000000000000000000000000000000;hpb=e19e12d257815bef7bfe4f3d81056a5b2464c464;p=android-x86%2Fprebuilt.git diff --git a/ndk/android-ndk-r4/linux/platforms/android-8/arch-x86/usr/include/linux/relay.h b/ndk/android-ndk-r4/linux/platforms/android-8/arch-x86/usr/include/linux/relay.h new file mode 100644 index 0000000..09f7219 --- /dev/null +++ b/ndk/android-ndk-r4/linux/platforms/android-8/arch-x86/usr/include/linux/relay.h @@ -0,0 +1,91 @@ +/**************************************************************************** + **************************************************************************** + *** + *** This header was automatically generated from a Linux kernel header + *** of the same name, to make information necessary for userspace to + *** call into the kernel available to libc. It contains only constants, + *** structures, and macros generated from the original header, and thus, + *** contains no copyrightable information. + *** + **************************************************************************** + ****************************************************************************/ +#ifndef _LINUX_RELAY_H +#define _LINUX_RELAY_H + +#include +#include +#include +#include +#include +#include +#include + +#define FIX_SIZE(x) ((((x) - 1) & PAGE_MASK) + PAGE_SIZE) + +#define RELAYFS_CHANNEL_VERSION 6 + +struct rchan_buf +{ + void *start; + void *data; + size_t offset; + size_t subbufs_produced; + size_t subbufs_consumed; + struct rchan *chan; + wait_queue_head_t read_wait; + struct work_struct wake_readers; + struct dentry *dentry; + struct kref kref; + struct page **page_array; + unsigned int page_count; + unsigned int finalized; + size_t *padding; + size_t prev_padding; + size_t bytes_consumed; + unsigned int cpu; +} ____cacheline_aligned; + +struct rchan +{ + u32 version; + size_t subbuf_size; + size_t n_subbufs; + size_t alloc_size; + struct rchan_callbacks *cb; + struct kref kref; + void *private_data; + size_t last_toobig; + struct rchan_buf *buf[NR_CPUS]; +}; + +struct rchan_callbacks +{ + + int (*subbuf_start) (struct rchan_buf *buf, + void *subbuf, + void *prev_subbuf, + size_t prev_padding); + + void (*buf_mapped)(struct rchan_buf *buf, + struct file *filp); + + void (*buf_unmapped)(struct rchan_buf *buf, + struct file *filp); + + struct dentry *(*create_buf_file)(const char *filename, + struct dentry *parent, + int mode, + struct rchan_buf *buf, + int *is_global); + + int (*remove_buf_file)(struct dentry *dentry); +}; + +struct rchan *relay_open(const char *base_filename, + struct dentry *parent, + size_t subbuf_size, + size_t n_subbufs, + struct rchan_callbacks *cb); + +#endif +