StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
rb.hh
1 #ifndef _RB_HH_
2 #define _RB_HH_
3 
4 #include <stdio.h>
5 #include <sys/types.h>
6 #include <unistd.h>
7 #include <pthread.h>
8 #include <signal.h>
9 #include <sys/socket.h>
10 #include <netinet/in.h>
11 #include <arpa/inet.h>
12 #include <netdb.h>
13 #include <errno.h>
14 #include <string.h>
15 
16 
17 #include <RORC/rorc_lib.h>
18 
19 
20 
21 class rb {
22 public:
23  // copied over from rorc.h
24  typedef rorcReadyFifo_t rbFifo_t ;
25 
26  rb(int board, int ch, int fifo_cou, u_int buff_bytes) { emulation = 0 ;} ;
27  virtual ~rb() { } ;
28 
29 
30 
31  virtual int cmd(u_char cmd, u_int param=0, u_int dest=4) { LOG(DBG,"Sending cmd") ; return 0 ; } ;
32  virtual int read(u_int param=0) { return 0 ; } ;
33  virtual int write(char *inbuff, int bytes, int nodelay=0, int param=0) { return 0 ; } ;
34  virtual int busy() { return 0 ; } ;
35  virtual int config(int emul=0) { return 0 ; } ; // at config run
36 
37  virtual int open(char *vbuff = 0, u_int pbuf = 0) { return 0 ; } ;
38  virtual void close() { return ; } ;
39 
40  virtual int start(u_int w=4) = 0 ; // at start run
41  virtual int stop() = 0 ; // at stop run
42 
43  virtual int get(char **addr, u_int *status) = 0 ;
44  virtual int get_priority(char **addr, u_int *status, int *fifo_ix=0) {
45  if(fifo_ix) *fifo_ix = -1 ;
46  return get(addr,status) ;
47  }
48 
49  virtual int free(char *addr) = 0 ;
50  virtual int free_ix(int ix) = 0 ;
51 
52  virtual int mark(char *addr, u_int how=0) = 0 ;
53 
54  virtual int inject(int token) { return -1 ; } ; // for emulation
55 
56  virtual int link_check() { return 0 ; } ;
57 
58  virtual int get_free_fifos() { return 0 ; } ;
59 
60  virtual void emu_place_event(int ix, char *event, int bytes) { return ; } ;
61  virtual void emu_go() { return ; } ;
62 
63  u_int alloced_bytes ;
64  int configd ;
65  int emulation ;
66 
67  int emu_fifo_length[128] ;
68  volatile rbFifo_t *sfifo, *rfifo ; // same for fifos
69 
70 //protected:
71 
72  int board ;
73  int ch ; // also port!
74 
75 
76 
77  char *buff ; // buffer addresses
78  int fifo_cou ; // set at code startup
79  u_int buff_bytes ; // set at code startup
80 
81 
82  char *rbuff, *sbuff ; // address of receive/send buffers
83 
84 
85 
86 } ;
87 
88 
89 #endif
Definition: rb.hh:21