Ignore:
Timestamp:
Sep 29, 2014, 10:47:26 AM (10 years ago)
Author:
alain
Message:

Introducing a physical memory allocator (pmem.c & pmem.h files).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • soft/giet_vm/giet_common/utils.h

    r399 r408  
    4545
    4646///////////////////////////////////////////////////////////////////////////////////
     47///////////////////////////////////////////////////////////////////////////////////
    4748//     CP0 registers access functions
    4849///////////////////////////////////////////////////////////////////////////////////
    49 
     50///////////////////////////////////////////////////////////////////////////////////
     51
     52///////////////////////////////////////////////////////////////////////////////////
     53// Returns CP0_SCHED register content
     54// (virtual base address of the processor scheduler)
     55///////////////////////////////////////////////////////////////////////////////////
    5056extern unsigned int _get_sched(void);
     57
     58///////////////////////////////////////////////////////////////////////////////////
     59// Returns CP0_EPC register content.
     60///////////////////////////////////////////////////////////////////////////////////
    5161extern unsigned int _get_epc(void);
     62
     63///////////////////////////////////////////////////////////////////////////////////
     64// Returns CP0_BVAR register content.
     65///////////////////////////////////////////////////////////////////////////////////
    5266extern unsigned int _get_bvar(void);
     67
     68///////////////////////////////////////////////////////////////////////////////////
     69// Returns CP0_CR register content.
     70///////////////////////////////////////////////////////////////////////////////////
    5371extern unsigned int _get_cr(void);
     72
     73///////////////////////////////////////////////////////////////////////////////////
     74// Returns CP0_SR register content.
     75///////////////////////////////////////////////////////////////////////////////////
    5476extern unsigned int _get_sr(void);
     77
     78///////////////////////////////////////////////////////////////////////////////////
     79// Returns CP0_PROCID register content.
     80// Processor identifier (12 bits)
     81///////////////////////////////////////////////////////////////////////////////////
    5582extern unsigned int _get_procid(void);
     83
     84///////////////////////////////////////////////////////////////////////////////////
     85// Returns CP0_TIME register content.
     86// Processor local time (32 bits)
     87///////////////////////////////////////////////////////////////////////////////////
    5688extern unsigned int _get_proctime(void);
    5789
     90///////////////////////////////////////////////////////////////////////////////////
     91// Save CP0_SR value to variable pointed by save_sr_ptr and disable IRQs.
     92///////////////////////////////////////////////////////////////////////////////////
    5893extern void         _it_disable( unsigned int* save_sr_ptr );
     94
     95///////////////////////////////////////////////////////////////////////////////////
     96// Restore CP0_SR register from variable pointed by save_sr_ptr.
     97///////////////////////////////////////////////////////////////////////////////////
    5998extern void         _it_restore( unsigned int* save_sr_ptr );
    6099
     100///////////////////////////////////////////////////////////////////////////////////
     101// Set a new value in CP0_SCHED register.
     102// (virtual base address of the processor scheduler)
     103///////////////////////////////////////////////////////////////////////////////////
    61104extern void         _set_sched(unsigned int value);
     105
     106///////////////////////////////////////////////////////////////////////////////////
     107// Set a new value in CP0_SR register.
     108///////////////////////////////////////////////////////////////////////////////////
    62109extern void         _set_sr(unsigned int value);
    63110
     111
     112///////////////////////////////////////////////////////////////////////////////////
    64113///////////////////////////////////////////////////////////////////////////////////
    65114//     CP2 registers access functions
    66115///////////////////////////////////////////////////////////////////////////////////
    67 
     116///////////////////////////////////////////////////////////////////////////////////
     117
     118///////////////////////////////////////////////////////////////////////////////////
     119// Returns CP2_PTPR register value.
     120// Page table physical base address for the running context.
     121// Contains only the 27 MSB bits, right justified.
     122///////////////////////////////////////////////////////////////////////////////////
    68123extern unsigned int _get_mmu_ptpr(void);
     124
     125///////////////////////////////////////////////////////////////////////////////////
     126// Returns CP2_MODE register value.
     127// MMU current mode, defined by 4 bits, right justified: ITLB/DTLB/ICACHE/DCACHE
     128///////////////////////////////////////////////////////////////////////////////////
    69129extern unsigned int _get_mmu_mode(void);
    70130
     131///////////////////////////////////////////////////////////////////////////////////
     132// Set a new value in CP2_PTPR register.
     133///////////////////////////////////////////////////////////////////////////////////
    71134extern void         _set_mmu_ptpr(unsigned int value);
     135
     136///////////////////////////////////////////////////////////////////////////////////
     137// Set a new value in CP2_MODE register.
     138///////////////////////////////////////////////////////////////////////////////////
    72139extern void         _set_mmu_mode(unsigned int value);
    73140
    74141///////////////////////////////////////////////////////////////////////////////////
     142// Set a value in  CP2_DCACHE_INVAL register.
     143// It invalidates the data cache line, if the virtual address defined by the
     144// value argument hit in DCACHE.
     145///////////////////////////////////////////////////////////////////////////////////
     146extern void         _set_mmu_dcache_inval(unsigned int value);
     147
     148
     149
     150///////////////////////////////////////////////////////////////////////////////////
     151///////////////////////////////////////////////////////////////////////////////////
    75152//     Physical addressing related functions
     153///////////////////////////////////////////////////////////////////////////////////
    76154///////////////////////////////////////////////////////////////////////////////////
    77155
     
    163241                             char*        source );
    164242
    165 extern void         _dcache_buf_invalidate( void * buffer,
    166                                             unsigned int size );
     243extern void         _dcache_buf_invalidate( unsigned int buf_vbase,
     244                                            unsigned int buf_size );
    167245
    168246extern unsigned int _heap_info( unsigned int* vaddr,
Note: See TracChangeset for help on using the changeset viewer.