OpenCores
URL https://opencores.org/ocsvn/test_project/test_project/trunk

Subversion Repositories test_project

[/] [test_project/] [trunk/] [linux_sd_driver/] [include/] [linux/] [generic_serial.h] - Blame information for rev 81

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 62 marcus.erl
/*
2
 *  generic_serial.h
3
 *
4
 *  Copyright (C) 1998 R.E.Wolff@BitWizard.nl
5
 *
6
 *  written for the SX serial driver.
7
 *     Contains the code that should be shared over all the serial drivers.
8
 *
9
 *  Version 0.1 -- December, 1998.
10
 */
11
 
12
#ifndef GENERIC_SERIAL_H
13
#define GENERIC_SERIAL_H
14
 
15
#ifdef __KERNEL__
16
#include <linux/mutex.h>
17
 
18
struct real_driver {
19
  void                    (*disable_tx_interrupts) (void *);
20
  void                    (*enable_tx_interrupts) (void *);
21
  void                    (*disable_rx_interrupts) (void *);
22
  void                    (*enable_rx_interrupts) (void *);
23
  int                     (*get_CD) (void *);
24
  void                    (*shutdown_port) (void*);
25
  int                     (*set_real_termios) (void*);
26
  int                     (*chars_in_buffer) (void*);
27
  void                    (*close) (void*);
28
  void                    (*hungup) (void*);
29
  void                    (*getserial) (void*, struct serial_struct *sp);
30
};
31
 
32
 
33
 
34
struct gs_port {
35
  int                     magic;
36
  unsigned char           *xmit_buf;
37
  int                     xmit_head;
38
  int                     xmit_tail;
39
  int                     xmit_cnt;
40
  struct mutex            port_write_mutex;
41
  int                     flags;
42
  wait_queue_head_t       open_wait;
43
  wait_queue_head_t       close_wait;
44
  int                     count;
45
  int                     blocked_open;
46
  struct tty_struct       *tty;
47
  unsigned long           event;
48
  unsigned short          closing_wait;
49
  int                     close_delay;
50
  struct real_driver      *rd;
51
  int                     wakeup_chars;
52
  int                     baud_base;
53
  int                     baud;
54
  int                     custom_divisor;
55
  spinlock_t              driver_lock;
56
};
57
 
58
#endif /* __KERNEL__ */
59
 
60
/* Flags */
61
/* Warning: serial.h defines some ASYNC_ flags, they say they are "only"
62
   used in serial.c, but they are also used in all other serial drivers.
63
   Make sure they don't clash with these here... */
64
#define GS_TX_INTEN      0x00800000
65
#define GS_RX_INTEN      0x00400000
66
#define GS_ACTIVE        0x00200000
67
 
68
 
69
 
70
#define GS_TYPE_NORMAL   1
71
 
72
#define GS_DEBUG_FLUSH   0x00000001
73
#define GS_DEBUG_BTR     0x00000002
74
#define GS_DEBUG_TERMIOS 0x00000004
75
#define GS_DEBUG_STUFF   0x00000008
76
#define GS_DEBUG_CLOSE   0x00000010
77
#define GS_DEBUG_FLOW    0x00000020
78
#define GS_DEBUG_WRITE   0x00000040
79
 
80
#ifdef __KERNEL__
81
void gs_put_char(struct tty_struct *tty, unsigned char ch);
82
int  gs_write(struct tty_struct *tty,
83
             const unsigned char *buf, int count);
84
int  gs_write_room(struct tty_struct *tty);
85
int  gs_chars_in_buffer(struct tty_struct *tty);
86
void gs_flush_buffer(struct tty_struct *tty);
87
void gs_flush_chars(struct tty_struct *tty);
88
void gs_stop(struct tty_struct *tty);
89
void gs_start(struct tty_struct *tty);
90
void gs_hangup(struct tty_struct *tty);
91
int  gs_block_til_ready(void *port, struct file *filp);
92
void gs_close(struct tty_struct *tty, struct file *filp);
93
void gs_set_termios (struct tty_struct * tty,
94
                     struct ktermios * old_termios);
95
int  gs_init_port(struct gs_port *port);
96
int  gs_setserial(struct gs_port *port, struct serial_struct __user *sp);
97
int  gs_getserial(struct gs_port *port, struct serial_struct __user *sp);
98
void gs_got_break(struct gs_port *port);
99
#endif /* __KERNEL__ */
100
#endif

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.