/* * * (C) 1990 - 2000 Specialix International Ltd., Byfleet, Surrey, UK. * * 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. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef _prototypes_h #define _prototypes_h /* ** boot.c */ void init_boot( char *p, short stage); /* ** disconct.c */ void kill_boot ( LPB *link ); void disconnected( LPB *link ); short boot_3( LPB *link, PKT *pkt ); short send_3_pkt( LPB *link, PKT *pkt); /* ** error.c */ void du_error(void); /* ** formpkt.c */ ushort sum_it( PKT *pkt ) ; void form_rup_pkt( RUP *form_rup, PKT *pkt ); void form_poll_pkt ( int type, LPB *link, int node ); void form_route_pkt ( int type, PKT *pkt, LPB *link ); /* ** idle.c */ void idle( Process *idle_p ); /* ** init.c */ void general_init(void); void mem_halt( int error); /* ** linkinit.c */ void initlink( u_short number, LPB *link); void runlink( LPB *link); /* ** list.c */ PKT *get_free_start(void); void put_free_start( PKT *pkt); #ifdef HOST int can_remove_transmit ( PKT **pkt, PKT *pointer ); #endif #ifdef RTA int spl7 ( void ); int spl0 ( void ); Q_BUF *get_free_q( void ); PKT *get_free_end(void); int add_end( PKT *pkt, PHB *phb, int type); unsigned short free_packets( PHB *phb, int type); int can_remove_start( PKT **pkt, PHB *phb, int type); int can_add_start( PHB *phb, int type); int can_add_end( PHB *phb, int type); void put_free_end( PKT *pkt); int remove_start( PKT **pkt, PHB *phb, int type); #endif /* ** Lrt.c */ void lrt( Process *lrt_p, LPB *link ); #ifdef RTA void set_led_red ( LPB *link ); #endif /* ** ltt.c */ void ltt( Process *ltt_p, LPB *link, PHB *phb_ptr[] ); void send_poll ( LPB *link ); void request_id ( LPB *link ); void send_topology_update ( LPB *link ); void send_topology ( LPB *link ); void supply_id ( LPB *link ); #ifdef RTA void redirect_queue ( LPB *link, ushort flush ); int obtain_rup ( int rup_number, PKT **pkt_address, LPB *link ); #endif #ifdef TESTING_PERF int consume_cpu( void ); #endif /* ** lttwake.c */ #ifdef HOST void ltt_wakeup( Process *ltt_wakeup_p ); #endif /* ** mapgen.c */ void generate_id_map( short mapping, ROUTE_STR route[] ); void gen_map( int mapping, int looking_at, int come_from, ROUTE_STR route[], int link, int *ttl ); void adjust_ttl( int mapping, int looking_at, int come_from, ROUTE_STR route[], int link, int *ttl); void init_sys_map(void); /* ** mmu.c */ char *rio_malloc( unsigned int amount); char *rio_calloc( unsigned int num, unsigned int size); ERROR rio_mmu_init( uint total_mem ); /* ** partn.c */ void partition_tx( struct PHB *phb, u_short tx_size, u_short rx_size, u_short rx_limit); /* ** poll.c */ void tx_poll( Process *tx_poll_p); /* ** process.c */ int get_proc_space( Process **pd, int **pws, int wssize); /* ** readrom.c */ void read_serial_number(char *buf); /* ** rio.c */ int main( void ); /* ** route.c */ void route_update ( PKT *pkt, LPB *link); /* ** rtainit.c */ #if defined(RTA) void rta_init(ushort RtaType); #endif /* defined(RTA) */ /* ** rupboot.c */ void rup_boot( PKT *pkt, RUP *this_rup, LPB *link); #ifdef RTA void kill_your_neighbour( int link_to_kill ); #endif /* ** rupcmd.c */ void rup_command( PKT *pkt, struct RUP *this_rup, LPB *link); /* ** ruperr.c */ void rup_error( PKT *pkt, RUP *this_rup, LPB *link ); void illegal_cmd( PKT *src_pkt ); /* ** ruppoll.c */ void rup_poll( PKT *pkt, RUP *this_rup, LPB *link ); /* ** ruppower.c */ void rup_power( PKT *pkt, RUP *this_rup, LPB *link ); /* ** ruprm.c */ void rup_route_map( PKT *pkt, RUP *this_rup, LPB *link); /* ** rupstat.c */ void rup_status( PKT *pkt, RUP *this_rup, LPB *link); /* ** rupsync.c */ void rup_sync( PKT *pkt); /* ** rxpkt.c */ ERROR rx_pkt( PKT_ptr_ptr pkt_address, LPB *link); /* ** sendsts.c */ void send_status( PKT *requesting_pkt, RUP *this_rup); /* ** serial.c */ void assign_serial ( char *ser_in, char *ser_out); int cmp_serial ( char *ser_1, char *ser_2); /* ** txpkt.c */ ERROR tx_pkt( PKT *pkt, LPB *link); short send_sync( LPB *link); #endif /* _prototypes_h */