aboutsummaryrefslogblamecommitdiffstats
path: root/drivers/char/rio/proto.h
blob: f9a3376333e560e7b1f7c95367faf3dc556178a0 (plain) (tree)
























                                                                            
                                     



             



                                        








                    



                                                     



         
                            




                        
                         



             

                                          




                          
                               

           
                                                   


          


                        
                        






                                                      




        
                                      

          
                             




        





                                                       

          

                                                               


                   
                      





            
                                        




           


                                                                                                   




                        


                                                      



          
                                                                                       



         
                                  



            
                                                         








                                   
               



          
                                         





                              
                                                  



            
                                                     

          
                                           




           
                                                              



           

                                                      



            
                                                     



             
                                                      



          
                                                          



            
                                                       



            
                         



          
                                                  



            
                                                       



           

                                                



          

                                    
 
                                                   
/*
 *
 *  (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 */