root/usr/src/uts/intel/sys/ecppsys.h
/*
 * CDDL HEADER START
 *
 * The contents of this file are subject to the terms of the
 * Common Development and Distribution License, Version 1.0 only
 * (the "License").  You may not use this file except in compliance
 * with the License.
 *
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
 * or http://www.opensolaris.org/os/licensing.
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL HEADER in each
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
 * If applicable, add the following below this CDDL HEADER, with the
 * fields enclosed by brackets "[]" replaced with your own identifying
 * information: Portions Copyright [yyyy] [name of copyright owner]
 *
 * CDDL HEADER END
 */
/*
 * Copyright (c) 1990-2000 by Sun Microsystems, Inc.
 * All rights reserved.
 */

#ifndef _SYS_ECPPSYS_H
#define _SYS_ECPPSYS_H

#ifdef  __cplusplus
extern "C" {
#endif

#define ECPPIOC_SETPARMS        _IOW('p', 70, struct ecpp_transfer_parms)
#define ECPPIOC_GETPARMS        _IOR('p', 71, struct ecpp_transfer_parms)
#define ECPPIOC_GETDEVID        _IOWR('p', 73, struct ecpp_device_id)

/* current_mode values */
#define ECPP_CENTRONICS         0x01 /* non-1284 */
#define ECPP_COMPAT_MODE        0x02
#define ECPP_BYTE_MODE          0x03
#define ECPP_NIBBLE_MODE        0x04
#define ECPP_ECP_MODE           0x05
#define ECPP_FAILURE_MODE       0x06
#define ECPP_DIAG_MODE          0x07
#define ECPP_INIT_MODE          0x08
#define ECPP_EPP_MODE           0x09

typedef struct p1284_ioctl_st {
        int array[10];
        char *cptr;
        char *name;
} P1284Ioctl;

struct ecpp_transfer_parms {
        int     write_timeout;
        int     mode;
};

/*
 * Structure for retrieving IEEE 1284 Device ID
 */
struct ecpp_device_id {
        int     mode;   /* mode to use for reading device id */
        int     len;    /* length of buffer */
        int     rlen;   /* actual length of device id string */
        char    *addr;  /* buffer address */
#ifndef _LP64
        int     filler[2];
#endif
};

#ifdef _KERNEL
/*
 * 32bit support for ioctl
 */
struct ecpp_device_id32 {
        int             mode;   /* mode to use for reading device id */
        int             len;    /* length of buffer */
        int             rlen;   /* actual length of device id string */
        caddr32_t       addr;   /* buffer address */
        int             filler[2];
};
#endif /* _KERNEL */
#ifdef  __cplusplus
}
#endif

#endif  /* _SYS_ECPPSYS_H */