Changeset 628 for soft/giet_vm/giet_libs


Ignore:
Timestamp:
Jul 18, 2015, 2:52:49 PM (9 years ago)
Author:
alain
Message:

Introduce two new system calls:

  • giet_kill_application()
  • giet_exec_application()
Location:
soft/giet_vm/giet_libs
Files:
2 edited

Legend:

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

    r623 r628  
    175175
    176176    {
    177         char buf[30];
    178         char * pbuf;
    179         unsigned int len = 0;
     177        char              buf[30];
     178        char *            pbuf;
     179        unsigned int      len = 0;
    180180        static const char HexaTab[] = "0123456789ABCDEF";
    181         unsigned int i;
     181        unsigned int      i;
    182182       
    183183        /* Ignored fields : width and precision */
     
    244244                int imax;
    245245               
    246                 if (modifiers == LL_MOD) //64 bits
     246                if (modifiers == LL_MOD) // 64 bits
    247247                {
    248248                    val = va_arg( *args, unsigned long long);
    249249                   
    250                     if (*(format-1) == 'u' && (!(val & 0xFFFFFFFF00000000))) //if asked to print in base 10, can do only if it fits in 32 bits
     250                    // if asked to print in base 10, can do only if it fits in 32 bits
     251                    if (*(format-1) == 'u' && (!(val & 0xFFFFFFFF00000000ULL)))
    251252                    {
    252253                        unsigned int uintv = (unsigned int) val;
     
    308309                unsigned long long
    309310                    val = *(unsigned long long*)&vald, //get ieee754 without conversion
    310                     digits = val & 0xFFFFFFFFFFFFF;    //get mantissa
     311                    digits = val & 0xFFFFFFFFFFFFFULL;    //get mantissa
    311312               
    312313                unsigned int
    313                     base = (unsigned int)((val & 0x7FF0000000000000) >> 52), //get exposant
     314                    base = (unsigned int)((val & 0x7FF0000000000000ULL) >> 52), //get exposant
    314315                    intp = (unsigned int)vald,         //get integer part of the float
    315316                    decp;
     
    319320                if (base == 0x7FF) //special value
    320321                {
    321                     if (digits & 0xFFFFFFFFFFFFF)
     322                    if (digits & 0xFFFFFFFFFFFFFULL)
    322323                    {
    323324                        /* Not a Number */
     
    331332                    {
    332333                        /* inf */
    333                         buf[0] = (val & 0x8000000000000000) ? '-' : '+';
     334                        buf[0] = (val & 0x8000000000000000ULL) ? '-' : '+';
    334335                        buf[1] = 'i';
    335336                        buf[2] = 'n';
     
    341342                }
    342343               
    343                 if (val & 0x8000000000000000)
     344                if (val & 0x8000000000000000ULL)
    344345                {
    345346                    /* negative */
     
    10021003}
    10031004
     1005//////////////////////////////
     1006void giet_kill( char* name )
     1007{
     1008    sys_call( SYSCALL_KILL_APP,
     1009              (unsigned int)name,
     1010              0, 0, 0 );
     1011}
     1012
     1013//////////////////////////////
     1014void giet_exec( char* name )
     1015{
     1016    sys_call( SYSCALL_EXIT,
     1017              (unsigned int)name,
     1018              0, 0, 0 );
     1019}
     1020
    10041021/////////////////////////////////////////
    10051022void giet_assert( unsigned int condition,
  • soft/giet_vm/giet_libs/stdio.h

    r623 r628  
    4040#define SYSCALL_TIM_START            0x15
    4141#define SYSCALL_TIM_STOP             0x16
    42 //                                   0x17
    43 //                                   0x18
     42#define SYSCALL_KILL_APP             0x17
     43#define SYSCALL_EXEC_APP             0x18
    4444#define SYSCALL_CTX_SWITCH           0x19
    4545#define SYSCALL_VOBJ_GET_VBASE       0x1A
     
    325325extern void giet_exit( char* string );
    326326
     327extern void giet_kill( char* name );
     328
     329extern void giet_exec( char* name );
     330
    327331extern void giet_assert( unsigned int condition,
    328332                         char*        string );
Note: See TracChangeset for help on using the changeset viewer.