Ignore:
Timestamp:
Aug 26, 2012, 8:16:34 PM (12 years ago)
Author:
karaoui
Message:

fixing the case where NB_DMA_MAX==0
updating the libsrl.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • soft/giet_vm/sys/drivers.c

    r207 r213  
    715715
    716716//+1: for the case where the NB_DMAS_MAX == 0
    717 in_unckdata unsigned int                        _dma_lock[(NB_DMAS_MAX+1) * NB_CLUSTERS]
    718                                        = { [0 ... ((NB_DMAS_MAX+1) * NB_CLUSTERS)-1] = 0 };
    719 
    720 in_unckdata volatile unsigned int       _dma_done[(NB_DMAS_MAX+1) * NB_CLUSTERS]
    721                                        = { [0 ... ((NB_DMAS_MAX+1) * NB_CLUSTERS)-1] = 0 };
    722 
    723 in_unckdata volatile unsigned int       _dma_status[(NB_DMAS_MAX+1) * NB_CLUSTERS];
     717#if NB_DMAS_MAX > 0
     718in_unckdata unsigned int                        _dma_lock[NB_DMAS_MAX * NB_CLUSTERS]
     719                                       = { [0 ... ((NB_DMAS_MAX) * NB_CLUSTERS)-1] = 0 };
     720
     721in_unckdata volatile unsigned int       _dma_done[NB_DMAS_MAX * NB_CLUSTERS]
     722                                       = { [0 ... (NB_DMAS_MAX * NB_CLUSTERS)-1] = 0 };
     723
     724in_unckdata volatile unsigned int       _dma_status[NB_DMAS_MAX * NB_CLUSTERS];
    724725
    725726in_unckdata unsigned int                        _dma_iommu_ix1 = 1;
    726727
    727 in_unckdata unsigned int            _dma_iommu_npages[(NB_DMAS_MAX+1) * NB_CLUSTERS];
     728in_unckdata unsigned int            _dma_iommu_npages[NB_DMAS_MAX * NB_CLUSTERS];
     729#endif
    728730
    729731//////////////////////////////////////////////////////////////////////////////////
     
    733735                             unsigned int       channel_id )
    734736{
     737#if NB_DMAS_MAX > 0
    735738    // parameters checking
    736739    if ( cluster_id >= NB_CLUSTERS ) return 1;
     
    743746    dma_address[channel_id*DMA_SPAN + DMA_RESET] = 0;                   
    744747    return 0;
     748#else
     749    return -1;
     750#endif
    745751}
    746752//////////////////////////////////////////////////////////////////////////////////
     
    751757                              unsigned int* status )
    752758{
     759#if NB_DMAS_MAX > 0
    753760    // parameters checking
    754761    if ( cluster_id >= NB_CLUSTERS ) return 1;
     
    761768    *status = dma_address[channel_id*DMA_SPAN + DMA_LEN];
    762769    return 0;
     770#else
     771    return -1;
     772#endif
    763773}
    764774
     
    852862                             unsigned int   length )
    853863{
     864#if NB_DMAS_MAX > 0
    854865    unsigned int        ko;                             // unsuccessfull V2P translation
    855866    unsigned int        flags;                  // protection flags
     
    9961007   
    9971008    return 0;
     1009
     1010#else //NB_DMAS_MAX == 0
     1011    return -1;
     1012#endif
    9981013
    9991014//////////////////////////////////////////////////////////////////////////////////
     
    10421057unsigned int _fb_completed()
    10431058{
     1059#if NB_DMAS_MAX > 0
    10441060    unsigned int task_id = _get_current_task_id();
    10451061    unsigned int dma_id  = _get_context_slot( task_id, CTX_FBDMA_ID );
     
    10791095
    10801096    return _dma_status[dma_id];
    1081 }
    1082 
     1097
     1098#else //NB_DMAS_MAX == 0
     1099
     1100    return -1;
     1101
     1102#endif
     1103}
     1104
Note: See TracChangeset for help on using the changeset viewer.