Ignore:
Timestamp:
2006-09-14T17:09:21Z (18 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
f1d1f5d3
Parents:
e5ecc02
Message:

C99 compliant header guards (hopefully) everywhere in the kernel.
Formatting and indentation changes.
Small improvements in sparc64.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/printf/printf_core.c

    re5ecc02 r06e1e95  
    2828 */
    2929
    30  /** @addtogroup generic       
     30/** @addtogroup generic
    3131 * @{
    3232 */
     
    497497                                ++i;
    498498                                switch (c = fmt[i]) {
    499                                         case '#': flags |= __PRINTF_FLAG_PREFIX; break;
    500                                         case '-': flags |= __PRINTF_FLAG_LEFTALIGNED; break;
    501                                         case '+': flags |= __PRINTF_FLAG_SHOWPLUS; break;
    502                                         case ' ': flags |= __PRINTF_FLAG_SPACESIGN; break;
    503                                         case '0': flags |= __PRINTF_FLAG_ZEROPADDED; break;
    504                                         default: end = 1;
     499                                case '#': flags |= __PRINTF_FLAG_PREFIX; break;
     500                                case '-': flags |= __PRINTF_FLAG_LEFTALIGNED; break;
     501                                case '+': flags |= __PRINTF_FLAG_SHOWPLUS; break;
     502                                case ' ': flags |= __PRINTF_FLAG_SPACESIGN; break;
     503                                case '0': flags |= __PRINTF_FLAG_ZEROPADDED; break;
     504                                default: end = 1;
    505505                                };     
    506506                               
     
    546546
    547547                        switch (fmt[i++]) {
    548                                 /** TODO: unimplemented qualifiers:
    549                                 * t ptrdiff_t - ISO C 99
    550                                 */
    551                                 case 'h':       /* char or short */
    552                                         qualifier = PrintfQualifierShort;
    553                                         if (fmt[i] == 'h') {
    554                                                 i++;
    555                                                 qualifier = PrintfQualifierByte;
    556                                         }
    557                                         break;
    558                                 case 'l':       /* long or long long*/
    559                                         qualifier = PrintfQualifierLong;
    560                                         if (fmt[i] == 'l') {
    561                                                 i++;
    562                                                 qualifier = PrintfQualifierLongLong;
    563                                         }
    564                                         break;
    565                                 case 'z':       /* unative_t */
    566                                         qualifier = PrintfQualifierNative;
    567                                         break;
    568                                 default:
    569                                         qualifier = PrintfQualifierInt; /* default type */
    570                                         --i;
     548                        /** TODO: unimplemented qualifiers:
     549                        * t ptrdiff_t - ISO C 99
     550                        */
     551                        case 'h':       /* char or short */
     552                                qualifier = PrintfQualifierShort;
     553                                if (fmt[i] == 'h') {
     554                                        i++;
     555                                        qualifier = PrintfQualifierByte;
     556                                }
     557                                break;
     558                        case 'l':       /* long or long long*/
     559                                qualifier = PrintfQualifierLong;
     560                                if (fmt[i] == 'l') {
     561                                        i++;
     562                                        qualifier = PrintfQualifierLongLong;
     563                                }
     564                                break;
     565                        case 'z':       /* unative_t */
     566                                qualifier = PrintfQualifierNative;
     567                                break;
     568                        default:
     569                                qualifier = PrintfQualifierInt; /* default type */
     570                                --i;
    571571                        }       
    572572                       
     
    575575                        switch (c = fmt[i]) {
    576576
    577                                 /*
    578                                 * String and character conversions.
    579                                 */
    580                                 case 's':
    581                                         if ((retval = print_string(va_arg(ap, char*), width, precision, flags, ps)) < 0) {
    582                                                 counter = -counter;
    583                                                 goto out;
    584                                         };
     577                        /*
     578                        * String and character conversions.
     579                        */
     580                        case 's':
     581                                if ((retval = print_string(va_arg(ap, char*), width, precision, flags, ps)) < 0) {
     582                                        counter = -counter;
     583                                        goto out;
     584                                };
     585
     586                                counter += retval;
     587                                j = i + 1;
     588                                goto next_char;
     589                        case 'c':
     590                                c = va_arg(ap, unsigned int);
     591                                if ((retval = print_char(c, width, flags, ps)) < 0) {
     592                                        counter = -counter;
     593                                        goto out;
     594                                };
    585595                                       
    586                                         counter += retval;
    587                                         j = i + 1;
    588                                         goto next_char;
    589                                 case 'c':
    590                                         c = va_arg(ap, unsigned int);
    591                                         if ((retval = print_char(c, width, flags, ps)) < 0) {
    592                                                 counter = -counter;
    593                                                 goto out;
    594                                         };
    595                                        
    596                                         counter += retval;
    597                                         j = i + 1;
    598                                         goto next_char;
    599 
    600                                 /*
    601                                  * Integer values
    602                                 */
    603                                 case 'P': /* pointer */
    604                                         flags |= __PRINTF_FLAG_BIGCHARS;
    605                                 case 'p':
    606                                         flags |= __PRINTF_FLAG_PREFIX;
    607                                         base = 16;
    608                                         qualifier = PrintfQualifierPointer;
    609                                         break; 
    610                                 case 'b':
    611                                         base = 2;
    612                                         break;
    613                                 case 'o':
    614                                         base = 8;
    615                                         break;
    616                                 case 'd':
    617                                 case 'i':
    618                                         flags |= __PRINTF_FLAG_SIGNED; 
    619                                 case 'u':
    620                                         break;
    621                                 case 'X':
    622                                         flags |= __PRINTF_FLAG_BIGCHARS;
    623                                 case 'x':
    624                                         base = 16;
    625                                         break;
    626                                 /* percentile itself */
    627                                 case '%':
    628                                         j = i;
    629                                         goto next_char;
    630                                 /*
    631                                 * Bad formatting.
    632                                 */
    633                                 default:
    634                                         /* Unknown format
    635                                          *  now, the j is index of '%' so we will
    636                                          * print whole bad format sequence
    637                                          */
    638                                         goto next_char;         
     596                                counter += retval;
     597                                j = i + 1;
     598                                goto next_char;
     599
     600                        /*
     601                         * Integer values
     602                         */
     603                        case 'P': /* pointer */
     604                                flags |= __PRINTF_FLAG_BIGCHARS;
     605                        case 'p':
     606                                flags |= __PRINTF_FLAG_PREFIX;
     607                                base = 16;
     608                                qualifier = PrintfQualifierPointer;
     609                                break; 
     610                        case 'b':
     611                                base = 2;
     612                                break;
     613                        case 'o':
     614                                base = 8;
     615                                break;
     616                        case 'd':
     617                        case 'i':
     618                                flags |= __PRINTF_FLAG_SIGNED; 
     619                        case 'u':
     620                                break;
     621                        case 'X':
     622                                flags |= __PRINTF_FLAG_BIGCHARS;
     623                        case 'x':
     624                                base = 16;
     625                                break;
     626                        /* percentile itself */
     627                        case '%':
     628                                j = i;
     629                                goto next_char;
     630                        /*
     631                         * Bad formatting.
     632                         */
     633                        default:
     634                                /* Unknown format
     635                                 * now, j is index of '%' so we will
     636                                 * print whole bad format sequence
     637                                 */
     638                                goto next_char;         
    639639                        }
    640640               
     
    643643                        /* print number */
    644644                        switch (qualifier) {
    645                                 case PrintfQualifierByte:
    646                                         size = sizeof(unsigned char);
    647                                         number = (uint64_t)va_arg(ap, unsigned int);
    648                                         break;
    649                                 case PrintfQualifierShort:
    650                                         size = sizeof(unsigned short);
    651                                         number = (uint64_t)va_arg(ap, unsigned int);
    652                                         break;
    653                                 case PrintfQualifierInt:
    654                                         size = sizeof(unsigned int);
    655                                         number = (uint64_t)va_arg(ap, unsigned int);
    656                                         break;
    657                                 case PrintfQualifierLong:
    658                                         size = sizeof(unsigned long);
    659                                         number = (uint64_t)va_arg(ap, unsigned long);
    660                                         break;
    661                                 case PrintfQualifierLongLong:
    662                                         size = sizeof(unsigned long long);
    663                                         number = (uint64_t)va_arg(ap, unsigned long long);
    664                                         break;
    665                                 case PrintfQualifierPointer:
    666                                         size = sizeof(void *);
    667                                         number = (uint64_t)(unsigned long)va_arg(ap, void *);
    668                                         break;
    669                                 case PrintfQualifierNative:
    670                                         size = sizeof(unative_t);
    671                                         number = (uint64_t)va_arg(ap, unative_t);
    672                                         break;
    673                                 default: /* Unknown qualifier */
    674                                         counter = -counter;
    675                                         goto out;
     645                        case PrintfQualifierByte:
     646                                size = sizeof(unsigned char);
     647                                number = (uint64_t)va_arg(ap, unsigned int);
     648                                break;
     649                        case PrintfQualifierShort:
     650                                size = sizeof(unsigned short);
     651                                number = (uint64_t)va_arg(ap, unsigned int);
     652                                break;
     653                        case PrintfQualifierInt:
     654                                size = sizeof(unsigned int);
     655                                number = (uint64_t)va_arg(ap, unsigned int);
     656                                break;
     657                        case PrintfQualifierLong:
     658                                size = sizeof(unsigned long);
     659                                number = (uint64_t)va_arg(ap, unsigned long);
     660                                break;
     661                        case PrintfQualifierLongLong:
     662                                size = sizeof(unsigned long long);
     663                                number = (uint64_t)va_arg(ap, unsigned long long);
     664                                break;
     665                        case PrintfQualifierPointer:
     666                                size = sizeof(void *);
     667                                number = (uint64_t)(unsigned long)va_arg(ap, void *);
     668                                break;
     669                        case PrintfQualifierNative:
     670                                size = sizeof(unative_t);
     671                                number = (uint64_t)va_arg(ap, unative_t);
     672                                break;
     673                        default: /* Unknown qualifier */
     674                                counter = -counter;
     675                                goto out;
    676676                        }
    677677                       
     
    719719}
    720720
    721 
    722  /** @}
    723  */
    724 
     721/** @}
     722 */
Note: See TracChangeset for help on using the changeset viewer.