1 /* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
2 * vim:expandtab:shiftwidth=8:tabstop=8:
5 #ifndef __PRESTO_PSDEV_H
6 #define __PRESTO_PSDEV_H
9 #define PROCNAME_SIZE 32
10 #include <linux/locks.h>
11 #include <linux/smp_lock.h>
12 #include <linux/version.h>
14 /* represents state of an instance reached with /dev/intermezzo */
15 /* communication pending & processing queues */
18 wait_queue_head_t uc_waitq; /* Lento wait queue */
19 struct list_head uc_pending;
20 struct list_head uc_processing;
22 int uc_pid; /* Lento's pid */
23 int uc_hard; /* allows signals during upcalls */
27 int uc_timeout; /* . sec: signals will dequeue upc */
28 long uc_errorval; /* for testing I/O failures */
29 struct list_head uc_cache_list;
33 #define ISLENTO(minor) (current->pid == izo_channels[minor].uc_pid \
34 || current->p_pptr->pid == izo_channels[minor].uc_pid \
35 || current->p_pptr->p_pptr->pid == izo_channels[minor].uc_pid)
37 extern struct upc_channel izo_channels[MAX_CHANNEL];
39 /* message types between presto filesystem in kernel */
46 struct list_head rq_chain;
51 int rq_opcode; /* copied from data to save lookup */
53 wait_queue_head_t rq_sleep; /* process' wait queue */
54 unsigned long rq_posttime;