source: soft/giet_vm/giet_drivers/tty_driver.h @ 455

Last change on this file since 455 was 437, checked in by alain, 10 years ago

Introducing dynamic allocation of peripheral channel(TTY, NIC, TIM, CMA)
Removint the ICU driver : ICU component not supported anymore.
Removing the FBF driver.

File size: 2.9 KB
Line 
1///////////////////////////////////////////////////////////////////////////////////
2// File     : tty_driver.h
3// Date     : 01/11/2013
4// Author   : alain greiner
5// Copyright (c) UPMC-LIP6
6///////////////////////////////////////////////////////////////////////////////////
7// The tty_driver.c and tty_drivers.h files are part ot the GIET-VM kernel.
8// This driver supports the SocLib vci_multi_tty component.
9//
10// The total number of TTY terminals must be defined by the configuration
11// parameter NB_TTY_CHANNELS in the hard_config.h file.
12//
13// The "system" terminal is TTY[0].
14// The "user" TTYs are allocated to applications requesting it.
15//
16// The SEG_TTY_BASE address must be defined in the hard_config.h file.
17//
18// All physical accesses to device registers are done by the two
19// _tty_get_register(), _tty_set_register() low-level functions,
20// that are handling virtual / physical addressing.
21///////////////////////////////////////////////////////////////////////////////////
22
23#ifndef _GIET_TTY_DRIVERS_H_
24#define _GIET_TTY_DRIVERS_H_
25
26#include <utils.h>
27
28///////////////////////////////////////////////////////////////////////////////////
29//                     registers offsets
30///////////////////////////////////////////////////////////////////////////////////
31
32enum TTY_registers
33{
34    TTY_WRITE   = 0,
35    TTY_STATUS  = 1,
36    TTY_READ    = 2,
37    TTY_CONFIG  = 3,
38    /**/
39    TTY_SPAN    = 4,
40};
41
42///////////////////////////////////////////////////////////////////////////////////
43//                   external variables
44///////////////////////////////////////////////////////////////////////////////////
45
46extern volatile unsigned int _tty_rx_buf[];
47
48extern volatile unsigned int _tty_rx_full[];
49
50extern giet_lock_t _tty_lock[];
51
52//////////////////////////////////////////////////////////////////////////////////
53//                    access functions
54//////////////////////////////////////////////////////////////////////////////////
55
56extern unsigned int _tty_get_register( unsigned int channel,
57                                       unsigned int index );
58
59extern void _tty_set_register( unsigned int channel,
60                               unsigned int index,
61                               unsigned int value );
62
63///////////////////////////////////////////////////////////////////////////////////
64//                 Interrupt Service Routine
65///////////////////////////////////////////////////////////////////////////////////
66
67extern void _tty_rx_isr( unsigned int irq_type,
68                         unsigned int irq_id,
69                         unsigned int channel );
70
71extern void _tty_tx_isr( unsigned int irq_type,
72                         unsigned int irq_id,
73                         unsigned int channel );
74
75
76#endif
77
78// Local Variables:
79// tab-width: 4
80// c-basic-offset: 4
81// c-file-offsets:((innamespace . 0)(inline-open . 0))
82// indent-tabs-mode: nil
83// End:
84// vim: filetype=c:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
85
Note: See TracBrowser for help on using the repository browser.