|
|
1.1 root 1: #ifndef __STAR_DOT_H
2: #define __STAR_DOT_H
3:
4: /*
5: * _STAR.H 5.20A June 8, 1995
6: *
7: *
8: * The Greenleaf Comm Library
9: *
10: * Copyright (C) 1991-1995 Greenleaf Software Inc. All Rights Reserved.
11: *
12: * NOTES
13: *
14: * This header file contains constants, structures, and definitions
15: * used by the Greenleaf Stargate Intelligent board interface code.
16: * There should generally not be any reason for an end user of the
17: * library to include this file.
18: *
19: * MODIFICATIONS
20: *
21: * December 12, 1992 4.00A : Initial release
22: */
23:
24: /*
25: * The next two structures are my recreations of the data structures
26: * found in the dual ported RAM buffers on the Stargate board.
27: */
28:
29: typedef struct {
30: unsigned int global_command_word;
31: unsigned int global_status_word;
32: unsigned int global_service_request;
33: unsigned int buffer_space_remaining;
34: unsigned int board_type;
35: unsigned int acl_control_program_version;
36: unsigned int number_of_channels;
37: unsigned int ccb_offset;
38: unsigned int ccb_size;
39: unsigned int global_command_word_2;
40: unsigned int global_status_word_2;
41: unsigned int comm_error_service_request;
42: unsigned int input_buffer_service_request;
43: unsigned int output_buffer_service_request;
44: unsigned int modem_status_service_request;
45: unsigned int channel_command_service_request;
46: } GLOBAL_CONTROL_BLOCK;
47:
48: typedef struct {
49: unsigned int baud_rate;
50: unsigned int data_format;
51: unsigned int line_protocol;
52: unsigned int input_buffer_size;
53: unsigned int output_buffer_size;
54: unsigned int input_buffer_trigger_rate;
55: unsigned int output_buffer_low_water_mark;
56: unsigned int input_xon_xoff_characters;
57: unsigned int input_buffer_high_water_mark;
58: unsigned int input_buffer_low_water_mark;
59: unsigned int channel_command;
60: unsigned int channel_status;
61: unsigned int input_buffer_start;
62: unsigned int input_buffer_end;
63: unsigned int output_buffer_start;
64: unsigned int output_buffer_end;
65: unsigned int next_character_to_input;
66: unsigned int next_character_from_input;
67: unsigned int next_character_to_output;
68: unsigned int next_character_from_output;
69: unsigned int communication_error_status;
70: unsigned int bad_character_pointer;
71: unsigned int modem_control_word;
72: unsigned int modem_status_word;
73: unsigned int blocking_status;
74: unsigned int character_received_flag;
75: unsigned int output_xon_xoff_characters;
76: unsigned int channel_status_2;
77: } CHANNEL_CONTROL_BLOCK;
78:
79: typedef struct smart_stargate_port {
80: CHANNEL_CONTROL_BLOCK volatile far * ccb;
81: unsigned char volatile far * buffer;
82: struct smart_stargate_port *next_port;
83: int ram_latch;
84: int ram_enable;
85: int ram_disable;
86: int port_number;
87: int board_number;
88: int line_status;
89: } STARGATE_PORT;
90:
91: typedef struct smart_stargate_board {
92: GLOBAL_CONTROL_BLOCK volatile far * gcb;
93: unsigned int latch;
94: STARGATE_PORT *first_port;
95: int first_port_number;
96: int number_of_ports;
97: enum { ACL_UNKNOWN = 0, ACLII, ACL16 } board_type;
98: } STARGATE_BOARD;
99:
100: #define MAX_BOARDS 4
101: int GF_CONV _DumpPortStatusSmartStarGate( PORT *port, PORT_DUMPER printer );
102: int GF_CONV _SendCCBCommand( CHANNEL_CONTROL_BLOCK volatile far * ccb, int cmd );
103:
104: extern STARGATE_BOARD stargate_boards[ MAX_BOARDS ];
105:
106: #endif /* #ifndef __STAR_DOT_H */
107:
108:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.