source: soft/giet_vm/giet_libs/mwmr_channel.h @ 258

Last change on this file since 258 was 258, checked in by alain, 11 years ago

This is a major release, including a deep restructuration of code.
The main evolutions are

  • use of the Tsar preloader to load the GIET boot-loader from disk
  • introduction of a FAT32 file system library,
  • use of this fat32 library by the boot-loader to load the map.bin data structure, and the various .elf files
  • reorganisation of drivers (one file per peripheral).
  • introduction of drivers for new peripherals: vci_chbuf_dma and vci_multi_ahci.
  • introduction of a new physical memory allocator in the boot code.

This release has been tested on the tsar_generic_iob architecture,
for the two following mappings: 4c_1p_iob_four.xml and 4c_1p_iob_sort.xml

  • Property svn:executable set to *
File size: 1.8 KB
Line 
1//////////////////////////////////////////////////////////////////////////////////
2// File     : mwmr_channel.h         
3// Date     : 01/04/2012
4// Author   : alain greiner
5// Copyright (c) UPMC-LIP6
6///////////////////////////////////////////////////////////////////////////////////
7
8#ifndef _MWMR_CHANNEL_H_
9#define _MWMR_CHANNEL_H_
10
11///////////////////////////////////////////////////////////////////////////////////
12//  MWMR channel structure
13// The data array size is defined to obtain sizeof(mwmr_channel_t) = 4096 bytes.
14// The actual size can be redefined in the mapping info data structure.
15///////////////////////////////////////////////////////////////////////////////////
16
17typedef struct mwmr_channel_s
18{
19    unsigned int ptr;        // index of the first valid data word
20    unsigned int ptw;        // index of the first empty slot
21    unsigned int sts;        // number of words available
22    unsigned int lock;       // exclusive access lock
23    unsigned int depth;      // max number of words in the channel
24    unsigned int width;      // number of words in an item     
25    unsigned int data[1018]; // circular buffer
26} mwmr_channel_t;
27
28//////////////////////////////////////////////////////////////////////////////
29//  MWMR access functions
30//////////////////////////////////////////////////////////////////////////////
31
32void mwmr_write( mwmr_channel_t* mwmr, 
33                 unsigned int*   buffer, 
34                 unsigned int    nitems );
35
36void mwmr_read(  mwmr_channel_t* mwmr, 
37                 unsigned int*   buffer, 
38                 unsigned int    nitems );
39
40#endif
41
42// Local Variables:
43// tab-width: 4
44// c-basic-offset: 4
45// c-file-offsets:((innamespace . 0)(inline-open . 0))
46// indent-tabs-mode: nil
47// End:
48// vim: filetype=c:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
49
Note: See TracBrowser for help on using the repository browser.