1
0
mirror of https://github.com/Interlisp/maiko.git synced 2026-01-13 15:18:14 +00:00
Interlisp.maiko/inc/rs232c.h
Nick Briggs c60b522012
Files should explicitly include the definitions they directly depend on (#355)
... start by fixing the include files and the fallout in C source from
removing includes not directly needed by headers that previously included
them.
2021-02-13 21:41:31 -08:00

167 lines
4.2 KiB
C
Executable File

#ifndef RS232C_H
#define RS232C_H 1
/* $Id: rs232c.h,v 1.2 1999/01/03 02:06:22 sybalsky Exp $ (C) Copyright Venue, All Rights Reserved */
/************************************************************************/
/* */
/* (C) Copyright 1989-96 Venue. All Rights Reserved. */
/* Manufactured in the United States of America. */
/* */
/************************************************************************/
#include "lispemul.h" /* for LispPTR, DLword, DLbyte */
/*
RS232C Buffer Status
*/
#define INACTIVE 0
#define ACTIVE 1
#define TERMINATED 2
/*
DLRS232C.IOP.COMMANDS
*/
#define ON 0
#define OFF 1
#define BREAK_ON 2
#define BREAK_OFF 3
#define ABORT_INPUT 4
#define ABORT_OUTPUT 5
#define SET_RS366_STATUS 6
#define GET_STATUS 7
#define MAJOR_SET_PARAMETERS 8
#define MINOR_SET_PARAMETERS 14
#define SET_CHANNEL_RESET_FLAG 15
/*
Device Status
*/
#define IOP_DATA_LINE_OCCUPIED 4096
#define PRESENT_NEXT_DIGIT 2048
#define CALL_ORIGINATION_STATUS 1024
#define ABANDON_CALL_AND_RETRY 512
#define POWER_INDICATION 256
#define REAK_DETECTED 128
#define DATA_LOST 64
#define CLEAR_TO_SEND 32
#define NOT_DEFINED 16
#define CARRIER_DETECT 8
#define RING_HEARD 4
#define DATA_SET_READY 2
#define RING_INDICATOR 1
/*
RS232C Data Structure
*/
typedef struct {
DLword frame_timeout;
DLbyte correspondent;
DLbyte synch_char;
unsigned reset_ring_heard : 1;
unsigned reset_break_detected : 1;
unsigned reset_data_lost : 1;
unsigned request_to_send : 1;
unsigned data_terminal_ready : 1;
unsigned stop_bits : 1;
unsigned line_type : 2;
unsigned parity : 3;
unsigned char_length : 2;
unsigned synch_count : 3;
unsigned nil1 : 3;
unsigned line_speed : 5;
DLbyte nil2;
DLword interrupt_mask;
DLword flowcontrol_on;
DLword flowcontrol_xon_char;
DLword flowcontrol_xoff_char;
} DLRS232C_PARAMETER_CSB;
typedef struct {
DLword block_pointer_lo;
DLword block_pointer_hi;
DLword byte_count;
DLword returned_byte_count;
DLword transfer_status;
DLword nil1;
unsigned completed : 1;
unsigned put : 1;
unsigned nil2 : 6;
LispPTR synch_event;
LispPTR next;
} DLRS232C_IOCB;
typedef struct {
unsigned success : 1;
unsigned nil2 : 6;
unsigned data_lost : 1;
unsigned device_error : 1;
unsigned frame_timeout : 1;
unsigned checksum_error : 1;
unsigned parity_error : 1;
unsigned asynch_frame_error : 1;
unsigned invalid_character : 1;
unsigned aborted : 1;
unsigned disaster : 1;
} DLRS232C_IOCB_TRANSFER_STATUS;
typedef struct {
unsigned rs232c_absent : 1;
unsigned nil : 15;
} DLRS232C_HDW_CONF;
typedef struct {
unsigned busy : 1;
unsigned nil : 15;
} DLRS232C_IOP_GET_FLAG;
typedef struct {
unsigned busy : 1;
unsigned nil : 15;
} DLRS232C_IOP_PUT_FLAG;
typedef struct {
unsigned busy : 1;
unsigned nil : 11;
unsigned command : 4;
} DLRS232C_IOP_MISC_CMD;
typedef struct {
unsigned success : 1;
unsigned nil : 14;
unsigned unimplemented : 1;
} DLRS232C_PARAMETER_OUTCOME;
typedef struct {
unsigned nil1 : 3;
unsigned data_line_occupied : 1;
unsigned present_next_digit : 1;
unsigned call_origination_status : 1;
unsigned abandon_call_and_retry : 1;
unsigned power_indication : 1;
unsigned break_detected : 1;
unsigned data_lost : 1;
unsigned clear_to_send : 1;
unsigned nil2 : 1;
unsigned carrier_detect : 1;
unsigned ring_heard : 1;
unsigned data_set_ready : 1;
unsigned ring_indicator : 1;
} DLRS232C_DEVICE_STATUS;
typedef struct {
DLword nil[22];
DLword rs232c_length;
char rs232c_data;
} RS232C_ENCAPSULATION;
extern DLword *Lisp_world;
#endif