blob: 4983b3d2c56e142305bab9d58d666b89c4e606cf (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
/*********************************************************************
*
* Filename: irvtd_driver.h
* Version: 0.1
*
* Copyright (c) 1998, Takahide Higuchi <thiguchi@pluto.dti.ne.jp>,
* All Rights Reserved.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* I, Takahide Higuchi, provide no warranty for any of this software.
* This material is provided "AS-IS" and at no charge.
*
********************************************************************/
#include <linux/tty.h>
#include <net/irda/irlap.h>
#include <net/irda/irlmp.h>
#include <net/irda/irttp.h>
#define VSP_TYPE_NORMAL 1
#define VSP_TYPE_CALLOUT 2
#define IRCOMM_MAJOR 60; /* Zero means automatic allocation
60,61,62,and 63 is reserved for experiment */
#define IRVTD_MINOR 64
#define IRVTD_CALLOUT_MINOR 32
#define IRVTD_TYPE_NORMAL 11
#define IRVTD_TYPE_CALLOUT 12
#define IRCOMM_HEADER 1
#define IRCOMM_RESERVE LAP_HEADER+LMP_HEADER+TTP_HEADER+IRCOMM_HEADER
/*
* Definitions for ircomm_cb_struct flags field
* this section is "stolen" from linux-kernel (drivers/char/serial.c)
*/
#define IRVTD_ASYNC_HUP_NOTIFY 0x0001 /* Notify getty on hangups and closes
on the callout port */
/* #define IRVTD_ASYNC_FOURPORT 0x0002 */
/* Set OU1, OUT2 per AST Fourport settings */
#define IRVTD_ASYNC_SAK 0x0004 /* Secure Attention Key (Orange book) */
#define IRVTD_ASYNC_SPLIT_TERMIOS 0x0008 /* Separate termios for dialin/callout */
#define IRVTD_ASYNC_SPD_MASK 0x0030
#define IRVTD_ASYNC_SPD_HI 0x0010 /* Use 56000 instead of 38400 bps */
#define IRVTD_ASYNC_SPD_VHI 0x0020 /* Use 115200 instead of 38400 bps */
#define IRVTD_ASYNC_SPD_CUST 0x0030 /* Use user-specified divisor */
#define IRVTD_ASYNC_SKIP_TEST 0x0040 /* Skip UART test during autoconfiguration */
#define IRVTD_ASYNC_AUTO_IRQ 0x0080 /* Do automatic IRQ during autoconfiguration */
#define IRVTD_ASYNC_SESSION_LOCKOUT 0x0100 /* Lock out cua opens based on session */
#define IRVTD_ASYNC_PGRP_LOCKOUT 0x0200 /* Lock out cua opens based on pgrp */
#define IRVTD_ASYNC_CALLOUT_NOHUP 0x0400 /* Don't do hangups for cua device */
#define IRVTD_ASYNC_FLAGS 0x0FFF /* Possible legal async flags */
#define IRVTD_ASYNC_USR_MASK 0x0430 /* Legal flags that non-privileged
* users can set or reset */
/* Internal flags used only by kernel/chr_drv/serial.c */
#define IRVTD_ASYNC_INITIALIZED 0x80000000 /* Serial port was initialized */
#define IRVTD_ASYNC_CALLOUT_ACTIVE 0x40000000 /* Call out device is active */
#define IRVTD_ASYNC_NORMAL_ACTIVE 0x20000000 /* Normal device is active */
#define IRVTD_ASYNC_BOOT_AUTOCONF 0x10000000 /* Autoconfigure port on bootup */
#define IRVTD_ASYNC_CLOSING 0x08000000 /* Serial port is closing */
#define IRVTD_ASYNC_CTS_FLOW 0x04000000 /* Do CTS flow control */
#define IRVTD_ASYNC_CHECK_CD 0x02000000 /* i.e., CLOCAL */
#define IRVTD_ASYNC_SHARE_IRQ 0x01000000 /* for multifunction cards */
#define IRVTD_ASYNC_CLOSING_WAIT_INF 0
#define IRVTD_ASYNC_CLOSING_WAIT_NONE 65535
/**************************************/
#define DELTA_DTR 0x01
#define DELTA_RTS 0x02
#define MCR_DTR 0x04
#define MCR_RTS 0x08
#define DELTA_CTS 0x01
#define DELTA_DSR 0x02
#define DELTA_RI 0x04
#define DELTA_DCD 0x08
#define MSR_CTS 0x10
#define MSR_DSR 0x20
#define MSR_RI 0x40
#define MSR_DCD 0x80
#define LSR_OE 0x02 /* Overrun error indicator */
#define LSR_PE 0x04 /* Parity error indicator */
#define LSR_FE 0x08 /* Frame error indicator */
#define LSR_BI 0x01 /* Break interrupt indicator */
/**************************************/
int irvtd_register_ttydriver(void);
void irvtd_unregister_ttydriver(void);
void irvtd_flush_chars(struct tty_struct *tty);
|