www.pudn.com > driverII_demo.rar > scull.h


#ifndef __SCULL_H__
#define __SCULL_H__

#include 
#define SCULL_QUANTUM 2000
#define SCULL_QSET    1000
extern int scull_quantum;
extern int scull_qset;

/* Prototypes for shared functions */
static loff_t scull_llseek(struct file *filp, loff_t off, int whence);
static ssize_t scull_read(struct file *filp, char __user *buf,
                          size_t count, loff_t *ppos);
static ssize_t scull_write(struct file *filp, const __user char *buf,
                          size_t count, loff_t *ppos);
static int scull_ioctl(struct inode *inode, struct file *filp,
                        unsigned int cmd, unsigned long arg);
static int scull_open(struct inode *inode, struct file *filp);
static int scull_release(struct inode *inode, struct file *filp);

/* Ioctl definiction */
#define SCULL_IOC_MAGIC 'j'
#define SCULL_IOC_MAXNR 15

#define SCULL_IOCRESET    _IO(SCULL_IOC_MAGIC, 0)
#define SCULL_IOCSQUANTUM _IOW(SCULL_IOC_MAGIC,  1, 2000)
#define SCULL_IOCSQSET    _IOW(SCULL_IOC_MAGIC,  2, 1000)
#define SCULL_IOCTQUANTUM _IO(SCULL_IOC_MAGIC,   3)
#define SCULL_IOCTQSET    _IO(SCULL_IOC_MAGIC,   4)
#define SCULL_IOCGQUANTUM _IOR(SCULL_IOC_MAGIC,  5, scull_quantum)
#define SCULL_IOCGQSET    _IOR(SCULL_IOC_MAGIC,  6, scull_qset)
#define SCULL_IOCQQUANTUM _IO(SCULL_IOC_MAGIC,   7)
#define SCULL_IOCQQSET    _IO(SCULL_IOC_MAGIC,   8)
#define SCULL_IOCXQUANTUM _IOWR(SCULL_IOC_MAGIC, 9, scull_quantum)
#define SCULL_IOCXQSET    _IOWR(SCULL_IOC_MAGIC,10, scull_qset)
#define SCULL_IOCHQUANTUM _IO(SCULL_IOC_MAGIC,  11)
#define SCULL_IOCHQSET    _IO(SCULL_IOC_MAGIC,  12)


#endif