blob: ddff0ef84e3a42d24a21b56f7674e48402dcccfb [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
2 *
3 * (C) 1990 - 2000 Specialix International Ltd., Byfleet, Surrey, UK.
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18 */
19#ifndef _prototypes_h
20#define _prototypes_h
21
22
23/*
24** boot.c
25*/
26void init_boot( char *p, short stage);
27
28/*
29** disconct.c
30*/
31void kill_boot ( LPB *link );
32void disconnected( LPB *link );
33short boot_3( LPB *link, PKT *pkt );
34short send_3_pkt( LPB *link, PKT *pkt);
35
36/*
37** error.c
38*/
39void du_error(void);
40
41/*
42** formpkt.c
43*/
44ushort sum_it( PKT *pkt ) ;
45void form_rup_pkt( RUP *form_rup, PKT *pkt );
46void form_poll_pkt ( int type, LPB *link, int node );
47void form_route_pkt ( int type, PKT *pkt, LPB *link );
48
49/*
50** idle.c
51*/
52void idle( Process *idle_p );
53
54/*
55** init.c
56*/
57void general_init(void);
58void mem_halt( int error);
59
60/*
61** linkinit.c
62*/
63void initlink( u_short number, LPB *link);
64void runlink( LPB *link);
65
66/*
67** list.c
68*/
69PKT *get_free_start(void);
70void put_free_start( PKT *pkt);
71
72#ifdef HOST
73int can_remove_transmit ( PKT **pkt, PKT *pointer );
74#endif
75
76#ifdef RTA
77int spl7 ( void );
78int spl0 ( void );
79Q_BUF *get_free_q( void );
80PKT *get_free_end(void);
81int add_end( PKT *pkt, PHB *phb, int type);
82unsigned short free_packets( PHB *phb, int type);
83int can_remove_start( PKT **pkt, PHB *phb, int type);
84int can_add_start( PHB *phb, int type);
85int can_add_end( PHB *phb, int type);
86void put_free_end( PKT *pkt);
87int remove_start( PKT **pkt, PHB *phb, int type);
88#endif
89
90/*
91** Lrt.c
92*/
93void lrt( Process *lrt_p, LPB *link );
94
95#ifdef RTA
96void set_led_red ( LPB *link );
97#endif
98
99/*
100** ltt.c
101*/
102void ltt( Process *ltt_p, LPB *link, PHB *phb_ptr[] );
103void send_poll ( LPB *link );
104void request_id ( LPB *link );
105void send_topology_update ( LPB *link );
106void send_topology ( LPB *link );
107void supply_id ( LPB *link );
108
109#ifdef RTA
110void redirect_queue ( LPB *link, ushort flush );
111int obtain_rup ( int rup_number, PKT **pkt_address, LPB *link );
112#endif
113
114#ifdef TESTING_PERF
115int consume_cpu( void );
116#endif
117
118/*
119** lttwake.c
120*/
121#ifdef HOST
122void ltt_wakeup( Process *ltt_wakeup_p );
123#endif
124
125/*
126** mapgen.c
127*/
128void generate_id_map( short mapping, ROUTE_STR route[] );
129void gen_map( int mapping, int looking_at, int come_from, ROUTE_STR route[], int link, int *ttl );
130void adjust_ttl( int mapping, int looking_at, int come_from, ROUTE_STR route[], int link, int *ttl);
131void init_sys_map(void);
132
133/*
134** mmu.c
135*/
136char *rio_malloc( unsigned int amount);
137char *rio_calloc( unsigned int num, unsigned int size);
138ERROR rio_mmu_init( uint total_mem );
139
140/*
141** partn.c
142*/
143void partition_tx( struct PHB *phb, u_short tx_size, u_short rx_size, u_short rx_limit);
144
145/*
146** poll.c
147*/
148void tx_poll( Process *tx_poll_p);
149
150/*
151** process.c
152*/
153int get_proc_space( Process **pd, int **pws, int wssize);
154
155/*
156** readrom.c
157*/
158void read_serial_number(char *buf);
159
160/*
161** rio.c
162*/
163int main( void );
164
165/*
166** route.c
167*/
168void route_update ( PKT *pkt, LPB *link);
169
170/*
171** rtainit.c
172*/
173#if defined(RTA)
174void rta_init(ushort RtaType);
175#endif /* defined(RTA) */
176
177/*
178** rupboot.c
179*/
180void rup_boot( PKT *pkt, RUP *this_rup, LPB *link);
181
182#ifdef RTA
183void kill_your_neighbour( int link_to_kill );
184#endif
185
186/*
187** rupcmd.c
188*/
189void rup_command( PKT *pkt, struct RUP *this_rup, LPB *link);
190
191/*
192** ruperr.c
193*/
194void rup_error( PKT *pkt, RUP *this_rup, LPB *link );
195void illegal_cmd( PKT *src_pkt );
196
197/*
198** ruppoll.c
199*/
200void rup_poll( PKT *pkt, RUP *this_rup, LPB *link );
201
202/*
203** ruppower.c
204*/
205void rup_power( PKT *pkt, RUP *this_rup, LPB *link );
206
207/*
208** ruprm.c
209*/
210void rup_route_map( PKT *pkt, RUP *this_rup, LPB *link);
211
212/*
213** rupstat.c
214*/
215void rup_status( PKT *pkt, RUP *this_rup, LPB *link);
216
217/*
218** rupsync.c
219*/
220void rup_sync( PKT *pkt);
221
222/*
223** rxpkt.c
224*/
225ERROR rx_pkt( PKT_ptr_ptr pkt_address, LPB *link);
226
227/*
228** sendsts.c
229*/
230void send_status( PKT *requesting_pkt, RUP *this_rup);
231
232/*
233** serial.c
234*/
235void assign_serial ( char *ser_in, char *ser_out);
236int cmp_serial ( char *ser_1, char *ser_2);
237
238/*
239** txpkt.c
240*/
241ERROR tx_pkt( PKT *pkt, LPB *link);
242short send_sync( LPB *link);
243
244#endif /* _prototypes_h */