#include <linux/parport.h>


#ifndef _RELE_H
#define _RELE_H


#ifdef __KERNEL__

#define RELE_NORM      ((PARPORT_CONTROL_SELECT | PARPORT_CONTROL_STROBE)^0x0b)
#define RELE_CHECK     ((PARPORT_CONTROL_SELECT)^0x0b)

#define RELE_DATA_NORM ((PARPORT_CONTROL_SELECT | PARPORT_CONTROL_AUTOFD | PARPORT_CONTROL_STROBE)^0x0b)
#define RELE_DATA_SET  ((PARPORT_CONTROL_SELECT | PARPORT_CONTROL_AUTOFD)^0x0b)

#define RELE_CHECK_A   (PARPORT_STATUS_BUSY | PARPORT_STATUS_PAPEROUT | 7)
#define RELE_CHECK_B   (PARPORT_STATUS_BUSY | PARPORT_STATUS_PAPEROUT | PARPORT_STATUS_ERROR | 7)

#define RELE_DATA_READ_H   ((9 << 4) + 10)  /* 10011010 */
#define RELE_DATA_READ_L   ((10 << 4) + 10) /* 10101010 */

#define RELE_UNSPEC -4
#define RELE_AUTO   -3
#define RELE_OFF    -2
#define RELE_NONE   -1

#define RELE_EXISTS  1
#define RELE_ON      2

/* This should be somewhere else ... */
#define RELE_MAJOR   100

/* Proc fs entry */
struct rele_dir {
	struct proc_dir_entry *entry;
	struct proc_dir_entry *stat;
	struct proc_dir_entry *data;
	char name[6];
};

/* Rele device */
struct rele_struct {
	struct pardevice *dev;
	unsigned int flags;
	unsigned int count;
	unsigned int minor;
	unsigned char data;
	struct wait_queue *wait_q;
	char name[6];
	struct rele_dir rdir;
};


#endif

#endif

