Merge master.kernel.org:/pub/scm/linux/kernel/git/herbert/crypto-2.6
[linux-2.6] / include / asm-m68knommu / quicc_simple.h
1 /***********************************
2  * $Id: quicc_simple.h,v 1.1 2002/03/02 15:01:10 gerg Exp $
3  ***********************************
4  *
5  ***************************************
6  * Simple drivers common header
7  ***************************************
8  */
9
10 #ifndef __SIMPLE_H
11 #define __SIMPLE_H
12
13 /* #include "quicc.h" */
14
15 #define GLB_SCC_0   0
16 #define GLB_SCC_1   1
17 #define GLB_SCC_2   2
18 #define GLB_SCC_3   3
19
20 typedef void (int_routine)(unsigned short interrupt_event);
21 typedef int_routine *int_routine_ptr; 
22 typedef void *(alloc_routine)(int length);
23 typedef void (free_routine)(int scc_num, int channel_num, void *buf);
24 typedef void (store_rx_buffer_routine)(int scc_num, int channel_num, void *buff, int length);
25 typedef int  (handle_tx_error_routine)(int scc_num, int channel_num, QUICC_BD *tbd);
26 typedef void (handle_rx_error_routine)(int scc_num, int channel_num, QUICC_BD *rbd);
27 typedef void (handle_lost_error_routine)(int scc_num, int channel_num);
28
29 /* user defined functions for global errors */
30 typedef void (handle_glob_overrun_routine)(int scc_number);
31 typedef void (handle_glob_underrun_routine)(int scc_number);
32 typedef void (glob_intr_q_overflow_routine)(int scc_number);
33
34 /*
35  * General initialization and command routines
36  */
37 void quicc_issue_cmd (unsigned short cmd, int scc_num);
38 void quicc_init(void);
39 void quicc_scc_init(int scc_number, int number_of_rx_buf, int number_of_tx_buf);
40 void quicc_smc_init(int smc_number, int number_of_rx_buf, int number_of_tx_buf);
41 void quicc_scc_start(int scc_num);
42 void quicc_scc_loopback(int scc_num);
43
44 /* Interrupt enable/disable routines for critical pieces of code*/
45 unsigned short  IntrDis(void);
46 void            IntrEna(unsigned short old_sr);
47
48 /* For debugging */
49 void print_rbd(int scc_num);
50 void print_tbd(int scc_num);
51
52 #endif