Ignore:
Timestamp:
Oct 10, 2020, 4:41:37 PM (4 years ago)
Author:
alain
Message:

Introduce the non-standatd display_socket() syscall.
Improve the non-standard get_string() syscall.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/libs/libalmosmkh/almosmkh.c

    r657 r661  
    5757}
    5858
    59 //////////////////////////////////////
    60 int get_config( unsigned int * x_size,
    61                 unsigned int * y_size,
    62                 unsigned int * ncores )
     59///////////////////////////////////////////////
     60int get_config( struct hard_config_s * config )
    6361{
    6462    return hal_user_syscall( SYS_GET_CONFIG,
    65                              (reg_t)x_size,
    66                              (reg_t)y_size,
    67                              (reg_t)ncores, 0 );
     63                             (reg_t)config, 0, 0, 0);
    6864}
    6965
     
    242238        if( length >= maxlen-1 )
    243239        {
    244             return -1;                      // return failure   
     240            // cancel all echo characters
     241            while( length )
     242            {
     243               printf("\b \b");             // cancel one echo character
     244               length--;                   
     245            }
    245246        }
    246247
     
    257258        else if (c == 0x0A)                 // LF character marks end of string
    258259        {
     260            putchar( c );
    259261            done = 1;
    260262        }
     
    264266            if ( length > 0 )
    265267            {
     268                printf("\b \b");            // cancel one echo character
    266269                length--;         
    267                 printf("\b \b");            // BS /  / BS
    268270            }
    269271        }
    270272        else if ( c == 0 )                  // EOF character
    271273        {
     274            // cancel all echo characters
     275            while( length )
     276            {
     277               printf("\b \b");             // cancel one echo character
     278               length--;                   
     279            }
    272280            return -1;                      // return failure
    273281        }
     
    276284    // set NUL character in string and return success
    277285    string[length] = 0;
    278     return 0;
     286    return length + 1;
    279287
    280288}  // end get_string()
     
    399407                             (reg_t)nb_slots, 0 );
    400408}
     409
     410/////////////////////////////////////
     411int display_socket( unsigned int pid,
     412                    unsigned int fdid )
     413{
     414    return hal_user_syscall( SYS_DISPLAY,
     415                             DISPLAY_SOCKET,
     416                             (reg_t)pid,
     417                             (reg_t)fdid, 0 );
     418}
    401419
    402420///////////////////////////////
     
    14951513
    14961514    // get platform parameters
    1497     unsigned int   x_size;
    1498     unsigned int   y_size;
    1499     unsigned int   ncores;
    1500     get_config( &x_size , &y_size , &ncores );
     1515    hard_config_t  config;
     1516    get_config( &config );
     1517    unsigned int   x_size = config.x_size;
     1518    unsigned int   y_size = config.y_size;
     1519    unsigned int   ncores = config.ncores;
    15011520
    15021521    // get calling thread cluster identifier
Note: See TracChangeset for help on using the changeset viewer.