DSP 1-4 Data Buffer Pointers Structure

Index   Chan-0 Chan-1   Chan-Nchan
0 evt_done addr[0]
next_addr[0]
wrdcnt[0]
ovfl[0]
addr[1]
next_addr[1]
wrdcnt[1]
ovfl[1]
... addr[Nchan-1]
next_addr[Nchan-1]
wrdcnt[Nchan-1]
ovfl[Nchan-1]
1 evt_done addr[0]
next_addr[0]
wrdcnt[0]
ovfl[0]
addr[1]
next_addr[1]
wrdcnt[1]
ovfl[1]
... addr[Nchan-1]
next_addr[Nchan-1]
wrdcnt[Nchan-1]
ovfl[Nchan-1]
... ... ... ...   ...
Nbind-1 evt_done addr[0]
next_addr[0]
wrdcnt[0]
ovfl[0]
addr[1]
next_addr[1]
wrdcnt[1]
ovfl[1]
... addr[Nchan-1]
next_addr[Nchan-1]
wrdcnt[Nchan-1]
ovfl[Nchan-1]

Variable Description

Nbind Number of indices to buffered events (buffer depth)
evt_done =0: free buffer
=1: some channels filled
=2: all channels filled (evt complete)
addr[ichan] Address of start of data in memory for this buffer
next_addr[ichan] Address for next write to this buffer
wrdcnt[ichan] Number of words stored in this buffer
ovfl[ichan] =0: no overflow
=1: previous block to buffer flagged w/ overflow bit

The Structure

     struct Buffer_Info{
       int Nbind;
       int evt_done;
       int addr[N_CHAN_MAX];
       int next_addr[N_CHAN_MAX];
       int wrdcnt[N_CHAN_MAX];
       int ovfl[N_CHAN_MAX];
     };

     struct Buffer_Info buff_ptrs[N_BUFF_MAX];