Ignore:
Timestamp:
Apr 13, 2015, 5:30:16 PM (10 years ago)
Author:
alain
Message:

Introducing new syscalls to handle MWMR compliant coprocessors.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • soft/giet_vm/giet_libs/stdio.c

    r550 r558  
    8080///////////////////////////////////////////////////
    8181void giet_coproc_alloc( unsigned int   coproc_type,
    82                         unsigned int*  coproc_info,
    83                         unsigned int*  cluster_xy )
     82                        unsigned int*  coproc_info )
    8483{
    8584    if ( sys_call( SYSCALL_COPROC_ALLOC,
    8685                   coproc_type,
    8786                   (unsigned int)coproc_info,
    88                    (unsigned int)cluster_xy,
    89                    0 ) ) 
     87                   0, 0 ) ) 
    9088        giet_exit("error in giet_coproc_alloc()");
    9189}
    9290
    93 ///////////////////////////////////////////////////
    94 void giet_coproc_release( unsigned int cluster_xy )
     91/////////////////////////////////////////////////////////
     92void giet_coproc_release( unsigned int coproc_reg_index )
    9593{
    9694    if ( sys_call( SYSCALL_COPROC_RELEASE,
    97                    cluster_xy,
     95                   coproc_reg_index,
    9896                   0, 0, 0 ) ) 
    9997        giet_exit("error in giet_coproc_release()");
     
    10199
    102100//////////////////////////////////////////////////////////////////
    103 void giet_coproc_channel_init( unsigned int            cluster_xy,
    104                                unsigned int            channel,
     101void giet_coproc_channel_init( unsigned int            channel,
    105102                               giet_coproc_channel_t*  desc )
    106103{
    107104    if ( sys_call( SYSCALL_COPROC_CHANNEL_INIT,
    108                    cluster_xy,
    109105                   channel,
    110106                   (unsigned int)desc,
    111                    0 ) )
    112         giet_exit("error in giet_coproc_channel_init");
    113 }
    114 
    115 ////////////////////////////////////////////////////////////
    116 void giet_coproc_channel_start( unsigned int     cluster_xy,
    117                                 unsigned int     channel )
    118 {
    119     if ( sys_call( SYSCALL_COPROC_CHANNEL_START,
    120                    cluster_xy,
    121                    channel,
    122107                   0, 0 ) )
    123         giet_exit("error in giet_coproc_channel_start");
    124 }
    125 
    126 ///////////////////////////////////////////////////////////
    127 void giet_coproc_channel_stop( unsigned int     cluster_xy,
    128                                unsigned int     channel )
    129 {
    130     if ( sys_call( SYSCALL_COPROC_CHANNEL_STOP,
    131                    cluster_xy,
    132                    channel,
    133                    0, 0 ) )
    134         giet_exit("error in giet_coproc_channel_stop");
    135 }
    136 
    137 /////////////////////////////////////////////////////////
    138 void giet_coproc_completed( unsigned int     cluster_xy )
     108        giet_exit("error in giet_coproc_channel_init()");
     109}
     110
     111/////////////////////////////////////////////////////
     112void giet_coproc_run( unsigned int coproc_reg_index )
     113{
     114    if ( sys_call( SYSCALL_COPROC_RUN,
     115                   coproc_reg_index,
     116                   0, 0, 0 ) )
     117        giet_exit("error in giet_coproc_run()");
     118}
     119
     120////////////////////////////
     121void giet_coproc_completed()
    139122{
    140123    if ( sys_call( SYSCALL_COPROC_COMPLETED,
    141                    cluster_xy,
    142                    0, 0, 0 ) )
     124                   0, 0, 0, 0 ) )
    143125        giet_exit("error in giet_coproc_completed");
    144 }
    145 
    146 ///////////////////////////////////////////////////////////
    147 void giet_coproc_register_set( unsigned int     cluster_xy,
    148                                unsigned int     index,
    149                                unsigned int     value )
    150 {
    151     if ( sys_call( SYSCALL_COPROC_REGISTER_SET,
    152                    cluster_xy,
    153                    index,
    154                    value,
    155                    0 ) )
    156         giet_exit("error in giet_coproc_register_set");
    157 }
    158 
    159 ///////////////////////////////////////////////////////////
    160 void giet_coproc_register_get( unsigned int     cluster_xy,
    161                                unsigned int     index,
    162                                unsigned int*    value )
    163 {
    164     if ( sys_call( SYSCALL_COPROC_REGISTER_SET,
    165                    cluster_xy,
    166                    index,
    167                    (unsigned int)value,
    168                    0 ) )
    169         giet_exit("error in giet_coproc_register_get");
    170126}
    171127
Note: See TracChangeset for help on using the changeset viewer.