Coherent4.2.10/include/sys/poll_clk.h

/* (-lgl
 *	Coherent 386 release 4.2
 *	Copyright (c) 1982, 1993 by Mark Williams Company.
 *	All rights reserved. May not be copied without permission.
 *	For copying permission and licensing info, write licensing@mwc.com
 -lgl) */

#ifndef	__SYS_POLL_CLK_H__
#define	__SYS_POLL_CLK_H__

/*
 * include file for drivers using altclk_in()/altclk_out()
 */
#include <sys/silo.h>

/*
 * bit fields in com_usage[0..3]
 *   in_use is incremented each time open is attempted, and decremented
 *     when the open fails or the corresponding close completes
 *   irq is true when the port is in use (open or hanging) with interrupts
 *   has_irq is true when the irq vector for the port is usable;
 *     it is not ok to enable interrupts until this goes true!
 *   poll is true when the port is open for polling
 *   hcls is true while the port is doing last close
 *   ohlt is true while CTS flow control halts output
 */
typedef struct {
	short uart_type;	/* see US_* in ins8250.h */
	short in_use;
	int irq:1;
	int has_irq:1;
	int poll:1;
	int hcls:1;
	int ohlt:1;
	silo_t raw_in;
	silo_t raw_out;
} com_usage_t;

/* bits in poll_owner - at most one will be set at a time */
#define POLL_AL		1
#define POLL_HS		2
#define POLL_ASY	4

/*
 * The following variables are defined in support.c
 *
 * "poll_rate" is the polling rate in HZ, 0 if no polling being done
 * "poll_owner" is a bit array so only one driver at a time can
 *   use an alternate clock routine
 * "com_usage" is used only by al0/al1 drivers
 */
extern com_usage_t	com_usage[];    /* COM_UNUSED/COM_IRQ/COM_POLLED */
extern int	poll_rate;	/* used by "prate" command */
extern int	poll_owner;	/* checked during *open() of port */

#endif	/* ! defined (__SYS_POLL_CLK_H__) */