Changeset 280a27e in mainline


Ignore:
Timestamp:
2006-04-16T13:16:44Z (19 years ago)
Author:
Josef Cejka <malyzelenyhnus@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
50de918
Parents:
c624b96
Message:

Printf ported back from uspace to kernel.
Printf calls changed to match new conventions.

Files:
47 edited

Legend:

Unmodified
Added
Removed
  • arch/amd64/src/debugger.c

    rc624b96 r280a27e  
    106106                if (breakpoints[i].address) {
    107107                        symbol = get_symtab_entry(breakpoints[i].address);
    108                         printf("%d. 0x%p in %s\n",i,
     108                        printf("%d. %p in %s\n",i,
    109109                               breakpoints[i].address, symbol);
    110110                        printf("     Count(%d) ", breakpoints[i].counter);
  • arch/amd64/src/interrupt.c

    rc624b96 r280a27e  
    5252
    5353        printf("-----EXCEPTION(%d) OCCURED----- ( %s )\n",n, __FUNCTION__);
    54         printf("%%rip: %Q (%s)\n",istate->rip, symbol);
    55         printf("ERROR_WORD=%Q\n", istate->error_word);
    56         printf("%%rcs=%Q, flags=%Q, %%cr0=%Q\n", istate->cs, istate->rflags,read_cr0());
    57         printf("%%rax=%Q, %%rcx=%Q, %%rdx=%Q\n",istate->rax,istate->rcx,istate->rdx);
    58         printf("%%rsi=%Q, %%rdi=%Q, %%r8 =%Q\n",istate->rsi,istate->rdi,istate->r8);
    59         printf("%%r9 =%Q, %%r10 =%Q, %%r11=%Q\n",istate->r9,istate->r10,istate->r11);
     54        printf("%%rip: %#llX (%s)\n",istate->rip, symbol);
     55        printf("ERROR_WORD=%#llX\n", istate->error_word);
     56        printf("%%rcs=%#llX, flags=%#llX, %%cr0=%#llX\n", istate->cs, istate->rflags,read_cr0());
     57        printf("%%rax=%#llX, %%rcx=%#llX, %%rdx=%#llX\n",istate->rax,istate->rcx,istate->rdx);
     58        printf("%%rsi=%#llX, %%rdi=%#llX, %%r8 =%#llX\n",istate->rsi,istate->rdi,istate->r8);
     59        printf("%%r9 =%#llX, %%r10 =%#llX, %%r11=%#llX\n",istate->r9,istate->r10,istate->r11);
    6060#ifdef CONFIG_DEBUG_ALLREGS     
    61         printf("%%r12=%Q, %%r13=%Q, %%r14=%Q\n",istate->r12,istate->r13,istate->r14);
    62         printf("%%r15=%Q, %%rbx=%Q, %%rbp=%Q\n",istate->r15,istate->rbx,&istate->rbp);
     61        printf("%%r12=%#llX, %%r13=%#llX, %%r14=%#llX\n",istate->r12,istate->r13,istate->r14);
     62        printf("%%r15=%#llX, %%rbx=%#llX, %%rbp=%#llX\n",istate->r15,istate->rbx,&istate->rbp);
    6363#endif
    64         printf("%%rsp=%Q\n",&istate->stack[0]);
     64        printf("%%rsp=%#llX\n",&istate->stack[0]);
    6565}
    6666
  • arch/amd64/src/mm/memory_init.c

    rc624b96 r280a27e  
    4646       
    4747        for (i=0;i<e820counter;i++) {
    48                 printf("E820 base: %Q size: %Q type: ", e820table[i].base_address, e820table[i].size);
     48                printf("E820 base: %#llX size: %#llX type: ", e820table[i].base_address, e820table[i].size);
    4949                switch (e820table[i].type) {
    5050                        case MEMMAP_MEMORY_AVAILABLE:
  • arch/ia32/Makefile.inc

    rc624b96 r280a27e  
    103103endif
    104104
     105## Compile with support for software integer division.
     106#
     107
     108CONFIG_SOFTINT = y
     109
    105110ARCH_SOURCES = \
    106111        arch/$(ARCH)/src/context.s \
  • arch/ia32/src/interrupt.c

    rc624b96 r280a27e  
    6262                printf("----------------EXCEPTION OCCURED----------------\n");
    6363               
    64         printf("%%eip: %X (%s)\n",istate->eip,symbol);
    65         printf("ERROR_WORD=%X\n", istate->error_word);
    66         printf("%%cs=%X,flags=%X\n", istate->cs, istate->eflags);
    67         printf("%%eax=%X, %%ecx=%X, %%edx=%X, %%esp=%X\n",  istate->eax,istate->ecx,istate->edx,&istate->stack[0]);
     64        printf("%%eip: %#X (%s)\n",istate->eip,symbol);
     65        printf("ERROR_WORD=%#X\n", istate->error_word);
     66        printf("%%cs=%#X,flags=%#X\n", istate->cs, istate->eflags);
     67        printf("%%eax=%#X, %%ecx=%#X, %%edx=%#X, %%esp=%#X\n",  istate->eax,istate->ecx,istate->edx,&istate->stack[0]);
    6868#ifdef CONFIG_DEBUG_ALLREGS
    69         printf("%%esi=%X, %%edi=%X, %%ebp=%X, %%ebx=%X\n",  istate->esi,istate->edi,istate->ebp,istate->ebx);
     69        printf("%%esi=%#X, %%edi=%#X, %%ebp=%#X, %%ebx=%#X\n",  istate->esi,istate->edi,istate->ebp,istate->ebx);
    7070#endif
    71         printf("stack: %X, %X, %X, %X\n", istate->stack[0], istate->stack[1], istate->stack[2], istate->stack[3]);
    72         printf("       %X, %X, %X, %X\n", istate->stack[4], istate->stack[5], istate->stack[6], istate->stack[7]);
     71        printf("stack: %#X, %#X, %#X, %#X\n", istate->stack[0], istate->stack[1], istate->stack[2], istate->stack[3]);
     72        printf("       %#X, %#X, %#X, %#X\n", istate->stack[4], istate->stack[5], istate->stack[6], istate->stack[7]);
    7373}
    7474
     
    101101                :"=m"(mxcsr)
    102102        );
    103         printf("MXCSR: %X\n",(__native)(mxcsr));
     103        printf("MXCSR: %#zX\n",(__native)(mxcsr));
    104104        panic("SIMD FP exception(19)\n");
    105105}
     
    121121        if (!as_page_fault(page)) {
    122122                PRINT_INFO_ERRCODE(istate);
    123                 printf("page fault address: %X\n", page);
     123                printf("page fault address: %#X\n", page);
    124124                panic("page fault\n");
    125125        }
  • arch/ia32/src/mm/frame.c

    rc624b96 r280a27e  
    9292                else
    9393                        name = "invalid";
    94                 printf("%P %QB %s\n",
     94                printf("%P %#llXB %s\n",
    9595                       (__native) e820table[i].base_address,
    9696                       (__u64) e820table[i].size,
  • arch/ia32/src/mm/memory_init.c

    rc624b96 r280a27e  
    4646       
    4747        for (i=0;i<e820counter;i++) {
    48                 printf("E820 base: %Q size: %Q type: ", e820table[i].base_address, e820table[i].size);
     48                printf("E820 base: %#llX size: %lld type: ", e820table[i].base_address, e820table[i].size);
    4949                switch (e820table[i].type) {
    5050                        case MEMMAP_MEMORY_AVAILABLE:
  • arch/ia32/src/smp/apic.c

    rc624b96 r280a27e  
    413413
    414414        tm.value = l_apic[LVT_Tm];
    415         printf("LVT Tm: vector=%B, %s, %s, %s\n", tm.vector, delivs_str[tm.delivs], mask_str[tm.masked], tm_mode_str[tm.mode]);
     415        printf("LVT Tm: vector=%hhd, %s, %s, %s\n", tm.vector, delivs_str[tm.delivs], mask_str[tm.masked], tm_mode_str[tm.mode]);
    416416        lint.value = l_apic[LVT_LINT0];
    417         printf("LVT LINT0: vector=%B, %s, %s, %s, irr=%d, %s, %s\n", tm.vector, delmod_str[lint.delmod], delivs_str[lint.delivs], intpol_str[lint.intpol], lint.irr, trigmod_str[lint.trigger_mode], mask_str[lint.masked]);
     417        printf("LVT LINT0: vector=%hhd, %s, %s, %s, irr=%d, %s, %s\n", tm.vector, delmod_str[lint.delmod], delivs_str[lint.delivs], intpol_str[lint.intpol], lint.irr, trigmod_str[lint.trigger_mode], mask_str[lint.masked]);
    418418        lint.value = l_apic[LVT_LINT1];
    419         printf("LVT LINT1: vector=%B, %s, %s, %s, irr=%d, %s, %s\n", tm.vector, delmod_str[lint.delmod], delivs_str[lint.delivs], intpol_str[lint.intpol], lint.irr, trigmod_str[lint.trigger_mode], mask_str[lint.masked]);   
     419        printf("LVT LINT1: vector=%hhd, %s, %s, %s, irr=%d, %s, %s\n", tm.vector, delmod_str[lint.delmod], delivs_str[lint.delivs], intpol_str[lint.intpol], lint.irr, trigmod_str[lint.trigger_mode], mask_str[lint.masked]); 
    420420        error.value = l_apic[LVT_Err];
    421         printf("LVT Err: vector=%B, %s, %s\n", error.vector, delivs_str[error.delivs], mask_str[error.masked]);
     421        printf("LVT Err: vector=%hhd, %s, %s\n", error.vector, delivs_str[error.delivs], mask_str[error.masked]);
    422422#endif
    423423}
  • arch/ia64/src/interrupt.c

    rc624b96 r280a27e  
    133133        printf("Interrupted context dump:\n");
    134134        printf("ar.bsp=%P\tar.bspstore=%P\n", istate->ar_bsp, istate->ar_bspstore);
    135         printf("ar.rnat=%Q\tar.rsc=%Q\n", istate->ar_rnat, istate->ar_rsc);
    136         printf("ar.ifs=%Q\tar.pfs=%Q\n", istate->ar_ifs, istate->ar_pfs);
    137         printf("cr.isr=%Q\tcr.ipsr=%Q\t\n", istate->cr_isr.value, istate->cr_ipsr);
     135        printf("ar.rnat=%#llX\tar.rsc=%$llX\n", istate->ar_rnat, istate->ar_rsc);
     136        printf("ar.ifs=%#llX\tar.pfs=%#llX\n", istate->ar_ifs, istate->ar_pfs);
     137        printf("cr.isr=%#llX\tcr.ipsr=%#llX\t\n", istate->cr_isr.value, istate->cr_ipsr);
    138138       
    139         printf("cr.iip=%Q, #%d\t(%s)\n", istate->cr_iip, istate->cr_isr.ei ,iip ? iip : "?");
    140         printf("cr.iipa=%Q\t(%s)\n", istate->cr_iipa, iipa ? iipa : "?");
    141         printf("cr.ifa=%Q\t(%s)\n", istate->cr_ifa, ifa ? ifa : "?");
     139        printf("cr.iip=%#llX, #%d\t(%s)\n", istate->cr_iip, istate->cr_isr.ei ,iip ? iip : "?");
     140        printf("cr.iipa=%#llX\t(%s)\n", istate->cr_iipa, iipa ? iipa : "?");
     141        printf("cr.ifa=%#llX\t(%s)\n", istate->cr_ifa, ifa ? ifa : "?");
    142142}
    143143
     
    183183#else
    184184        dump_interrupted_context(istate);
    185         panic("Interruption: %W (%s)\n", (__u16) vector, vector_to_string(vector));
     185        panic("Interruption: %#hX (%s)\n", (__u16) vector, vector_to_string(vector));
    186186#endif
    187187}
     
    218218{
    219219        dump_interrupted_context(istate);
    220         panic("Interruption: %W (%s)\n", (__u16) vector, vector_to_string(vector));
     220        panic("Interruption: %#hX (%s)\n", (__u16) vector, vector_to_string(vector));
    221221}
    222222
  • arch/mips32/Makefile.inc

    rc624b96 r280a27e  
    107107endif
    108108
     109## Compile with support for software integer division.
     110#
     111
     112CONFIG_SOFTINT = y
     113
    109114
    110115ARCH_SOURCES = \
  • arch/mips32/src/debugger.c

    rc624b96 r280a27e  
    243243                if (breakpoints[i].address) {
    244244                        symbol = get_symtab_entry(breakpoints[i].address);
    245                         printf("%d. 0x%p in %s\n",i,
     245                        printf("%d. %p in %s\n",i,
    246246                               breakpoints[i].address, symbol);
    247247                        printf("     Count(%d) ", breakpoints[i].counter);
     
    329329               
    330330                if (!(cur->flags & BKPOINT_FUNCCALL))
    331                         printf("***Breakpoint %d: 0x%p in %s.\n", i,
     331                        printf("***Breakpoint %d: %p in %s.\n", i,
    332332                               fireaddr, get_symtab_entry(istate->epc));
    333333
     
    342342                cur->flags |= BKPOINT_INPROG;
    343343        } else {
    344                 printf("***Breakpoint 0x%p in %s.\n", fireaddr,
     344                printf("***Breakpoint %p in %s.\n", fireaddr,
    345345                       get_symtab_entry(fireaddr));
    346346                /* Move on to next instruction */
  • arch/mips32/src/exception.c

    rc624b96 r280a27e  
    7474                rasymbol = s;
    7575       
    76         printf("PC: %X(%s) RA: %X(%s), SP(%P)\n",istate->epc,pcsymbol,
     76        printf("PC: %#X(%s) RA: %#X(%s), SP(%P)\n",istate->epc,pcsymbol,
    7777               istate->ra,rasymbol, istate->sp);
    7878}
  • arch/mips32/src/mm/tlb.c

    rc624b96 r280a27e  
    410410                lo1.value = cp0_entry_lo1_read();
    411411               
    412                 printf("%d: asid=%d, vpn2=%d, mask=%d\tg[0]=%d, v[0]=%d, d[0]=%d, c[0]=%B, pfn[0]=%d\n"
    413                        "\t\t\t\tg[1]=%d, v[1]=%d, d[1]=%d, c[1]=%B, pfn[1]=%d\n",
     412                printf("%d: asid=%d, vpn2=%d, mask=%d\tg[0]=%d, v[0]=%d, d[0]=%d, c[0]=%hhd, pfn[0]=%d\n"
     413                       "\t\t\t\tg[1]=%d, v[1]=%d, d[1]=%d, c[1]=%hhd, pfn[1]=%d\n",
    414414                       i, hi.asid, hi.vpn2, mask.mask, lo0.g, lo0.v, lo0.d, lo0.c, lo0.pfn,
    415415                       lo1.g, lo1.v, lo1.d, lo1.c, lo1.pfn);
  • arch/ppc32/Makefile.inc

    rc624b96 r280a27e  
    5656DEFS += -DCONFIG_PAGE_PT
    5757
     58## Compile with support for software integer division.
     59#
     60
     61CONFIG_SOFTINT = y
     62
    5863ARCH_SOURCES = \
    5964        arch/$(ARCH)/src/console.c \
  • arch/ppc32/src/mm/memory_init.c

    rc624b96 r280a27e  
    4444       
    4545        for (i = 0; i < bootinfo.memmap.count; i++)
    46                 printf("base: %L size: %L\n", bootinfo.memmap.zones[i].start, bootinfo.memmap.zones[i].size);
     46                printf("base: %#X size: %#X\n", bootinfo.memmap.zones[i].start, bootinfo.memmap.zones[i].size);
    4747}
  • arch/ppc64/src/mm/memory_init.c

    rc624b96 r280a27e  
    4444       
    4545        for (i = 0; i < bootinfo.memmap.count; i++)
    46                 printf("base: %L size: %L\n", bootinfo.memmap.zones[i].start, bootinfo.memmap.zones[i].size);
     46                printf("base: %P size: %#X\n", bootinfo.memmap.zones[i].start, bootinfo.memmap.zones[i].size);
    4747}
  • arch/sparc64/src/mm/tlb.c

    rc624b96 r280a27e  
    202202                t.value = itlb_tag_read_read(i);
    203203               
    204                 printf("%d: vpn=%Q, context=%d, v=%d, size=%d, nfo=%d, ie=%d, soft2=%X, diag=%X, pfn=%X, soft=%X, l=%d, cp=%d, cv=%d, e=%d, p=%d, w=%d, g=%d\n",
     204                printf("%d: vpn=%#llX, context=%d, v=%d, size=%d, nfo=%d, ie=%d, soft2=%#X, diag=%#X, pfn=%#X, soft=%#X, l=%d, cp=%d, cv=%d, e=%d, p=%d, w=%d, g=%d\n",
    205205                        i, t.vpn, t.context, d.v, d.size, d.nfo, d.ie, d.soft2, d.diag, d.pfn, d.soft, d.l, d.cp, d.cv, d.e, d.p, d.w, d.g);
    206206        }
     
    211211                t.value = dtlb_tag_read_read(i);
    212212               
    213                 printf("%d: vpn=%Q, context=%d, v=%d, size=%d, nfo=%d, ie=%d, soft2=%X, diag=%X, pfn=%X, soft=%X, l=%d, cp=%d, cv=%d, e=%d, p=%d, w=%d, g=%d\n",
     213                printf("%d: vpn=%#llX, context=%d, v=%d, size=%d, nfo=%d, ie=%d, soft2=%#X, diag=%#X, pfn=%#X, soft=%#X, l=%d, cp=%d, cv=%d, e=%d, p=%d, w=%d, g=%d\n",
    214214                        i, t.vpn, t.context, d.v, d.size, d.nfo, d.ie, d.soft2, d.diag, d.pfn, d.soft, d.l, d.cp, d.cv, d.e, d.p, d.w, d.g);
    215215        }
  • genarch/include/softint/division.h

    rc624b96 r280a27e  
    3535
    3636/* 64bit integer division */
    37 long __divdi3(long a, long b);
     37long long __divdi3(long long a, long long b);
    3838
    3939/* 32bit unsigned integer division */
     
    4141
    4242/* 64bit unsigned integer division */
    43 unsigned long __udivdi3(unsigned long a, unsigned long b);
     43unsigned long long __udivdi3(unsigned long long a, unsigned long long b);
    4444
    4545/* 32bit remainder of the signed division */
     
    4747
    4848/* 64bit remainder of the signed division */
    49 long __moddi3(long a, long b);
     49long long __moddi3(long long a, long long b);
    5050
    5151/* 32bit remainder of the unsigned division */
     
    5353
    5454/* 64bit remainder of the unsigned division */
    55 unsigned long __umoddi3(unsigned long a, unsigned long b);
     55unsigned long long __umoddi3(unsigned long long a, unsigned long long b);
    5656
    57 unsigned long __udivmoddi3(unsigned long a, unsigned long b, unsigned long *c);
     57unsigned long long __udivmoddi3(unsigned long long a, unsigned long long b, unsigned long long *c);
    5858
    5959#endif
  • genarch/src/acpi/acpi.c

    rc624b96 r280a27e  
    9797                                        goto next;
    9898                                *signature_map[j].sdt_ptr = h;
    99                                 printf("%P: ACPI %s\n", *signature_map[j].sdt_ptr, signature_map[j].description);
     99                                printf("%#zX: ACPI %s\n", *signature_map[j].sdt_ptr, signature_map[j].description);
    100100                        }
    101101                }
     
    118118                                        goto next;
    119119                                *signature_map[j].sdt_ptr = h;
    120                                 printf("%P: ACPI %s\n", *signature_map[j].sdt_ptr, signature_map[j].description);
     120                                printf("%#zX: ACPI %s\n", *signature_map[j].sdt_ptr, signature_map[j].description);
    121121                        }
    122122                }
     
    152152
    153153rsdp_found:
    154         printf("%P: ACPI Root System Description Pointer\n", acpi_rsdp);
     154        printf("%#zX: ACPI Root System Description Pointer\n", acpi_rsdp);
    155155
    156156        acpi_rsdt = (struct acpi_rsdt *) (__native) acpi_rsdp->rsdt_address;
  • genarch/src/acpi/matd.c

    rc624b96 r280a27e  
    177177                        case MADT_L_SAPIC:
    178178                        case MADT_PLATFORM_INTR_SRC:
    179                                 printf("MADT: skipping %s entry (type=%d)\n", entry[h->type], h->type);
     179                                printf("MADT: skipping %s entry (type=%zd)\n", entry[h->type], h->type);
    180180                                break;
    181181
    182182                        default:
    183183                                if (h->type >= MADT_RESERVED_SKIP_BEGIN && h->type <= MADT_RESERVED_SKIP_END) {
    184                                         printf("MADT: skipping reserved entry (type=%d)\n", h->type);
     184                                        printf("MADT: skipping reserved entry (type=%zd)\n", h->type);
    185185                                }
    186186                                if (h->type >= MADT_RESERVED_OEM_BEGIN) {
    187                                         printf("MADT: skipping OEM entry (type=%d)\n", h->type);
     187                                        printf("MADT: skipping OEM entry (type=%zd)\n", h->type);
    188188                                }
    189189                                break;
     
    229229{
    230230        ASSERT(override->source < sizeof(isa_irq_map)/sizeof(int));
    231         printf("MADT: ignoring %s entry: bus=%d, source=%d, global_int=%d, flags=%W\n",
     231        printf("MADT: ignoring %s entry: bus=%zd, source=%zd, global_int=%zd, flags=%#hX\n",
    232232                entry[override->header.type], override->bus, override->source,
    233233                override->global_int, override->flags);
  • genarch/src/i8042/i8042.c

    rc624b96 r280a27e  
    3333#include <arch/asm.h>
    3434#include <arch.h>
    35 #include <print.h>
    3635#include <synch/spinlock.h>
    3736#include <typedefs.h>
  • genarch/src/softint/division.c

    rc624b96 r280a27e  
    6666
    6767
    68 static unsigned long divandmod64(unsigned long a, unsigned long b, unsigned long *remainder)
     68static unsigned long long divandmod64(unsigned long long a, unsigned long long b, unsigned long long *remainder)
    6969{
    70         unsigned long result;
    71         int steps = sizeof(unsigned long) * 8;
     70        unsigned long long result;
     71        int steps = sizeof(unsigned long long) * 8;
    7272       
    7373        *remainder = 0;
     
    112112
    113113/* 64bit integer division */
    114 long __divdi3(long a, long b)
     114long long __divdi3(long long a, long long b)
    115115{
    116         unsigned long rem;
    117         long result;
     116        unsigned long long rem;
     117        long long result;
    118118       
    119         result = (long)divandmod64(ABSVAL(a), ABSVAL(b), &rem);
     119        result = (long long)divandmod64(ABSVAL(a), ABSVAL(b), &rem);
    120120
    121121        if ( SGN(a) == SGN(b)) return result;
     
    131131
    132132/* 64bit unsigned integer division */
    133 unsigned long __udivdi3(unsigned long a, unsigned long b)
     133unsigned long long __udivdi3(unsigned long long a, unsigned long long b)
    134134{
    135         unsigned long rem;
     135        unsigned long long  rem;
    136136        return divandmod64(a, b, &rem);
    137137}
     
    152152
    153153/* 64bit remainder of the signed division */
    154 long __moddi3(long a, long b)
     154long long __moddi3(long long a,long long b)
    155155{
    156         unsigned long rem;
     156        unsigned long long rem;
    157157        divandmod64(a, b, &rem);
    158158       
    159159        /* if divident is negative, remainder must be too */
    160160        if (!(SGN(a))) {
    161                 return -((long)rem);
     161                return -((long long)rem);
    162162        }
    163163       
    164         return (long)rem;
     164        return (long long)rem;
    165165}
    166166
     
    174174
    175175/* 64bit remainder of the unsigned division */
    176 unsigned long __umoddi3(unsigned long a, unsigned long b)
     176unsigned long long __umoddi3(unsigned long long a, unsigned long long b)
    177177{
    178         unsigned long rem;
     178        unsigned long long rem;
    179179        divandmod64(a, b, &rem);
    180180        return rem;
    181181}
    182182
    183 unsigned long __udivmoddi3(unsigned long a, unsigned long b, unsigned long *c)
     183unsigned long long __udivmoddi3(unsigned long long a, unsigned long long b, unsigned long long *c)
    184184{
    185185        return divandmod64(a, b, c);
  • generic/include/print.h

    rc624b96 r280a27e  
    3838#define INT64   8
    3939
    40 extern void printf(const char *fmt, ...);
     40extern int printf(const char *fmt, ...);
    4141
    4242/* We need this address in spinlock to avoid deadlock in deadlock detection */
    4343extern spinlock_t printflock;
    4444
     45#define EOF (-1)
     46
    4547#endif
  • generic/src/adt/btree.c

    rc624b96 r280a27e  
    946946                printf("(");
    947947                for (i = 0; i < node->keys; i++) {
    948                         printf("%d%s", node->key[i], i < node->keys - 1 ? "," : "");
     948                        printf("%lld%s", node->key[i], i < node->keys - 1 ? "," : "");
    949949                        if (node->depth && node->subtree[i]) {
    950950                                list_append(&node->subtree[i]->bfs_link, &head);
     
    968968                printf("(");
    969969                for (i = 0; i < node->keys; i++)
    970                         printf("%d%s", node->key[i], i < node->keys - 1 ? "," : "");
     970                        printf("%lld%s", node->key[i], i < node->keys - 1 ? "," : "");
    971971                printf(")");
    972972        }
  • generic/src/console/cmd.c

    rc624b96 r280a27e  
    459459        } else {
    460460                symbol = get_symtab_entry(symaddr);
    461                 printf("Calling f(): 0x%p: %s\n", symaddr, symbol);
     461                printf("Calling f(): %p: %s\n", symaddr, symbol);
    462462                f =  (__native (*)(void)) symaddr;
    463                 printf("Result: 0x%p\n", f());
     463                printf("Result: %p\n", f());
    464464        }
    465465       
     
    483483        } else {
    484484                symbol = get_symtab_entry(symaddr);
    485                 printf("Calling f(0x%x): 0x%p: %s\n", arg1, symaddr, symbol);
     485                printf("Calling f(0x%zX): %p: %s\n", arg1, symaddr, symbol);
    486486                f =  (__native (*)(__native,...)) symaddr;
    487                 printf("Result: 0x%p\n", f(arg1));
     487                printf("Result: %p\n", f(arg1));
    488488        }
    489489       
     
    508508        } else {
    509509                symbol = get_symtab_entry(symaddr);
    510                 printf("Calling f(0x%x,0x%x): 0x%p: %s\n",
     510                printf("Calling f(0x%zx,0x%zx): %p: %s\n",
    511511                       arg1, arg2, symaddr, symbol);
    512512                f =  (__native (*)(__native,__native,...)) symaddr;
    513                 printf("Result: 0x%p\n", f(arg1, arg2));
     513                printf("Result: %p\n", f(arg1, arg2));
    514514        }
    515515       
     
    535535        } else {
    536536                symbol = get_symtab_entry(symaddr);
    537                 printf("Calling f(0x%x,0x%x, 0x%x): 0x%p: %s\n",
     537                printf("Calling f(0x%zx,0x%zx, 0x%zx): %p: %s\n",
    538538                       arg1, arg2, arg3, symaddr, symbol);
    539539                f =  (__native (*)(__native,__native,__native,...)) symaddr;
    540                 printf("Result: 0x%p\n", f(arg1, arg2, arg3));
     540                printf("Result: %p\n", f(arg1, arg2, arg3));
    541541        }
    542542       
     
    599599                if (pointer)
    600600                        addr = (__u32 *)(*(__native *)addr);
    601                 printf("Writing 0x%x -> 0x%p\n", arg1, addr);
     601                printf("Writing 0x%x -> %p\n", arg1, addr);
    602602                *addr = arg1;
    603603               
  • generic/src/debug/print.c

    rc624b96 r280a27e  
    11/*
    22 * Copyright (C) 2001-2004 Jakub Jermar
     3 * Copyright (C) 2006 Josef Cejka
    34 * All rights reserved.
    45 *
     
    3536#include <arch.h>
    3637
    37 static char digits[] = "0123456789abcdef";      /**< Hexadecimal characters */
    3838SPINLOCK_INITIALIZE(printflock);                /**< printf spinlock */
    3939
    40 
    41 /** Print NULL terminated string
    42  *
    43  * Print characters from str using putchar() until
    44  * \\0 character is reached.
    45  *
    46  * @param str Characters to print.
     40#define __PRINTF_FLAG_PREFIX            0x00000001      /* show prefixes 0x or 0*/
     41#define __PRINTF_FLAG_SIGNED            0x00000002      /* signed / unsigned number */
     42#define __PRINTF_FLAG_ZEROPADDED        0x00000004      /* print leading zeroes */
     43#define __PRINTF_FLAG_LEFTALIGNED       0x00000010      /* align to left */
     44#define __PRINTF_FLAG_SHOWPLUS          0x00000020      /* always show + sign */
     45#define __PRINTF_FLAG_SPACESIGN         0x00000040      /* print space instead of plus */
     46#define __PRINTF_FLAG_BIGCHARS          0x00000080      /* show big characters */
     47#define __PRINTF_FLAG_NEGATIVE          0x00000100      /* number has - sign */
     48
     49#define PRINT_NUMBER_BUFFER_SIZE        (64+5)          /* Buffer big enought for 64 bit number
     50                                                         * printed in base 2, sign, prefix and
     51                                                         * 0 to terminate string.. (last one is only for better testing
     52                                                         * end of buffer by zero-filling subroutine)
     53                                                         */
     54typedef enum {
     55        PrintfQualifierByte = 0,
     56        PrintfQualifierShort,
     57        PrintfQualifierInt,
     58        PrintfQualifierLong,
     59        PrintfQualifierLongLong,
     60        PrintfQualifierNative,
     61        PrintfQualifierPointer
     62} qualifier_t;
     63
     64static char digits_small[] = "0123456789abcdef";        /* Small hexadecimal characters */
     65static char digits_big[] = "0123456789ABCDEF";  /* Big hexadecimal characters */
     66
     67static inline int isdigit(int c)
     68{
     69        return ((c >= '0' )&&( c <= '9'));
     70}
     71
     72static __native strlen(const char *str)
     73{
     74        __native counter = 0;
     75
     76        while (str[counter] != 0) {
     77                counter++;
     78        }
     79
     80        return counter;
     81}
     82
     83/** Print one string without adding \n at end
     84 * Dont use this function directly - printflock is not locked here
     85 * */
     86static int putstr(const char *str)
     87{
     88        int count;
     89        if (str == NULL) {
     90                str = "(NULL)";
     91        }
     92       
     93        for (count = 0; str[count] != 0; count++) {
     94                putchar(str[count]);
     95        }
     96        return count;
     97}
     98
     99/** Print count characters from buffer to output
    47100 *
    48101 */
    49 static void print_str(const char *str)
    50 {
    51         int i = 0;
    52         char c;
    53         char errstr[] = "(NULL)";
    54 
    55         if (str == NULL) {
    56                 while ((c = errstr[i++]))
    57                         putchar(c);
    58                 return;
    59         }       
    60        
    61         while ((c = str[i++]))
    62                 putchar(c);
    63 }
    64 
    65 
    66 /** Print hexadecimal digits
    67  *
    68  * Print fixed count of hexadecimal digits from
    69  * the number num. The digits are printed in
    70  * natural left-to-right order starting with
    71  * the width-th digit.
    72  *
    73  * @param num   Number containing digits.
    74  * @param width Count of digits to print.
    75  *
     102static int putnchars(const char *buffer, __native count)
     103{
     104        int i;
     105        if (buffer == NULL) {
     106                buffer = "(NULL)";
     107                count = 6;
     108        }
     109
     110        for (i = 0; i < count; i++) {
     111                putchar(buffer[i]);
     112        }
     113       
     114        return count;
     115}
     116
     117/** Print one formatted character
     118 * @param c character to print
     119 * @param width
     120 * @param flags
     121 * @return number of printed characters or EOF
    76122 */
    77 static void print_fixed_hex(const __u64 num, const int width)
    78 {
    79         int i;
    80    
    81         for (i = width*8 - 4; i >= 0; i -= 4)
    82             putchar(digits[(num>>i) & 0xf]);
     123static int print_char(char c, int width, __u64 flags)
     124{
     125        int counter = 0;
     126       
     127        if (!(flags & __PRINTF_FLAG_LEFTALIGNED)) {
     128                while (--width > 0) {   /* one space is consumed by character itself hence predecrement */
     129                        /* FIXME: painful slow */
     130                        putchar(' ');   
     131                        ++counter;
     132                }
     133        }
     134       
     135        putchar(c);
     136        ++counter;
     137
     138        while (--width > 0) { /* one space is consumed by character itself hence predecrement */
     139                putchar(' ');
     140                ++counter;
     141        }
     142       
     143        return counter;
     144}
     145
     146/** Print one string
     147 * @param s string
     148 * @param width
     149 * @param precision
     150 * @param flags
     151 * @return number of printed characters or EOF
     152 */
     153                                               
     154static int print_string(char *s, int width, int precision, __u64 flags)
     155{
     156        int counter = 0;
     157        __native size;
     158
     159        if (s == NULL) {
     160                return putstr("(NULL)");
     161        }
     162       
     163        size = strlen(s);
     164
     165        /* print leading spaces */
     166
     167        if (precision == 0)
     168                precision = size;
     169
     170        width -= precision;
     171       
     172        if (!(flags & __PRINTF_FLAG_LEFTALIGNED)) {
     173                while (width-- > 0) {   
     174                        putchar(' ');   
     175                        counter++;
     176                }
     177        }
     178
     179        while (precision > size) {
     180                precision--;
     181                putchar(' ');   
     182                ++counter;
     183        }
     184       
     185        if (putnchars(s, precision) == EOF) {
     186                return EOF;
     187        }
     188
     189        counter += precision;
     190
     191        while (width-- > 0) {
     192                putchar(' ');   
     193                ++counter;
     194        }
     195       
     196        return ++counter;
    83197}
    84198
     
    90204 *
    91205 * @param num  Number to print.
     206 * @param width
     207 * @param precision
    92208 * @param base Base to print the number in (should
    93209 *             be in range 2 .. 16).
     210 * @param flags output modifiers
     211 * @return number of written characters or EOF
    94212 *
    95213 */
    96 static void print_number(const __native num, const unsigned int base)
    97 {
    98         int val = num;
    99         char d[sizeof(__native)*8+1];           /* this is good enough even for base == 2 */
    100         int i = sizeof(__native)*8-1;
    101        
    102         do {
    103                 d[i--] = digits[val % base];
    104         } while (val /= base);
    105        
    106         d[sizeof(__native)*8] = 0;     
    107         print_str(&d[i + 1]);
     214static int print_number(__u64 num, int width, int precision, int base , __u64 flags)
     215{
     216        char *digits = digits_small;
     217        char d[PRINT_NUMBER_BUFFER_SIZE];       /* this is good enough even for base == 2, prefix and sign */
     218        char *ptr = &d[PRINT_NUMBER_BUFFER_SIZE - 1];
     219        int size = 0;
     220        int written = 0;
     221        char sgn;
     222       
     223        if (flags & __PRINTF_FLAG_BIGCHARS)
     224                digits = digits_big;   
     225       
     226        *ptr-- = 0; /* Put zero at end of string */
     227
     228        if (num == 0) {
     229                *ptr-- = '0';
     230                size++;
     231        } else {
     232                do {
     233                        *ptr-- = digits[num % base];
     234                        size++;
     235                } while (num /= base);
     236        }
     237
     238        /* Collect sum of all prefixes/signs/... to calculate padding and leading zeroes */
     239        if (flags & __PRINTF_FLAG_PREFIX) {
     240                switch(base) {
     241                        case 2: /* Binary formating is not standard, but usefull */
     242                                size += 2;
     243                                break;
     244                        case 8:
     245                                size++;
     246                                break;
     247                        case 16:
     248                                size += 2;
     249                                break;
     250                }
     251        }
     252
     253        sgn = 0;
     254        if (flags & __PRINTF_FLAG_SIGNED) {
     255                if (flags & __PRINTF_FLAG_NEGATIVE) {
     256                        sgn = '-';
     257                        size++;
     258                } else if (flags & __PRINTF_FLAG_SHOWPLUS) {
     259                                sgn = '+';
     260                                size++;
     261                        } else if (flags & __PRINTF_FLAG_SPACESIGN) {
     262                                        sgn = ' ';
     263                                        size++;
     264                                }
     265        }
     266
     267        if (flags & __PRINTF_FLAG_LEFTALIGNED) {
     268                flags &= ~__PRINTF_FLAG_ZEROPADDED;
     269        }
     270
     271        /* if number is leftaligned or precision is specified then zeropadding is ignored */
     272        if (flags & __PRINTF_FLAG_ZEROPADDED) {
     273                if ((precision == 0) && (width > size)) {
     274                        precision = width - size;
     275                }
     276        }
     277
     278        /* print leading spaces */
     279        if (size > precision) /* We must print whole number not only a part */
     280                precision = size;
     281
     282        width -= precision;
     283       
     284        if (!(flags & __PRINTF_FLAG_LEFTALIGNED)) {
     285                while (width-- > 0) {   
     286                        putchar(' ');   
     287                        written++;
     288                }
     289        }
     290       
     291        /* print sign */
     292        if (sgn) {
     293                putchar(sgn);
     294                written++;
     295        }
     296       
     297        /* print prefix */
     298       
     299        if (flags & __PRINTF_FLAG_PREFIX) {
     300                switch(base) {
     301                        case 2: /* Binary formating is not standard, but usefull */
     302                                putchar('0');
     303                                if (flags & __PRINTF_FLAG_BIGCHARS) {
     304                                        putchar('B');
     305                                } else {
     306                                        putchar('b');
     307                                }
     308                                written += 2;
     309                                break;
     310                        case 8:
     311                                putchar('o');
     312                                written++;
     313                                break;
     314                        case 16:
     315                                putchar('0');
     316                                if (flags & __PRINTF_FLAG_BIGCHARS) {
     317                                        putchar('X');
     318                                } else {
     319                                        putchar('x');
     320                                }
     321                                written += 2;
     322                                break;
     323                }
     324        }
     325
     326        /* print leading zeroes */
     327        precision -= size;
     328        while (precision-- > 0) {       
     329                putchar('0');   
     330                written++;
     331        }
     332
     333       
     334        /* print number itself */
     335
     336        written += putstr(++ptr);
     337       
     338        /* print ending spaces */
     339       
     340        while (width-- > 0) {   
     341                putchar(' ');   
     342                written++;
     343        }
     344
     345        return written;
    108346}
    109347
     
    165403 * @param fmt Formatting NULL terminated string.
    166404 */
    167 void printf(const char *fmt, ...)
    168 {
    169         int irqpri, i = 0;
     405int printf(const char *fmt, ...)
     406{
     407        int irqpri;
     408        int i = 0, j = 0; /* i is index of currently processed char from fmt, j is index to the first not printed nonformating character */
     409        int end;
     410        int counter; /* counter of printed characters */
     411        int retval; /* used to store return values from called functions */
    170412        va_list ap;
    171         char c;
     413        char c;
     414        qualifier_t qualifier;  /* type of argument */
     415        int base;       /* base in which will be parameter (numbers only) printed */
     416        __u64 number; /* argument value */
     417        __native size; /* byte size of integer parameter */
     418        int width, precision;
     419        __u64 flags;
     420       
     421        counter = 0;
    172422       
    173423        va_start(ap, fmt);
    174 
     424       
    175425        irqpri = interrupts_disable();
    176426        spinlock_lock(&printflock);
    177427
    178         while ((c = fmt[i++])) {
    179                 switch (c) {
    180 
    181                     /* control character */
    182                     case '%':
    183                    
    184                         switch (c = fmt[i++]) {
    185 
    186                             /* percentile itself */
    187                             case '%':
    188                                 break;
    189 
    190                             /*
    191                              * String and character conversions.
    192                              */
    193                             case 's':
    194                                 print_str(va_arg(ap, char_ptr));
    195                                 goto loop;
    196 
    197                             case 'c':
    198                                 c = (char) va_arg(ap, int);
    199                                 break;
    200 
    201                             /*
    202                              * Hexadecimal conversions with fixed width.
    203                              */
    204                             case 'P':
    205                                 print_str("0x");
    206                             case 'p':
    207                                 print_fixed_hex(va_arg(ap, __native), sizeof(__native));
    208                                 goto loop;
    209 
    210                             case 'Q':
    211                                 print_str("0x");
    212                             case 'q':
    213                                 print_fixed_hex(va_arg(ap, __u64), INT64);
    214                                 goto loop;
    215 
    216                             case 'L':
    217                                 print_str("0x");
    218                             case 'l':
    219                                 print_fixed_hex(va_arg(ap, __native), INT32);
    220                                 goto loop;
    221 
    222                             case 'W':
    223                                 print_str("0x");
    224                             case 'w':
    225                                 print_fixed_hex(va_arg(ap, __native), INT16);
    226                                 goto loop;
    227 
    228                             case 'B':
    229                                 print_str("0x");
    230                             case 'b':
    231                                 print_fixed_hex(va_arg(ap, __native), INT8);
    232                                 goto loop;
    233        
    234                             /*
    235                              * Decimal and hexadecimal conversions.
    236                              */
    237                             case 'd':
    238                                 print_number(va_arg(ap, __native), 10);
    239                                 goto loop;
    240 
    241                             case 'X':
    242                                 print_str("0x");
    243                             case 'x':
    244                                 print_number(va_arg(ap, __native), 16);
    245                                 goto loop;
    246            
    247                             /*
    248                              * Bad formatting.
    249                              */
    250                             default:
     428       
     429        while ((c = fmt[i])) {
     430                /* control character */
     431                if (c == '%' ) {
     432                        /* print common characters if any processed */ 
     433                        if (i > j) {
     434                                if ((retval = putnchars(&fmt[j], (__native)(i - j))) == EOF) { /* error */
     435                                        counter = -counter;
     436                                        goto out;
     437                                }
     438                                counter += retval;
     439                        }
     440               
     441                        j = i;
     442                        /* parse modifiers */
     443                        flags = 0;
     444                        end = 0;
     445                       
     446                        do {
     447                                ++i;
     448                                switch (c = fmt[i]) {
     449                                        case '#': flags |= __PRINTF_FLAG_PREFIX; break;
     450                                        case '-': flags |= __PRINTF_FLAG_LEFTALIGNED; break;
     451                                        case '+': flags |= __PRINTF_FLAG_SHOWPLUS; break;
     452                                        case ' ': flags |= __PRINTF_FLAG_SPACESIGN; break;
     453                                        case '0': flags |= __PRINTF_FLAG_ZEROPADDED; break;
     454                                        default: end = 1;
     455                                };     
     456                               
     457                        } while (end == 0);     
     458                       
     459                        /* width & '*' operator */
     460                        width = 0;
     461                        if (isdigit(fmt[i])) {
     462                                while (isdigit(fmt[i])) {
     463                                        width *= 10;
     464                                        width += fmt[i++] - '0';
     465                                }
     466                        } else if (fmt[i] == '*') {
     467                                /* get width value from argument list*/
     468                                i++;
     469                                width = (int)va_arg(ap, int);
     470                                if (width < 0) {
     471                                        /* negative width means to set '-' flag */
     472                                        width *= -1;
     473                                        flags |= __PRINTF_FLAG_LEFTALIGNED;
     474                                }
     475                        }
     476                       
     477                        /* precision and '*' operator */       
     478                        precision = 0;
     479                        if (fmt[i] == '.') {
     480                                ++i;
     481                                if (isdigit(fmt[i])) {
     482                                        while (isdigit(fmt[i])) {
     483                                                precision *= 10;
     484                                                precision += fmt[i++] - '0';
     485                                        }
     486                                } else if (fmt[i] == '*') {
     487                                        /* get precision value from argument list*/
     488                                        i++;
     489                                        precision = (int)va_arg(ap, int);
     490                                        if (precision < 0) {
     491                                                /* negative precision means to ignore it */
     492                                                precision = 0;
     493                                        }
     494                                }
     495                        }
     496
     497                        switch (fmt[i++]) {
     498                                /** TODO: unimplemented qualifiers:
     499                                 * t ptrdiff_t - ISO C 99
     500                                 */
     501                                case 'h':       /* char or short */
     502                                        qualifier = PrintfQualifierShort;
     503                                        if (fmt[i] == 'h') {
     504                                                i++;
     505                                                qualifier = PrintfQualifierByte;
     506                                        }
     507                                        break;
     508                                case 'l':       /* long or long long*/
     509                                        qualifier = PrintfQualifierLong;
     510                                        if (fmt[i] == 'l') {
     511                                                i++;
     512                                                qualifier = PrintfQualifierLongLong;
     513                                        }
     514                                        break;
     515                                case 'z':       /* __native */
     516                                        qualifier = PrintfQualifierNative;
     517                                        break;
     518                                default:
     519                                        qualifier = PrintfQualifierInt; /* default type */
     520                                        --i;
     521                        }       
     522                       
     523                        base = 10;
     524
     525                        switch (c = fmt[i]) {
     526
     527                                /*
     528                                * String and character conversions.
     529                                */
     530                                case 's':
     531                                        if ((retval = print_string(va_arg(ap, char*), width, precision, flags)) == EOF) {
     532                                                counter = -counter;
     533                                                goto out;
     534                                        };
     535                                       
     536                                        counter += retval;
     537                                        j = i + 1;
     538                                        goto next_char;
     539                                case 'c':
     540                                        c = va_arg(ap, unsigned int);
     541                                        if ((retval = print_char(c, width, flags )) == EOF) {
     542                                                counter = -counter;
     543                                                goto out;
     544                                        };
     545                                       
     546                                        counter += retval;
     547                                        j = i + 1;
     548                                        goto next_char;
     549
     550                                /*
     551                                 * Integer values
     552                                */
     553                                case 'P': /* pointer */
     554                                        flags |= __PRINTF_FLAG_BIGCHARS;
     555                                case 'p':
     556                                        flags |= __PRINTF_FLAG_PREFIX;
     557                                        base = 16;
     558                                        qualifier = PrintfQualifierPointer;
     559                                        break; 
     560                                case 'b':
     561                                        base = 2;
     562                                        break;
     563                                case 'o':
     564                                        base = 8;
     565                                        break;
     566                                case 'd':
     567                                case 'i':
     568                                        flags |= __PRINTF_FLAG_SIGNED; 
     569                                case 'u':
     570                                        break;
     571                                case 'X':
     572                                        flags |= __PRINTF_FLAG_BIGCHARS;
     573                                case 'x':
     574                                        base = 16;
     575                                        break;
     576                                /* percentile itself */
     577                                case '%':
     578                                        j = i;
     579                                        goto next_char;
     580                                /*
     581                                * Bad formatting.
     582                                */
     583                                default:
     584                                        /* Unknown format
     585                                         *  now, the j is index of '%' so we will
     586                                         * print whole bad format sequence
     587                                         */
     588                                        goto next_char;         
     589                        }
     590               
     591               
     592                /* Print integers */
     593                        /* print number */
     594                        switch (qualifier) {
     595                                case PrintfQualifierByte:
     596                                        size = sizeof(unsigned char);
     597                                        number = (__u64)va_arg(ap, unsigned int);
     598                                        break;
     599                                case PrintfQualifierShort:
     600                                        size = sizeof(unsigned short);
     601                                        number = (__u64)va_arg(ap, unsigned int);
     602                                        break;
     603                                case PrintfQualifierInt:
     604                                        size = sizeof(unsigned int);
     605                                        number = (__u64)va_arg(ap, unsigned int);
     606                                        break;
     607                                case PrintfQualifierLong:
     608                                        size = sizeof(unsigned long);
     609                                        number = (__u64)va_arg(ap, unsigned long);
     610                                        break;
     611                                case PrintfQualifierLongLong:
     612                                        size = sizeof(unsigned long long);
     613                                        number = (__u64)va_arg(ap, unsigned long long);
     614                                        break;
     615                                case PrintfQualifierPointer:
     616                                        size = sizeof(void *);
     617                                        number = (__u64)(unsigned long)va_arg(ap, void *);
     618                                        break;
     619                                case PrintfQualifierNative:
     620                                        size = sizeof(__native);
     621                                        number = (__u64)va_arg(ap, __native);
     622                                        break;
     623                                default: /* Unknown qualifier */
     624                                        counter = -counter;
     625                                        goto out;
     626                                       
     627                        }
     628                       
     629                        if (flags & __PRINTF_FLAG_SIGNED) {
     630                                if (number & (0x1 << (size*8 - 1))) {
     631                                        flags |= __PRINTF_FLAG_NEGATIVE;
     632                               
     633                                        if (size == sizeof(__u64)) {
     634                                                number = -((__s64)number);
     635                                        } else {
     636                                                number = ~number;
     637                                                number &= (~((0xFFFFFFFFFFFFFFFFll) <<  (size * 8)));
     638                                                number++;
     639                                        }
     640                                }
     641                        }
     642
     643                        if ((retval = print_number(number, width, precision, base, flags)) == EOF ) {
     644                                counter = -counter;
    251645                                goto out;
    252                         }
    253 
    254                     default: putchar(c);
     646                        };
     647
     648                        counter += retval;
     649                        j = i + 1;
     650                }       
     651next_char:
     652                       
     653                ++i;
     654        }
     655       
     656        if (i > j) {
     657                if ((retval = putnchars(&fmt[j], (__native)(i - j))) == EOF) { /* error */
     658                        counter = -counter;
     659                        goto out;
    255660                }
    256        
    257 loop:
    258                 ;
    259         }
    260 
     661                counter += retval;
     662        }
    261663out:
    262664        spinlock_unlock(&printflock);
     
    264666       
    265667        va_end(ap);
    266 }
     668        return counter;
     669}
     670
  • generic/src/debug/symtab.c

    rc624b96 r280a27e  
    133133                addr =  __u64_le2host(symbol_table[i].address_le);
    134134                realname = symbol_table[i].symbol_name;
    135                 printf("0x%p: %s\n", addr, realname);
     135                printf("%p: %s\n", addr, realname);
    136136                i++;
    137137        }
  • generic/src/interrupt/interrupt.c

    rc624b96 r280a27e  
    9797                if (!symbol)
    9898                        symbol = "not found";
    99                 printf("%d %s 0x%p(%s)\n", i + IVT_FIRST, exc_table[i].name,
     99                printf("%d %s %p(%s)\n", i + IVT_FIRST, exc_table[i].name,
    100100                       exc_table[i].f,symbol);         
    101101                if (!((i+1) % 20)) {
  • generic/src/lib/elf.c

    rc624b96 r280a27e  
    3434#include <mm/frame.h>
    3535#include <mm/slab.h>
    36 #include <print.h>
    3736#include <align.h>
    3837#include <memstr.h>
  • generic/src/main/kinit.c

    rc624b96 r280a27e  
    154154                                ipc_phone_0 = &utask->answerbox;
    155155                } else
    156                         printf("Init task %d not started.\n", i);
     156                        printf("Init task %zd not started.\n", i);
    157157        }
    158158
  • generic/src/main/main.c

    rc624b96 r280a27e  
    177177
    178178        version_print();
    179         printf("%P: hardcoded_ktext_size=%dK, hardcoded_kdata_size=%dK\n",
     179        printf("%#zX: hardcoded_ktext_size=%zdK, hardcoded_kdata_size=%zdK\n",
    180180                config.base, hardcoded_ktext_size/1024, hardcoded_kdata_size/1024);
    181181
     
    185185        slab_enable_cpucache(); /* Slab must be initialized AFTER we know the number of processors */
    186186
    187         printf("config.memory_size=%dM\n", config.memory_size/(1024*1024));
    188         printf("config.cpu_count=%d\n", config.cpu_count);
     187        printf("config.memory_size=%zdM\n", config.memory_size/(1024*1024));
     188        printf("config.cpu_count=%zd\n", config.cpu_count);
    189189        cpu_init();
    190190       
     
    197197       
    198198        for (i = 0; i < init.cnt; i++)
    199                 printf("init[%d].addr=%P, init[%d].size=%d\n", i, init.tasks[i].addr, i, init.tasks[i].size);
     199                printf("init[%zd].addr=%P, init[%zd].size=%zd\n", i, init.tasks[i].addr, i, init.tasks[i].size);
    200200       
    201201        ipc_init();
  • generic/src/main/uinit.c

    rc624b96 r280a27e  
    3232#include <userspace.h>
    3333#include <mm/slab.h>
    34 #include <print.h>
    3534
    3635/** Thread used to bring up userspace thread.
  • generic/src/mm/buddy.c

    rc624b96 r280a27e  
    292292                }
    293293       
    294                 printf("#%d\t%d\t%dK\t\t%dK\t\t%d\t", i, cnt, (cnt * (1 << i) * elem_size) >> 10, ((1 << i) * elem_size) >> 10, 1 << i);
     294                printf("#%zd\t%zd\t%zdK\t\t%zdK\t\t%zd\t", i, cnt, (cnt * (1 << i) * elem_size) >> 10, ((1 << i) * elem_size) >> 10, 1 << i);
    295295                if (!list_empty(&b->order[i])) {
    296296                        for (cur = b->order[i].next; cur != &b->order[i]; cur = cur->next) {
     
    305305        }
    306306        printf("-----\t------\t--------\t----------\t---------------\n");
    307         printf("Buddy system contains %d free elements (%d blocks)\n" , elem_count, block_count);
    308 
    309 }
     307        printf("Buddy system contains %zd free elements (%zd blocks)\n" , elem_count, block_count);
     308
     309}
  • generic/src/mm/frame.c

    rc624b96 r280a27e  
    281281        zone = (zone_t *) b->data;
    282282        index = frame_index(zone, frame);
    283         printf("%d", index);
     283        printf("%zd", index);
    284284}                                   
    285285
     
    10291029                zone = zones.info[i];
    10301030                spinlock_lock(&zone->lock);
    1031                 printf("%d: %L\t%d\t\t%d\n",i,PFN2ADDR(zone->base),
     1031                printf("%d: %#X \t%zd\t\t%zd\n",i,PFN2ADDR(zone->base),
    10321032                       zone->free_count, zone->busy_count);
    10331033                spinlock_unlock(&zone->lock);
     
    10621062        spinlock_lock(&zone->lock);
    10631063        printf("Memory zone information\n");
    1064         printf("Zone base address: %P\n", PFN2ADDR(zone->base));
    1065         printf("Zone size: %d frames (%dK)\n", zone->count, ((zone->count) * FRAME_SIZE) >> 10);
    1066         printf("Allocated space: %d frames (%dK)\n", zone->busy_count, (zone->busy_count * FRAME_SIZE) >> 10);
    1067         printf("Available space: %d (%dK)\n", zone->free_count, (zone->free_count * FRAME_SIZE) >> 10);
     1064        printf("Zone base address: %#zX\n", PFN2ADDR(zone->base));
     1065        printf("Zone size: %zd frames (%zdK)\n", zone->count, ((zone->count) * FRAME_SIZE) >> 10);
     1066        printf("Allocated space: %zd frames (%zdK)\n", zone->busy_count, (zone->busy_count * FRAME_SIZE) >> 10);
     1067        printf("Available space: %zd (%zdK)\n", zone->free_count, (zone->free_count * FRAME_SIZE) >> 10);
    10681068        buddy_system_structure_print(zone->buddy_system, FRAME_SIZE);
    10691069       
  • generic/src/mm/slab.c

    rc624b96 r280a27e  
    793793        for (cur = slab_cache_list.next;cur!=&slab_cache_list; cur=cur->next) {
    794794                cache = list_get_instance(cur, slab_cache_t, link);
    795                 printf("%s\t%d\t%d\t%d\t%d\t%d\t%d\t\t%s\n", cache->name, cache->size,
     795                printf("%s\t%zd\t%zd\t%zd\t%zd\t%zd\t%zd\t\t%s\n", cache->name, cache->size,
    796796                       (1 << cache->order), cache->objects,
    797797                       atomic_get(&cache->allocated_slabs),
  • generic/src/proc/scheduler.c

    rc624b96 r280a27e  
    450450
    451451#ifdef SCHEDULER_VERBOSE
    452         printf("cpu%d: tid %d (priority=%d,ticks=%d,nrdy=%d)\n", CPU->id, THREAD->tid, THREAD->priority, THREAD->ticks, atomic_get(&CPU->nrdy));
     452        printf("cpu%d: tid %d (priority=%d,ticks=%lld,nrdy=%ld)\n", CPU->id, THREAD->tid, THREAD->priority, THREAD->ticks, atomic_get(&CPU->nrdy));
    453453#endif 
    454454
     
    570570                                spinlock_lock(&t->lock);
    571571#ifdef KCPULB_VERBOSE
    572                                 printf("kcpulb%d: TID %d -> cpu%d, nrdy=%d, avg=%d\n", CPU->id, t->tid, CPU->id, atomic_get(&CPU->nrdy), atomic_get(&nrdy) / config.cpu_active);
     572                                printf("kcpulb%d: TID %d -> cpu%d, nrdy=%ld, avg=%nd\n", CPU->id, t->tid, CPU->id, atomic_get(&CPU->nrdy), atomic_get(&nrdy) / config.cpu_active);
    573573#endif
    574574                                t->flags |= X_STOLEN;
     
    634634
    635635                spinlock_lock(&cpus[cpu].lock);
    636                 printf("cpu%d: address=%P, nrdy=%d, needs_relink=%d\n",
     636                printf("cpu%d: address=%P, nrdy=%ld, needs_relink=%ld\n",
    637637                       cpus[cpu].id, &cpus[cpu], atomic_get(&cpus[cpu].nrdy), cpus[cpu].needs_relink);
    638638               
  • generic/src/proc/task.c

    rc624b96 r280a27e  
    213213               
    214214                        spinlock_lock(&t->lock);
    215                         printf("%s: address=%P, taskid=%Q, as=%P, ActiveCalls: %d",
     215                        printf("%s: address=%#zX, taskid=%#llX, as=%#zX, ActiveCalls: %zd",
    216216                                t->name, t, t->taskid, t->as, atomic_get(&t->active_calls));
    217217                        for (j=0; j < IPC_MAX_PHONES; j++) {
    218218                                if (t->phones[j].callee)
    219                                         printf(" Ph(%d): %P ", j, t->phones[j].callee);
     219                                        printf(" Ph(%zd): %#zX ", j, t->phones[j].callee);
    220220                        }
    221221                        printf("\n");
  • generic/src/proc/thread.c

    rc624b96 r280a27e  
    419419               
    420420                        t = (thread_t *) node->value[i];
    421                         printf("%s: address=%P, tid=%d, state=%s, task=%P, code=%P, stack=%P, cpu=",
     421                        printf("%s: address=%#zX, tid=%zd, state=%s, task=%#zX, code=%#zX, stack=%#zX, cpu=",
    422422                                t->name, t, t->tid, thread_states[t->state], t->task, t->thread_code, t->kstack);
    423423                        if (t->cpu)
    424                                 printf("cpu%d ", t->cpu->id);
     424                                printf("cpu%zd ", t->cpu->id);
    425425                        else
    426426                                printf("none");
  • generic/src/time/clock.c

    rc624b96 r280a27e  
    3636#include <proc/scheduler.h>
    3737#include <cpu.h>
    38 #include <print.h>
    3938#include <arch.h>
    4039#include <adt/list.h>
  • generic/src/time/timeout.c

    rc624b96 r280a27e  
    3535#include <func.h>
    3636#include <cpu.h>
    37 #include <print.h>
    3837#include <arch/asm.h>
    3938#include <arch.h>
    40 #include <print.h>
    4139
    4240
  • test/fpu/fpu1/test.c

    rc624b96 r280a27e  
    9494
    9595                if((int)(100000000*e)!=E_10e8)
    96                         panic("tid%d: e*10e8=%d should be %d\n", THREAD->tid, (__native) (100000000*e),(__native) E_10e8);
     96                        panic("tid%d: e*10e8=%zd should be %zd\n", THREAD->tid, (__native) (100000000*e),(__native) E_10e8);
    9797        }
    9898
    99         printf("tid%d: e*10e8=%d should be %d\n", THREAD->tid, (__native) (100000000*e),(__native) E_10e8);
     99        printf("tid%d: e*10e8=%zd should be %zd\n", THREAD->tid, (__native) (100000000*e),(__native) E_10e8);
    100100        atomic_inc(&threads_ok);
    101101}
     
    132132#ifdef __ia64_ARCH_H__
    133133                if((int)(1000000*pi)!=PI_10e8)
    134                         panic("tid%d: pi*10e8=%d should be %d\n", THREAD->tid, (__native) (1000000*pi),(__native) (PI_10e8/100));
     134                        panic("tid%d: pi*10e8=%zd should be %zd\n", THREAD->tid, (__native) (1000000*pi),(__native) (PI_10e8/100));
    135135#else
    136136                if((int)(100000000*pi)!=PI_10e8)
    137                         panic("tid%d: pi*10e8=%d should be %d\n", THREAD->tid, (__native) (100000000*pi),(__native) PI_10e8);
     137                        panic("tid%d: pi*10e8=%zd should be %zd\n", THREAD->tid, (__native) (100000000*pi),(__native) PI_10e8);
    138138#endif
    139139
    140140        }
    141141
    142         printf("tid%d: pi*10e8=%d should be %d\n", THREAD->tid, (__native) (100000000*pi),(__native) PI_10e8);
     142        printf("tid%d: pi*10e8=%zd should be %zd\n", THREAD->tid, (__native) (100000000*pi),(__native) PI_10e8);
    143143        atomic_inc(&threads_ok);
    144144}
  • test/mm/falloc1/test.c

    rc624b96 r280a27e  
    6060                               
    6161                                if (ALIGN_UP(frames[allocated], FRAME_SIZE << order) != frames[allocated]) {
    62                                         panic("Test failed. Block at address %X (size %dK) is not aligned\n", frames[allocated], (FRAME_SIZE << order) >> 10);
     62                                        panic("Test failed. Block at address %P (size %dK) is not aligned\n", frames[allocated], (FRAME_SIZE << order) >> 10);
    6363                                }
    6464                               
  • test/mm/falloc2/test.c

    rc624b96 r280a27e  
    7878                                for (k = 0; k <= ((FRAME_SIZE << order) - 1); k++) {
    7979                                        if (((__u8 *) frames[i])[k] != val) {
    80                                                 printf("Thread #%d (cpu%d): Unexpected data (%d) in block %P offset %X\n", THREAD->tid, CPU->id, ((char *) frames[i])[k], frames[i], k);
     80                                                printf("Thread #%d (cpu%d): Unexpected data (%d) in block %P offset %#zX\n", THREAD->tid, CPU->id, ((char *) frames[i])[k], frames[i], k);
    8181                                                failed();
    8282                                        }
  • test/mm/mapping1/test.c

    rc624b96 r280a27e  
    5151        frame1 = PA2KA(PFN2ADDR(frame_alloc(ONE_FRAME, FRAME_KA)));
    5252
    53         printf("Writing %L to physical address %P.\n", VALUE0, KA2PA(frame0));
     53        printf("Writing %#X to physical address %P.\n", VALUE0, KA2PA(frame0));
    5454        *((__u32 *) frame0) = VALUE0;
    55         printf("Writing %L to physical address %P.\n", VALUE1, KA2PA(frame1));
     55        printf("Writing %#X to physical address %P.\n", VALUE1, KA2PA(frame1));
    5656        *((__u32 *) frame1) = VALUE1;
    5757       
     
    6161        page_mapping_insert(AS_KERNEL, PAGE1, KA2PA(frame1), PAGE_PRESENT | PAGE_WRITE);
    6262       
    63         printf("Value at virtual address %P is %L.\n", PAGE0, v0 = *((__u32 *) PAGE0));
    64         printf("Value at virtual address %P is %L.\n", PAGE1, v1 = *((__u32 *) PAGE1));
     63        printf("Value at virtual address %P is %#X.\n", PAGE0, v0 = *((__u32 *) PAGE0));
     64        printf("Value at virtual address %P is %#X.\n", PAGE1, v1 = *((__u32 *) PAGE1));
    6565       
    6666        ASSERT(v0 == VALUE0);
    6767        ASSERT(v1 == VALUE1);
    6868
    69         printf("Writing %X to virtual address %P.\n", 0, PAGE0);
     69        printf("Writing %#X to virtual address %P.\n", 0, PAGE0);
    7070        *((__u32 *) PAGE0) = 0;
    71         printf("Writing %X to virtual address %P.\n", 0, PAGE1);
     71        printf("Writing %#X to virtual address %P.\n", 0, PAGE1);
    7272        *((__u32 *) PAGE1) = 0;
    7373
     
    7575        v1 = *((__u32 *) PAGE1);
    7676       
    77         printf("Value at virtual address %P is %X.\n", PAGE0, *((__u32 *) PAGE0));     
    78         printf("Value at virtual address %P is %X.\n", PAGE1, *((__u32 *) PAGE1));
     77        printf("Value at virtual address %P is %#X.\n", PAGE0, *((__u32 *) PAGE0));     
     78        printf("Value at virtual address %P is %#X.\n", PAGE1, *((__u32 *) PAGE1));
    7979
    8080        ASSERT(v0 == 0);
  • test/print/print1/test.c

    rc624b96 r280a27e  
    3131void test(void)
    3232{
     33        __native nat = 0x12345678u;
    3334        printf(" Printf test \n");
    34         printf(" Q  %Q  %q \n",0x1111111111111111ull, 0x2222222222222222ull);
    35         printf(" Q,l  %Q  %l \n", 0x3333333333333333ull, 0x01234567);
    36         printf(" l,Q  %l  %Q \n", 0x01234567, 0x4444444444444444ull);
    37         printf(" L  %L  %l \n",0x01234567 ,0x01234567);   
    38         printf(" W  %W  %w \n",0x0123 ,0x0123);   
    39         printf(" B  %B  %b \n",0x01 ,0x01);
     35       
     36        printf(" text 10.8s %*.*s \n", 5, 3, "text");
     37        printf(" very long text 10.8s %10.8s \n", "very long text");
     38        printf(" text 8.10s %8.10s \n", "text");
     39        printf(" very long text 8.10s %8.10s \n", "very long text");
     40
     41        printf(" char: c '%c', 3.2c '%3.2c', -3.2c '%-3.2c', 2.3c '%2.3c', -2.3c '%-2.3c' \n",'a', 'b', 'c', 'd', 'e' );
     42        printf(" int: d '%d', 3.2d '%3.2d', -3.2d '%-3.2d', 2.3d '%2.3d', -2.3d '%-2.3d' \n",1, 1, 1, 1, 1 );
     43        printf(" -int: d '%d', 3.2d '%3.2d', -3.2d '%-3.2d', 2.3d '%2.3d', -2.3d '%-2.3d' \n",-1, -1, -1, -1, -1 );
     44        printf(" 0xint: x '%#x', 5.3x '%#5.3x', -5.3x '%#-5.3x', 3.5x '%#3.5x', -3.5x '%#-3.5x' \n",17, 17, 17, 17, 17 );
     45
     46        printf("'%#llx' 64bit, '%#x' 32bit, '%#hhx' 8bit, '%#hx' 16bit, __native '%#zX'. '%#llX' 64bit and '%s' string.\n", 0x1234567887654321ll, 0x12345678, 0x12, 0x1234, nat, 0x1234567887654321ull, "Lovely string" );
     47       
    4048        printf(" Print to NULL '%s'\n",NULL);
    4149        return;
  • test/synch/rwlock4/test.c

    rc624b96 r280a27e  
    133133               
    134134                context_save(&ctx);
    135                 printf("sp=%X, readers_in=%d\n", ctx.sp, rwlock.readers_in);
     135                printf("sp=%#X, readers_in=%d\n", ctx.sp, rwlock.readers_in);
    136136               
    137137                k = random(7) + 1;
  • test/synch/rwlock5/test.c

    rc624b96 r280a27e  
    9292                writers = (4-i)*WRITERS;
    9393
    94                 printf("Creating %d readers and %d writers...", readers, writers);
     94                printf("Creating %ld readers and %ld writers...", readers, writers);
    9595               
    9696                for (j=0; j<(READERS+WRITERS)/2; j++) {
     
    117117       
    118118                while (items_read.count != readers || items_written.count != writers) {
    119                         printf("%d readers remaining, %d writers remaining, readers_in=%d\n", readers - items_read.count, writers - items_written.count, rwlock.readers_in);
     119                        printf("%zd readers remaining, %zd writers remaining, readers_in=%zd\n", readers - items_read.count, writers - items_written.count, rwlock.readers_in);
    120120                        thread_usleep(100000);
    121121                }
Note: See TracChangeset for help on using the changeset viewer.