diff options
author | Andreas Baumann <mail@andreasbaumann.cc> | 2015-01-03 12:04:58 +0100 |
---|---|---|
committer | Andreas Baumann <mail@andreasbaumann.cc> | 2015-01-03 12:04:58 +0100 |
commit | 008d0be72b2f160382c6e880765e96b64a050c65 (patch) | |
tree | 36f48a98a3815a408e2ce1693dd182af90f80305 /release/src/linux/linux/include/linux/intermezzo_psdev.h | |
parent | 611becfb8726c60cb060368541ad98191d4532f5 (diff) | |
download | tomato-008d0be72b2f160382c6e880765e96b64a050c65.tar.gz tomato-008d0be72b2f160382c6e880765e96b64a050c65.tar.bz2 |
imported original firmware WRT54GL_v4.30.11_11_US
Diffstat (limited to 'release/src/linux/linux/include/linux/intermezzo_psdev.h')
-rw-r--r-- | release/src/linux/linux/include/linux/intermezzo_psdev.h | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/release/src/linux/linux/include/linux/intermezzo_psdev.h b/release/src/linux/linux/include/linux/intermezzo_psdev.h new file mode 100644 index 00000000..36ea2216 --- /dev/null +++ b/release/src/linux/linux/include/linux/intermezzo_psdev.h @@ -0,0 +1,57 @@ +/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*- + * vim:expandtab:shiftwidth=8:tabstop=8: + */ + +#ifndef __PRESTO_PSDEV_H +#define __PRESTO_PSDEV_H + +#define MAX_CHANNEL 16 +#define PROCNAME_SIZE 32 +#include <linux/locks.h> +#include <linux/smp_lock.h> +#include <linux/version.h> + +/* represents state of an instance reached with /dev/intermezzo */ +/* communication pending & processing queues */ +struct upc_channel { + unsigned int uc_seq; + wait_queue_head_t uc_waitq; /* Lento wait queue */ + struct list_head uc_pending; + struct list_head uc_processing; + spinlock_t uc_lock; + int uc_pid; /* Lento's pid */ + int uc_hard; /* allows signals during upcalls */ + int uc_no_filter; + int uc_no_journal; + int uc_no_upcall; + int uc_timeout; /* . sec: signals will dequeue upc */ + long uc_errorval; /* for testing I/O failures */ + struct list_head uc_cache_list; + int uc_minor; +}; + +#define ISLENTO(minor) (current->pid == izo_channels[minor].uc_pid \ + || current->p_pptr->pid == izo_channels[minor].uc_pid \ + || current->p_pptr->p_pptr->pid == izo_channels[minor].uc_pid) + +extern struct upc_channel izo_channels[MAX_CHANNEL]; + +/* message types between presto filesystem in kernel */ +#define REQ_READ 1 +#define REQ_WRITE 2 +#define REQ_ASYNC 4 +#define REQ_DEAD 8 + +struct upc_req { + struct list_head rq_chain; + caddr_t rq_data; + int rq_flags; + int rq_bufsize; + int rq_rep_size; + int rq_opcode; /* copied from data to save lookup */ + int rq_unique; + wait_queue_head_t rq_sleep; /* process' wait queue */ + unsigned long rq_posttime; +}; + +#endif |