Ignore:
Timestamp:
Jul 27, 2017, 12:23:29 AM (4 years ago)
Author:
alain
Message:

1) Introduce independant command fields for the various devices in the thread descriptor.
2) Introduce a new dev_pic_enable_ipi() function in the generic PIC device
3) Fix two bugs identified by Maxime in the scheduler initialisation, and in the sched_select().
4) fix several bugs in the TSAR hal_kentry.S.
5) Introduce a third kgiet segment (besides kdata and kcode) in the TSAR bootloader.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/hal/tsar_mips32/drivers/soclib_tty.c

    r77 r279  
    5454
    5555    // get command type and extended pointer on TXT device
    56     uint32_t type   =         hal_remote_lw ( XPTR( th_cxy , &th_ptr->command.txt.type ) );
    57     xptr_t   dev_xp = (xptr_t)hal_remote_lwd( XPTR( th_cxy , &th_ptr->command.txt.dev_xp ) );
     56    uint32_t type   =         hal_remote_lw ( XPTR( th_cxy , &th_ptr->txt_cmd.type ) );
     57    xptr_t   dev_xp = (xptr_t)hal_remote_lwd( XPTR( th_cxy , &th_ptr->txt_cmd.dev_xp ) );
    5858
    5959    // get TXT device cluster and local pointer
     
    103103
    104104        // get source buffer extended pointer & bytes count
    105         uint32_t count  = hal_remote_lw ( XPTR( th_cxy , &th_ptr->command.txt.count ) );
    106         xptr_t   buf_xp = hal_remote_lwd( XPTR( th_cxy , &th_ptr->command.txt.buf_xp ) );
     105        uint32_t count  = hal_remote_lw ( XPTR( th_cxy , &th_ptr->txt_cmd.count ) );
     106        xptr_t   buf_xp = hal_remote_lwd( XPTR( th_cxy , &th_ptr->txt_cmd.buf_xp ) );
    107107
    108108        // loop on characters
     
    127127        }
    128128    }
    129 }
     129}  // end soclib_tty_cmd()
     130
    130131
    131132/////////////////////////////////////////////////////////////////
     
    148149
    149150    // get command arguments
    150     type    = hal_remote_lw ( XPTR( client_cxy , &client_ptr->command.txt.type   ) );
    151     count   = hal_remote_lw ( XPTR( client_cxy , &client_ptr->command.txt.count  ) );
    152     buf_xp  = hal_remote_lwd( XPTR( client_cxy , &client_ptr->command.txt.buf_xp ) );
     151    type    = hal_remote_lw ( XPTR( client_cxy , &client_ptr->txt_cmd.type   ) );
     152    count   = hal_remote_lw ( XPTR( client_cxy , &client_ptr->txt_cmd.count  ) );
     153    buf_xp  = hal_remote_lwd( XPTR( client_cxy , &client_ptr->txt_cmd.buf_xp ) );
    153154
    154155    // get SOCLIB_TTY peripheral cluster and local pointer
     
    210211            else         // TTY_TX full => update command arguments and exit ISR for retry
    211212            {
    212                 hal_remote_sw ( XPTR( client_cxy , &client_ptr->command.txt.count ), count-i );
    213                 hal_remote_swd( XPTR( client_cxy , &client_ptr->command.txt.buf_xp ), buf_xp+i );
     213                hal_remote_sw ( XPTR( client_cxy , &client_ptr->txt_cmd.count ), count-i );
     214                hal_remote_swd( XPTR( client_cxy , &client_ptr->txt_cmd.buf_xp ), buf_xp+i );
    214215                return;
    215216            }
     
    223224
    224225    // set I/O operation status in command
    225     hal_remote_sw( XPTR( client_cxy , &client_ptr->command.txt.error ) , 0 );
     226    hal_remote_sw( XPTR( client_cxy , &client_ptr->txt_cmd.error ) , 0 );
    226227
    227228    // unblock server thread
     
    230231    // unblock client thread
    231232    thread_unblock( client_xp , THREAD_BLOCKED_IO );
    232 }
    233 
     233
     234}  // end soclib_tty_isr()
     235
Note: See TracChangeset for help on using the changeset viewer.