Ignore:
Timestamp:
Oct 4, 2014, 3:19:32 PM (10 years ago)
Author:
alain
Message:

Introducing fixed format (X_WIDTH / Y_WIDTH / P_WIDTH) for processor index.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • soft/giet_vm/giet_kernel/irq_handler.c

    r346 r428  
    5151{
    5252    unsigned int gpid           = _get_procid();
    53     unsigned int cluster_xy     = gpid / NB_PROCS_MAX;
     53    unsigned int cluster_xy     = gpid >> P_WIDTH;
    5454    unsigned int x              = cluster_xy >> Y_WIDTH;
    5555    unsigned int y              = cluster_xy & ((1<<Y_WIDTH)-1);
    56     unsigned int lpid           = gpid % NB_PROCS_MAX;
     56    unsigned int lpid           = gpid & ((1<<P_WIDTH)-1);
    5757    unsigned int irq_id;
    5858    unsigned int irq_type;
     
    144144{
    145145    unsigned int gpid       = _get_procid();
    146     unsigned int cluster_xy = gpid / NB_PROCS_MAX;
     146    unsigned int cluster_xy = gpid >> P_WIDTH;
    147147    unsigned int x          = cluster_xy >> Y_WIDTH;
    148148    unsigned int y          = cluster_xy & ((1<<Y_WIDTH)-1);
    149     unsigned int lpid       = gpid % NB_PROCS_MAX;
     149    unsigned int lpid       = gpid & ((1<<P_WIDTH)-1);
    150150
    151151    _printf("\n[GIET WARNING] IRQ handler called but no active IRQ "
     
    164164                 unsigned int channel )   // unused
    165165{
    166     unsigned int procid     = _get_procid();
    167     unsigned int cluster_xy = procid / NB_PROCS_MAX;
     166    unsigned int gpid       = _get_procid();
     167    unsigned int cluster_xy = gpid >> P_WIDTH;
    168168    unsigned int x          = cluster_xy >> Y_WIDTH;
    169169    unsigned int y          = cluster_xy & ((1<<Y_WIDTH)-1);
    170     unsigned int lpid       = procid % NB_PROCS_MAX;
     170    unsigned int lpid       = gpid & ((1<<P_WIDTH)-1);
     171
    171172    unsigned int task       = _get_current_task_id();
    172173    unsigned int value;
     
    219220                unsigned int channel )   // channel index if HWI
    220221{
    221     unsigned int procid     = _get_procid();
    222     unsigned int cluster_xy = procid / NB_PROCS_MAX;
     222    unsigned int gpid       = _get_procid();
     223    unsigned int cluster_xy = gpid >> P_WIDTH;
    223224
    224225    // acknowledge HWI or PTI
     
    229230unsigned int x          = cluster_xy >> Y_WIDTH;
    230231unsigned int y          = cluster_xy & ((1<<Y_WIDTH)-1);
    231 unsigned int lpid       = procid % NB_PROCS_MAX;
     232unsigned int lpid       = gpid & ((1<<P_WIDTH)-1);
    232233_puts("\n[IRQS DEBUG] Processor[");
    233234_putd( x );
Note: See TracChangeset for help on using the changeset viewer.