Plan 9 from Bell Labs’s /usr/web/sources/patch/applied/serialchanges/ftdi.h

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.



enum {
	/* used by devices which don't provide their own Vid */
	FTVid = 0x0403,

	FTSheevaVid = 0x9E88,
	FTSheevaDid = 0x9E8F,

	FTSIODid = 0x8372,			/* Product Id SIO application of 8U100AX */
	FT8U232AMDid = 0x6001, 		/* Similar device to SIO above */
	FT8U232AMALTDid = 0x6006,	/* FT's alternate Did for above*/
	FT8U2232CDid = 0x6010,		/* Dual channel device */
	FTRELAISDid = 0xFA10,		/* Relais device */

	/* NF reader */
	FTNFRICVid = 0x0DCD,
	FTNFRICDid = 0x0001,

	FTACTZWAVEDid = 0xF2D0,	/* www.irtrans.de device */

	/* 
	 *	ACT Solutions HomePro ZWave interface
	 *	http://www.act-solutions.com/HomePro.htm)
	 */
	FTIRTRANSDid = 0xFC60,

	/* 
	 *	www.thoughttechnology.com/ TT-USB
	 */
	FTTTUSBDid = 0xFF20,

	/* iPlus device */
	FTIPLUSDid = 0xD070,

	/* www.crystalfontz.com devices */
	FTXF632Did = 0xFC08,	/* 632: 16x2 Character Display */
	FTXF634Did = 0xFC09,	/* 634: 20x4 Character Display */
	FTXF547Did = 0xFC0A,	/* 547: Two line Display */
	FTXF633Did = 0xFC0B,	/* 633: 16x2 Character Display with Keys */
	FTXF631Did = 0xFC0C,	/* 631: 20x2 Character Display */
	FTXF635Did = 0xFC0D,	/* 635: 20x4 Character Display */
	FTXF640Did = 0xFC0E,	/* 640: Two line Display */
	FTXF642Did = 0xFC0F,	/* 642: Two line Display */

	/* 
	 *	Video Networks Limited / Homechoice in the UK
	 *	use an ftdi-based device for their 1Mb broadband
	 */

	FTVNHCPCUSBDDid = 0xfe38,

	/*
	 * PCDJ use ftdi based dj-controllers
	 * DAC-2 device http://www.pcdjhardware.com/DAC2.asp
	 */

	FTPCDJDAC2Did = 0xFA88,

	/*
	 * Matrix Orbital LCD displays,
	 * which are the FT232BM ( similar to the 8U232AM)
	 */
	FTMTXORB0Did = 0xFA00,
	FTMTXORB1Did = 0xFA01,
	FTMTXORB2Did = 0xFA02,
	FTMTXORB3Did = 0xFA03,
	FTMTXORB4Did = 0xFA04,
	FTMTXORB5Did = 0xFA05,
	FTMTXORB6Did = 0xFA06,

	/* Interbiometrics USB I/O Board */
	INTERBIOMVid = 0x1209,
	INTERBIOMIOBRDDid = 0x1002,
	INTERBIOMMINIIOBRDDid = 0x1006,

	/*
	 * The following are the values for the Perle Systems
	 * UltraPort USB serial converters
	 */
	FTPERLEULTRAPORTDid = 0xF0C0,

	/*
	 * Sealevel SeaLINK+ adapters.
	 */

	SEALEVELVid = 0x0c52,

	SEALEVEL2101Did = 0x2101,	/* SeaLINK+232 (2101/2105) */
	SEALEVEL2102Did = 0x2102,	/* SeaLINK+485 (2102) */
	SEALEVEL2103Did = 0x2103,	/* SeaLINK+232I (2103) */
	SEALEVEL2104Did = 0x2104,	/* SeaLINK+485I (2104) */
	SEALEVEL22011Did = 0x2211,	/* SeaPORT+2/232 (2201) Port 1 */
	SEALEVEL22012Did = 0x2221,	/* SeaPORT+2/232 (2201) Port 2 */
	SEALEVEL22021Did = 0x2212,	/* SeaPORT+2/485 (2202) Port 1 */
	SEALEVEL22022Did = 0x2222,	/* SeaPORT+2/485 (2202) Port 2 */
	SEALEVEL22031Did = 0x2213,	/* SeaPORT+2 (2203) Port 1 */
	SEALEVEL22032Did = 0x2223,	/* SeaPORT+2 (2203) Port 2 */
	SEALEVEL24011Did = 0x2411,	/* SeaPORT+4/232 (2401) Port 1 */
	SEALEVEL24012Did = 0x2421,	/* SeaPORT+4/232 (2401) Port 2 */
	SEALEVEL24013Did = 0x2431,	/* SeaPORT+4/232 (2401) Port 3 */
	SEALEVEL24014Did = 0x2441,	/* SeaPORT+4/232 (2401) Port 4 */
	SEALEVEL24021Did = 0x2412,	/* SeaPORT+4/485 (2402) Port 1 */
	SEALEVEL24022Did = 0x2422,	/* SeaPORT+4/485 (2402) Port 2 */
	SEALEVEL24023Did = 0x2432,	/* SeaPORT+4/485 (2402) Port 3 */
	SEALEVEL24024Did = 0x2442,	/* SeaPORT+4/485 (2402) Port 4 */
	SEALEVEL24031Did = 0x2413,	/* SeaPORT+4 (2403) Port 1 */
	SEALEVEL24032Did = 0x2423,	/* SeaPORT+4 (2403) Port 2 */
	SEALEVEL24033Did = 0x2433,	/* SeaPORT+4 (2403) Port 3 */
	SEALEVEL24034Did = 0x2443,	/* SeaPORT+4 (2403) Port 4 */
	SEALEVEL28011Did = 0x2811,	/* SeaLINK+8/232 (2801) Port 1 */
	SEALEVEL28012Did = 0x2821,	/* SeaLINK+8/232 (2801) Port 2 */
	SEALEVEL28013Did = 0x2831,	/* SeaLINK+8/232 (2801) Port 3 */
	SEALEVEL28014Did = 0x2841,	/* SeaLINK+8/232 (2801) Port 4 */
	SEALEVEL28015Did = 0x2851,	/* SeaLINK+8/232 (2801) Port 5 */
	SEALEVEL28016Did = 0x2861,	/* SeaLINK+8/232 (2801) Port 6 */
	SEALEVEL28017Did = 0x2871,	/* SeaLINK+8/232 (2801) Port 7 */
	SEALEVEL28018Did = 0x2881,	/* SeaLINK+8/232 (2801) Port 8 */
	SEALEVEL28021Did = 0x2812,	/* SeaLINK+8/485 (2802) Port 1 */
	SEALEVEL28022Did = 0x2822,	/* SeaLINK+8/485 (2802) Port 2 */
	SEALEVEL28023Did = 0x2832,	/* SeaLINK+8/485 (2802) Port 3 */
	SEALEVEL28024Did = 0x2842,	/* SeaLINK+8/485 (2802) Port 4 */
	SEALEVEL28025Did = 0x2852,	/* SeaLINK+8/485 (2802) Port 5 */
	SEALEVEL28026Did = 0x2862,	/* SeaLINK+8/485 (2802) Port 6 */
	SEALEVEL28027Did = 0x2872,	/* SeaLINK+8/485 (2802) Port 7 */
	SEALEVEL28028Did = 0x2882,	/* SeaLINK+8/485 (2802) Port 8 */
	SEALEVEL28031Did = 0x2813,	/* SeaLINK+8 (2803) Port 1 */
	SEALEVEL28032Did = 0x2823,	/* SeaLINK+8 (2803) Port 2 */
	SEALEVEL28033Did = 0x2833,	/* SeaLINK+8 (2803) Port 3 */
	SEALEVEL28034Did = 0x2843,	/* SeaLINK+8 (2803) Port 4 */
	SEALEVEL28035Did = 0x2853,	/* SeaLINK+8 (2803) Port 5 */
	SEALEVEL28036Did = 0x2863,	/* SeaLINK+8 (2803) Port 6 */
	SEALEVEL28037Did = 0x2873,	/* SeaLINK+8 (2803) Port 7 */
	SEALEVEL28038Did = 0x2883,	/* SeaLINK+8 (2803) Port 8 */

	/* KOBIL Vendor ID chipcard terminals */
	KOBILVid = 0x0d46,
	KOBILCONVB1Did = 0x2020, /* KOBIL Konverter for B1 */
	KOBILCONVKAANDid = 0x2021, /* KOBILKonverter for KAAN */

	/* Icom ID-1 digital transceiver */
	ICOMID1Vid = 0x0C26,
	ICOMID1Did = 0x0004,

	FTASKRDR400Did = 0xC991,	/* ASK RDR 400 series card reader */
	FTDSS20Did = 0xFC82,		/* DSS-20 Sync Station for Sony Ericsson P800 */

	/*
	 * Home Electronics (www.home-electro.com) USB gadgets
	 */

	FTHETIRA1Did = 0xFA78,	/* Tira-1 IR transceiver */

	/*
	 *	An infrared receiver and transmitter using the
	 * 8U232AM chip 
	 * http://www.usbuirt.com
	 */

	FTUSBUIRTDid = 0xF850,

	FTELVUR100Did = 0xFB58,		/* USB-RS232-Umsetzer (UR 100) */
	FTELVUM100Did = 0xFB5A,		/* USB-Modul UM 100 */
	FTELVUO100Did = 0xFB5B,		/* USB-Modul UO 100 */
	FTELVALC8500Did = 0xF06E,		/* ALC 8500 Expert */
	FTELVCLI7000Did = 0xFB59,		/* Computer-Light-Interface */
	FTELVPPS7330Did = 0xFB5C,		/* Processor-Power-Supply (PPS 7330) */
	FTELVTFM100Did = 0xFB5D,		/* Temperartur-Feuchte Messgeraet (TFM 100) */
	FTELVUDF77Did = 0xFB5E,		/* USB DCF Funkurh (UDF 77) */
	FTELVUIO88Did = 0xFB5F,		/* USB-I/O Interface (UIO 88) */
	FTELVUAD8Did = 0xF068,		/* USB-AD-Wandler (UAD 8) */
	FTELVUDA7Did = 0xF069,		/* USB-DA-Wandler (UDA 7) */
	FTELVUSI2Did = 0xF06A,		/* USB-Schrittmotoren-Interface (USI 2) */
	FTELVT1100Did = 0xF06B,		/* Thermometer (T 1100) */
	FTELVPCD200Did = 0xF06C,		/* PC-Datenlogger (PCD 200) */
	FTELVULA200Did = 0xF06D,		/* USB-LCD-Ansteuerung (ULA 200) */
	FTELVFHZ1000PCDid = 0xF06F,	/* FHZ 1000 PC */
	FTELVCSI8Did = 0xE0F0,		/* Computer-Schalt-Interface (CSI 8) */
	FTELVEM1000DLDid = 0xE0F1,	/* PC-Datenlogger fuer Energiemonitor (EM 1000 DL) */
	FTELVPCK100Did = 0xE0F2,		/* PC-Kabeltester (PCK 100) */
	FTELVRFP500Did = 0xE0F3,		/* HF-Leistungsmesser (RFP 500) */
	FTELVFS20SIGDid = 0xE0F4,		/* Signalgeber (FS 20 SIG) */
	FTELVWS300PCDid = 0xE0F6,		/* PC-Wetterstation (WS 300 PC) */
	FTELVFHZ1300PCDid = 0xE0E8,	/* FHZ 1300 PC */
	FTELVWS500Did = 0xE0E9,		/* PC-Wetterstation (WS 500) */

	/*
	 * Definitions for ID TECH (http://www.idt-net.com) devices
	 */

	IDTECHVid = 0x0ACD,			/* ID TECH Vendor ID */
	IDTECHIDT1221UDid = 0x0300,	/* IDT1221U USB to RS-232

	/*
	 * Definitions for Omnidirectional Control Technology, Inc. devices
	 */
	OCTVid = 0x0B39,	/* OCT vendor ID */

	/*
	 * Note: OCT US101 is also rebadged as Dick Smith Electronics (NZ) XH6381
	 * Also rebadged as Dick Smith Electronics (Aus) XH6451
	 * Also rebadged as SIIG Inc. model US2308 hardware version 1
	 */
	OCTUS101Did = 0x0421,	/* OCT US101 USB to RS-232 */

	/*
	 *	infrared receiver for access control with IR tags 
	 */
	FTPIEGROUPDid = 0xF208,

	/*
	 * Definitions for Artemis astronomical USB based cameras
	 * http://www.artemisccd.co.uk/
	 */

	FTARTEMISDid = 0xDF28,		/* All Artemis Cameras */

	FTATIKATK16Did = 0xDF30,		/* ATIK ATK-16 Grayscale Camera */
	FTATIKATK16CDid = 0xDF32,		/* ATIK ATK-16C Colour Camera */
	FTATIKATK16HRDid = 0xDF31,	/* ATIK ATK-16HR Grayscale */
	FTATIKATK16HRCDid = 0xDF33,	/* ATIK ATK-16HRC Colour Camera */

	/*
	 * Protego products
	 */
	PROTEGOSPECIAL1 = 0xFC70,	/* special/unknown device */
	PROTEGOR2X0 = 0xFC71,		/* R200-USB TRNG unit (R210, R220, and R230) */
	PROTEGOSPECIAL3 = 0xFC72,	/* special/unknown device */
	PROTEGOSPECIAL4 = 0xFC73,	/* special/unknown device */

	/*
	 * Gude Analog- und Digitalsysteme GmbH
	 */
	FTGUDEADSE808Did = 0xE808,
	FTGUDEADSE809Did = 0xE809,
	FTGUDEADSE80ADid = 0xE80A,
	FTGUDEADSE80BDid = 0xE80B,
	FTGUDEADSE80CDid = 0xE80C,
	FTGUDEADSE80DDid = 0xE80D,
	FTGUDEADSE80EDid = 0xE80E,
	FTGUDEADSE80FDid = 0xE80F,
	FTGUDEADSE888Did = 0xE888,	/* Expert ISDN Control USB */
	FTGUDEADSE889Did = 0xE889,	/* USB RS-232 OptoBridge */
	FTGUDEADSE88ADid = 0xE88A,
	FTGUDEADSE88BDid = 0xE88B,
	FTGUDEADSE88CDid = 0xE88C,
	FTGUDEADSE88DDid = 0xE88D,
	FTGUDEADSE88EDid = 0xE88E,
	FTGUDEADSE88FDid = 0xE88F,

	/*
	 * Linx Technologies
	 */
	LINXSDMUSBQSSDid = 0xF448,		/* Linx SDM-USB-QS-S */
	LINXMASTERDEVEL2Did = 0xF449,	/* Linx Master Development.0 */
	LINXFUTURE0Did = 0xF44A,		/* Linx future device */
	LINXFUTURE1Did = 0xF44B,		/* Linx future device */
	LINXFUTURE2Did = 0xF44C,		/* Linx future device */

	/* CCS Inc. ICDU/ICDU40 - the FT232BM used in a in-circuit-debugger
	 * unit for PIC16's/PIC18's
	 */
	FTCCSICDU200Did = 0xF9D0,
	FTCCSICDU401Did = 0xF9D1,

	/* Inside Accesso contactless reader ( http://www.insidefr.com) */
	INSIDEACCESSO = 0xFAD0,

	/*
	 * Intrepid Control Systems
	 * ( http://www.intrepidcs.com/) ValueCAN and NeoVI
	 */
	INTREDidVid = 0x093C,
	INTREDidVALUECANDid = 0x0601,
	INTREDidNEOVIDid = 0x0701,

	/*
	 * Falcom Wireless Communications GmbH
	 */
	FALCOMVid = 0x0F94,
	FALCOMTWISTDid = 0x0001,	/* Falcom Twist USB GPRS modem */
	FALCOMSAMBADid = 0x0005,	/* Falcom Samba USB GPRS modem */

	/*
	 * SUUNTO
	 */
	FTSUUNTOSPORTSDid = 0xF680,	/* Suunto Sports instrument */

	/*
	 * B&B Electronics
	 */
	BANDBVid = 0x0856,			/* B&B Electronics Vendor ID */
	BANDBUSOTL4Did = 0xAC01,	/* USOTL4 Isolated RS-485 */
	BANDBUSTL4Did = 0xAC02,		/* USTL4 RS-485 Converter */
	BANDBUSO9ML2Did = 0xAC03,	/* USO9ML2 Isolated RS-232 */

	/*
	 * RM Michaelides CANview USB ( http://www.rmcan.com)
	 * CAN fieldbus interface adapter
	 */
	FTRMCANVIEWDid = 0xfd60,

	/*
	 * EVER Eco Pro UPS ( http://www.ever.com.pl/)
	 */
	EVERECOPROCDSDid = 0xe520,	/* RS-232 converter */

	/*
	 * 4N-GALAXY.DE PIDs for CAN-USB, USB-RS232, USB-RS422, USB-RS485,
	 * USB-TTY activ, USB-TTY passiv. Some PIDs are used by several devices
	 */
	FT4NGALAXYDE0Did = 0x8372,
	FT4NGALAXYDE1Did = 0xF3C0,
	FT4NGALAXYDE2Did = 0xF3C1,

	/*
	 * Mobility Electronics products.
	 */
	MOBILITYVid = 0x1342,
	MOBILITYUSBSERIALDid = 0x0202,	/* EasiDock USB 200 serial

	/*
	 * microHAM product IDs ( http://www.microham.com)
	 */
	FTMHAMKWDid = 0xEEE8,		/* USB-KW interface */
	FTMHAMYSDid = 0xEEE9,		/* USB-YS interface */
	FTMHAMY6Did = 0xEEEA,		/* USB-Y6 interface */
	FTMHAMY8Did = 0xEEEB,		/* USB-Y8 interface */
	FTMHAMICDid = 0xEEEC,		/* USB-IC interface */
	FTMHAMDB9Did = 0xEEED,	/* USB-DB9 interface */
	FTMHAMRS232Did = 0xEEEE,	/* USB-RS232 interface */
	FTMHAMY9Did = 0xEEEF,		/* USB-Y9 interface */

	/*
	 * Active Robots product ids.
	 */
	FTACTIVEROBOTSDid = 0xE548,	/* USB comms board */
	XSENSCONVERTER0Did = 0xD388,
	XSENSCONVERTER1Did = 0xD389,
	XSENSCONVERTER2Did = 0xD38A,
	XSENSCONVERTER3Did = 0xD38B,
	XSENSCONVERTER4Did = 0xD38C,
	XSENSCONVERTER5Did = 0xD38D,
	XSENSCONVERTER6Did = 0xD38E,
	XSENSCONVERTER7Did = 0xD38F,

	/*
	 * Xsens Technologies BV products ( http://www.xsens.com).
	 */
	FTTERATRONIKVCPDid = 0xEC88,	/* Teratronik device */
	FTTERATRONIKD2XXDid = 0xEC89,	/* Teratronik device */

	/*
	 * Evolution Robotics products ( http://www.evolution.com/).
	 */
	EVOLUTIONVid = 0xDEEE,
	EVOLUTIONER1Did = 0x0300,		/* ER1 Control Module */

	/* Pyramid Computer GmbH */
	FTPYRAMIDDid = 0xE6C8,		/* Pyramid Appliance Display */

	/*
	 * Posiflex inc retail equipment ( http://www.posiflex.com.tw)
	 */
	POSIFLEXVid = 0x0d3a,
	POSIFLEXPP7000Did = 0x0300,		/* PP-7000II thermal printer */

	/*
	 * Westrex International devices
	 */
	FTWESTREXMODEL777Did = 0xDC00,		/* Model 777 */
	FTWESTREXMODEL8900FDid = 0xDC01,		/* Model 8900F */

	/*
	 * RR-CirKits LocoBuffer USB ( http://www.rr-cirkits.com)
	 */
	FTRRCIRKITSLOCOBUFFERDid = 0xc7d0,	/* LocoBuffer USB */
	FTECLOCOM1WIREDid = 0xEA90,			/* COM to 1-Wire USB

	/*
	 * Papouch products ( http://www.papouch.com/)
	 */
	PAPOUCHVid = 0x5050,
	PAPOUCHTMUDid = 0x0400,					/* TMU USB Thermometer */

	/*
	 * ACG Identification Technologies GmbH products http://www.acg.de/
	 */
	FTACGHFDUALDid = 0xDD20,				/* HF Dual ISO Reader (RFID) */
};

/* Commands */
enum {
	FTRESET = 0,			/* Reset the port */
	FTSETMODEMCTRL,			/* Set the modem control register */
	FTSETFLOWCTRL,			/* Set flow control register */
	FTSETBaudRate,			/* Set baud rate */
	FTSETDATA,				/* Set the parameters, parity */
	FTGETMODEMSTATUS,		/* Retrieve current value of modem ctl */
	FTSETEVENTCHAR,			/* Set the event character */
	FTSETERRORCHAR,			/* Set the error character */
	FTSETLATENCYTIMER,		/* Set the latency timer */
	FTGETLATENCYTIMER,		/* Get the latency timer */
	FTGETE2READ = 0x90,		/* Read an address */
};

enum {
	Rftdireq = (1<<6),	/* bit for type of request */
};

/*
 * Commands Data size
 * Sets have wLength = 0
 * Gets have wValue = 0
 */

enum {
	FTGETMODEMSTATUSSZ = 1,
	FTGETLATENCYTIMERSZ = 0,		/* Get the latency timer */
	FTGETE2READSZ = 2,				/* Read an address */
};

/*
 * bRequest: FTGETE2READ
 * wIndex: Address of word to read
 * Data: Will return a word of data from E2Address
 */

/* Port Identifier Table */
enum {
	PITDEFAULT = 0,	/* SIOA */
	PITA,			/* SIOA */
};

/*
 * bRequest: FTRESET
 * wValue: Ctl Val
 * wIndex: Port
 */
enum {
	FTRESETCTLVAL = 0, 
	FTRESETCTLVALPURGERX = 1,
	FTRESETCTLVALPURGETX = 2,
};



/*
  * BmRequestType: SET
  * bRequest: FTSETBaudRate
  * wValue: BaudDivisor value - see below
  * Bits 15 to 0 of the 17-bit divisor are placed in the request value. Bit 16 is
  * placed in bit 0 of the request index.
  */



/* chip type */
 typedef enum {
	SIO = 1,
	FT8U232AM = 2,
	FT232BM = 3,
	FT2232C = 4,
};

enum {
	 FTb300 = 0,
	 FTb600 = 1,
	 FTb1200 = 2,
	 FTb2400 = 3,
	 FTb4800 = 4,
	 FTb9600 = 5,
	 FTb19200 = 6,
	 FTb38400 = 7,
	 FTb57600 = 8,
	 FTb115200 = 9,
};

/*
 * bRequest: FTSETDATA
 * wValue: Data characteristics
 * wIndex: Port
 */

enum {
	FTSETDATAParNONE = (0x0 << 8),
	FTSETDATAParODD = (0x1 << 8),
	FTSETDATAParEVEN = (0x2 << 8),
	FTSETDATAParMARK = (0x3 << 8),
	FTSETDATAParSPACE = (0x4 << 8),
	FTSETDATASTOPBITS1 = (0x0 << 11),
	FTSETDATASTOPBITS15 = (0x1 << 11),
	FTSETDATASTOPBITS2 = (0x2 << 11),
	FTSETBREAK = (0x1 << 14),
};

 /*
  * bRequest: FTSETMODEMCTRL
  * wValue: ControlValue (see below)
  * wIndex: Port
  */


/*
 * bRequest: FTSETFLOWCTRL
 * wValue: Xoff/Xon
 * wIndex: Protocol/Port - hIndex is protocl / lIndex is port
 */


enum {
	FTDISABLEFLOWCTRL = 0x0,
	FTRTSCTSHS = (0x1 << 8),
	FTDTRDSRHS = (0x2 << 8),
	FTXONXOFFHS = (0x4 << 8),
};


/*
 * bRequest: FTGETLATENCYTIMER
 * wIndex: Port
 * wLength: 0
 * Data: latency (on return)
 */


/*
 * bRequest: FTSETLATENCYTIMER
 * wValue: Latency (milliseconds)
 * wIndex: Port
 */



/*
 * BmRequestType: SET
 * bRequest: FTSETEVENTCHAR
 * wValue: EventChar
 * wIndex: Port
 */

/*
 * BmRequestType: SET
 * bRequest: FTSETERRORCHAR
 * wValue: Error Char
 * wIndex: Port
 */

 
/*
 * BmRequestType: GET
 * bRequest: FTGETMODEMSTATUS
 * wIndex: Port
 * wLength: 1
 * Data: Status
 */

enum {
	FTCTSMASK = 0x10,
	FTDSRMASK = 0x20,
	FTRIMASK = 0x40,
	FTRLSDMASK = 0x80
};

enum {
	/* byte 0 of in data hdr */
	FTICTS = (1 << 4),
	FTIDSR = (1 << 5),
	FTIRI = (1 << 6),
	FTIRLSD = (1 << 7),	/* receive line signal detect */

	/* byte 1 of in data hdr */
	FTIDR = 1,			/* data ready */
	FTIOE = (1<<1),		/* overrun error */
	FTIPE = (1<<2),		/* parity error */
	FTIFE = (1<<3),		/* framing error */
	FTIBI = (1<<4),		/* break interrupt */
	FTITHRE = (1<<5),	/* xmitter holding register */
	FTITEMT = (1<<6),	/* xmitter empty */
	FTIFIFO = (1<<7),	/* error in rcv fifo */

	/* byte 0 of out data hdr len does not include byte 0 */
	FTOLENMSK = 0x3F,
	FTOPORT= 0x80,	/* must be set */
};

extern Serialops ftops;
int	ftmatch(Serial *ser, char *info);

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to webmaster@9p.io.