Ignore:
Timestamp:
Aug 4, 2017, 2:03:44 PM (4 years ago)
Author:
alain
Message:

1) Introduce the TSAR hal_cpu_context_switch() function.
2) Introduce the generic vfs_kernel_move() function.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/kernel/kern/chdev.c

    r296 r317  
    3333#include <chdev.h>
    3434#include <devfs.h>
     35
     36
     37extern chdev_directory_t    chdev_dir;   // allocated in kernel_init.c
     38
    3539
    3640////////////////////////////////////////////
     
    188192}  // end chdev_sequencial_server()
    189193
     194////////////////////////
     195void chdev_dir_display()
     196{
     197    cxy_t     iob_cxy  = GET_CXY( chdev_dir.iob );
     198    chdev_t * iob_ptr  = (chdev_t *)GET_PTR( chdev_dir.iob );
     199    xptr_t    iob_base = hal_remote_lwd( XPTR( iob_cxy , &iob_ptr->base ) );
     200
     201    cxy_t     pic_cxy  = GET_CXY( chdev_dir.pic );
     202    chdev_t * pic_ptr  = (chdev_t *)GET_PTR( chdev_dir.pic );
     203    xptr_t    pic_base = hal_remote_lwd( XPTR( pic_cxy , &pic_ptr->base ) );
     204
     205    cxy_t     txt0_cxy  = GET_CXY( chdev_dir.txt[0] );
     206    chdev_t * txt0_ptr  = (chdev_t *)GET_PTR( chdev_dir.txt[0] );
     207    xptr_t    txt0_base = hal_remote_lwd( XPTR( txt0_cxy , &txt0_ptr->base ) );
     208
     209    cxy_t     txt1_cxy  = GET_CXY( chdev_dir.txt[1] );
     210    chdev_t * txt1_ptr  = (chdev_t *)GET_PTR( chdev_dir.txt[1] );
     211    xptr_t    txt1_base = hal_remote_lwd( XPTR( txt1_cxy , &txt1_ptr->base ) );
     212
     213    cxy_t     txt2_cxy  = GET_CXY( chdev_dir.txt[2] );
     214    chdev_t * txt2_ptr  = (chdev_t *)GET_PTR( chdev_dir.txt[2] );
     215    xptr_t    txt2_base = hal_remote_lwd( XPTR( txt2_cxy , &txt2_ptr->base ) );
     216
     217    cxy_t     ioc_cxy  = GET_CXY( chdev_dir.ioc[0] );
     218    chdev_t * ioc_ptr  = (chdev_t *)GET_PTR( chdev_dir.ioc[0] );
     219    xptr_t    ioc_base = hal_remote_lwd( XPTR( ioc_cxy , &ioc_ptr->base ) );
     220
     221    cxy_t     fbf_cxy  = GET_CXY( chdev_dir.fbf[0] );
     222    chdev_t * fbf_ptr  = (chdev_t *)GET_PTR( chdev_dir.fbf[0] );
     223    xptr_t    fbf_base = hal_remote_lwd( XPTR( fbf_cxy , &fbf_ptr->base ) );
     224
     225    cxy_t     nic_rx_cxy  = GET_CXY( chdev_dir.nic_rx[0] );
     226    chdev_t * nic_rx_ptr  = (chdev_t *)GET_PTR( chdev_dir.nic_rx[0] );
     227    xptr_t    nic_rx_base = hal_remote_lwd( XPTR( nic_rx_cxy , &nic_rx_ptr->base ) );
     228
     229    cxy_t     nic_tx_cxy  = GET_CXY( chdev_dir.nic_tx[0] );
     230    chdev_t * nic_tx_ptr  = (chdev_t *)GET_PTR( chdev_dir.nic_tx[0] );
     231    xptr_t    nic_tx_base = hal_remote_lwd( XPTR( nic_tx_cxy , &nic_tx_ptr->base ) );
     232
     233    printk("\n***** external chdev directory in cluster %x\n"
     234           "  - iob       = %l / base = %l\n"
     235           "  - pic       = %l / base = %l\n"
     236           "  - txt[0]    = %l / base = %l\n"
     237           "  - txt[1]    = %l / base = %l\n"
     238           "  - txt[2]    = %l / base = %l\n"
     239           "  - ioc[0]    = %l / base = %l\n"
     240           "  - fbf[0]    = %l / base = %l\n"
     241           "  - nic_rx[0] = %l / base = %l\n"
     242           "  - nic_tx[0] = %l / base = %l\n",
     243           local_cxy,
     244           chdev_dir.iob, iob_base,
     245           chdev_dir.pic, pic_base,
     246           chdev_dir.txt[0], txt0_base,
     247           chdev_dir.txt[1], txt1_base,
     248           chdev_dir.txt[2], txt2_base,
     249           chdev_dir.ioc[0], ioc_base,
     250           chdev_dir.fbf[0], fbf_base,
     251           chdev_dir.nic_rx[0], nic_rx_base,
     252           chdev_dir.nic_tx[0], nic_tx_base );
     253
     254}  // end chdev_dir_display()
     255
Note: See TracChangeset for help on using the changeset viewer.