Changes in / [439ba77:9dcadb0] in mainline


Ignore:
Files:
25 deleted
63 edited

Legend:

Unmodified
Added
Removed
  • boot/Makefile.common

    r439ba77 r9dcadb0  
    6262        $(USPACEDIR)/app/getterm/getterm \
    6363        $(USPACEDIR)/app/klog/klog \
    64         $(USPACEDIR)/app/mkfat/mkfat \
    6564        $(USPACEDIR)/app/redir/redir \
    6665        $(USPACEDIR)/app/tester/tester \
  • kernel/Makefile.build

    r439ba77 r9dcadb0  
    186186        generic/src/ddi/device.c \
    187187        generic/src/debug/symtab.c \
    188         generic/src/debug/stacktrace.c \
    189188        generic/src/interrupt/interrupt.c \
    190189        generic/src/main/main.c \
  • kernel/arch/amd64/Makefile.inc

    r439ba77 r9dcadb0  
    3838
    3939FPU_NO_CFLAGS = -mno-sse -mno-sse2
    40 CMN1 = -m64 -mcmodel=kernel -mno-red-zone -fno-unwind-tables -fno-omit-frame-pointer
     40CMN1 = -m64 -mcmodel=kernel -mno-red-zone -fno-unwind-tables
    4141GCC_CFLAGS += $(CMN1)
    4242ICC_CFLAGS += $(CMN1)
     
    6060        arch/$(KARCH)/src/boot/boot.S \
    6161        arch/$(KARCH)/src/boot/memmap.c \
    62         arch/$(KARCH)/src/debug/stacktrace.c \
    63         arch/$(KARCH)/src/debug/stacktrace_asm.S \
    6462        arch/$(KARCH)/src/pm.c \
    6563        arch/$(KARCH)/src/context.S \
  • kernel/arch/amd64/_link.ld.in

    r439ba77 r9dcadb0  
    4444                *(COMMON);              /* global variables */
    4545
    46                 . = ALIGN(8);
    4746                symbol_table = .;
    4847                *(symtab.*);            /* Symbol table, must be LAST symbol!*/
  • kernel/arch/amd64/include/context.h

    r439ba77 r9dcadb0  
    4646#define SP_DELTA     16
    4747
    48 #define context_set(c, _pc, stack, size) \
    49         do { \
    50                 (c)->pc = (uintptr_t) (_pc); \
    51                 (c)->sp = ((uintptr_t) (stack)) + (size) - SP_DELTA; \
    52                 (c)->rbp = 0; \
    53         } while (0)
    54 
    5548#endif /* KERNEL */
    5649
  • kernel/arch/amd64/include/interrupt.h

    r439ba77 r9dcadb0  
    7070
    7171/** This is passed to interrupt handlers */
    72 typedef struct istate {
     72typedef struct {
    7373        uint64_t rax;
    7474        uint64_t rcx;
     
    8080        uint64_t r10;
    8181        uint64_t r11;
    82         uint64_t rbp;
    8382        uint64_t error_word;
    8483        uint64_t rip;
     
    102101        return istate->rip;
    103102}
    104 static inline unative_t istate_get_fp(istate_t *istate)
    105 {
    106         return istate->rbp;
    107 }
    108103
    109104extern void (* disable_irqs_function)(uint16_t irqmask);
  • kernel/arch/amd64/src/asm_utils.S

    r439ba77 r9dcadb0  
    2727#
    2828
    29 #define IREGISTER_SPACE 80
     29#define IREGISTER_SPACE 72
    3030
    3131#define IOFFSET_RAX     0x0
     
    3838#define IOFFSET_R10     0x38
    3939#define IOFFSET_R11     0x40
    40 #define IOFFSET_RBP     0x48
    4140
    4241#  Mask for interrupts 0 - 31 (bits 0 - 31) where 0 means that int has no error word
     
    180179        movq %r10, IOFFSET_R10(%rsp)
    181180        movq %r11, IOFFSET_R11(%rsp)
    182         movq %rbp, IOFFSET_RBP(%rsp)
    183181.endm
    184182
     
    193191        movq IOFFSET_R10(%rsp), %r10
    194192        movq IOFFSET_R11(%rsp), %r11
    195         movq IOFFSET_RBP(%rsp), %rbp
    196193.endm
    197194
     
    238235        cld
    239236
    240         # Stop stack traces here
    241         xorq %rbp, %rbp
    242 
    243237        movq $(\i), %rdi        # %rdi - first parameter
    244238        movq %rsp, %rsi         # %rsi - pointer to istate
  • kernel/arch/amd64/src/boot/boot.S

    r439ba77 r9dcadb0  
    174174        call arch_pre_main
    175175       
    176         # create the first stack frame
    177         pushq $0
    178         movq %rsp, %rbp
    179 
    180176        call main_bsp
    181177       
     
    333329
    334330extended_cpuid_msg:
    335         .asciz "Error: Extended CPUID not supported -- CPU is not 64-bit. System halted."
     331        .asciz "Extended CPUID not supported. System halted."
    336332long_mode_msg:
    337         .asciz "Error: 64-bit long mode not supported. System halted."
     333        .asciz "64 bit long mode not supported. System halted."
    338334noexecute_msg:
    339         .asciz "Error: No-execute pages not supported. System halted."
     335        .asciz "No-execute pages not supported. System halted."
    340336fx_msg:
    341         .asciz "Error: FXSAVE/FXRESTORE instructions not supported. System halted."
     337        .asciz "FXSAVE/FXRESTORE instructions not supported. System halted."
    342338sse2_msg:
    343         .asciz "Error: SSE2 instructions not supported. System halted."
     339        .asciz "SSE2 instructions not supported. System halted."
  • kernel/arch/amd64/src/interrupt.c

    r439ba77 r9dcadb0  
    5353#include <ddi/irq.h>
    5454#include <symtab.h>
    55 #include <stacktrace.h>
    5655
    5756/*
     
    8180            istate->r10, istate->r11);
    8281        printf("%%rsp=%#llx\n", &istate->stack[0]);
    83        
    84         stack_trace_istate(istate);
    8582}
    8683
  • kernel/arch/amd64/src/mm/page.c

    r439ba77 r9dcadb0  
    203203{
    204204        if (last_frame + ALIGN_UP(size, PAGE_SIZE) > KA2PA(KERNEL_ADDRESS_SPACE_END_ARCH))
    205                 panic("Unable to map physical memory %p (%d bytes).", physaddr,
    206                     size);
     205                panic("Unable to map physical memory %p (%d bytes).", physaddr, size)
    207206       
    208207        uintptr_t virtaddr = PA2KA(last_frame);
  • kernel/arch/amd64/src/smp/ap.S

    r439ba77 r9dcadb0  
    9999start64:
    100100        movq (ctx), %rsp
    101         pushq $0
    102         movq %rsp, %rbp
    103101        call main_ap - AP_BOOT_OFFSET + BOOT_OFFSET   # never returns
    104102
  • kernel/arch/arm32/Makefile.inc

    r439ba77 r9dcadb0  
    5757        arch/$(KARCH)/src/exception.c \
    5858        arch/$(KARCH)/src/userspace.c \
    59         arch/$(KARCH)/src/debug/stacktrace.c \
    60         arch/$(KARCH)/src/debug/stacktrace_asm.S \
    6159        arch/$(KARCH)/src/mm/as.c \
    6260        arch/$(KARCH)/src/mm/frame.c \
  • kernel/arch/arm32/_link.ld.in

    r439ba77 r9dcadb0  
    3434                *(.sdata);
    3535                *(.reginfo);
    36                 . = ALIGN(8);
    3736                symbol_table = .;
    3837                *(symtab.*);
  • kernel/arch/arm32/include/exception.h

    r439ba77 r9dcadb0  
    8686
    8787/** Struct representing CPU state saved when an exception occurs. */
    88 typedef struct istate {
     88typedef struct {
    8989        uint32_t spsr;
    9090        uint32_t sp;
     
    133133}
    134134
    135 static inline unative_t istate_get_fp(istate_t *istate)
    136 {
    137         return istate->r11;
    138 }
    139 
    140135
    141136extern void install_exception_handlers(void);
  • kernel/arch/arm32/src/mm/page.c

    r439ba77 r9dcadb0  
    8888            KA2PA(KERNEL_ADDRESS_SPACE_END_ARCH)) {
    8989                panic("Unable to map physical memory %p (%d bytes).",
    90                     physaddr, size);
     90                    physaddr, size)
    9191        }
    9292       
  • kernel/arch/ia32/Makefile.inc

    r439ba77 r9dcadb0  
    7878        arch/$(KARCH)/src/context.S \
    7979        arch/$(KARCH)/src/debug/panic.s \
    80         arch/$(KARCH)/src/debug/stacktrace.c \
    81         arch/$(KARCH)/src/debug/stacktrace_asm.S \
    8280        arch/$(KARCH)/src/delay.s \
    8381        arch/$(KARCH)/src/asm.S \
  • kernel/arch/ia32/_link.ld.in

    r439ba77 r9dcadb0  
    4242                hardcoded_unmapped_kdata_size = .;
    4343                LONG(unmapped_kdata_end - unmapped_kdata_start);
    44                 . = ALIGN(8);
    4544                symbol_table = .;
    4645                *(symtab.*);            /* Symbol table, must be LAST symbol! */
  • kernel/arch/ia32/include/context.h

    r439ba77 r9dcadb0  
    4949#define SP_DELTA        (8 + STACK_ITEM_SIZE)
    5050
    51 #define context_set(c, _pc, stack, size) \
    52         do { \
    53                 (c)->pc = (uintptr_t) (_pc); \
    54                 (c)->sp = ((uintptr_t) (stack)) + (size) - SP_DELTA; \
    55                 (c)->ebp = 0; \
    56         } while (0)
    57 
    5851#endif /* KERNEL */
    5952
  • kernel/arch/ia32/include/interrupt.h

    r439ba77 r9dcadb0  
    6969#define VECTOR_DEBUG_IPI                (IVT_FREEBASE + 2)
    7070
    71 typedef struct istate {
     71typedef struct {
    7272        uint32_t eax;
    7373        uint32_t ecx;
    7474        uint32_t edx;
    75         uint32_t ebp;
    7675
    7776        uint32_t gs;
     
    103102}
    104103
    105 static inline unative_t istate_get_fp(istate_t *istate)
    106 {
    107         return istate->ebp;
    108 }
    109 
    110104extern void (* disable_irqs_function)(uint16_t irqmask);
    111105extern void (* enable_irqs_function)(uint16_t irqmask);
  • kernel/arch/ia32/src/asm.S

    r439ba77 r9dcadb0  
    269269        pushl %gs
    270270
    271         pushl %ebp
    272271        pushl %edx
    273272        pushl %ecx
     
    279278        movw %ax, %es
    280279
    281         # stop stack traces here
    282         xorl %ebp, %ebp
     280        cld
    283281
    284282        pushl %esp          # *istate
     
    292290        popl %ecx
    293291        popl %edx
    294         popl %ebp
    295292       
    296293        popl %gs
  • kernel/arch/ia32/src/boot/boot.S

    r439ba77 r9dcadb0  
    9494        pushl grub_eax
    9595        call arch_pre_main
    96 
    97         # Create the first stack frame
    98         pushl $0
    99         movl %esp, %ebp
    10096       
    10197        call main_bsp
  • kernel/arch/ia32/src/interrupt.c

    r439ba77 r9dcadb0  
    5353#include <ddi/irq.h>
    5454#include <symtab.h>
    55 #include <stacktrace.h>
    5655
    5756/*
     
    8079        printf("stack: %#lx, %#lx, %#lx, %#lx\n", istate->stack[0], istate->stack[1], istate->stack[2], istate->stack[3]);
    8180        printf("       %#lx, %#lx, %#lx, %#lx\n", istate->stack[4], istate->stack[5], istate->stack[6], istate->stack[7]);
    82 
    83         stack_trace_istate(istate);
    8481}
    8582
  • kernel/arch/ia32/src/mm/page.c

    r439ba77 r9dcadb0  
    8080{
    8181        if (last_frame + ALIGN_UP(size, PAGE_SIZE) > KA2PA(KERNEL_ADDRESS_SPACE_END_ARCH))
    82                 panic("Unable to map physical memory %p (%d bytes).", physaddr, size);
     82                panic("Unable to map physical memory %p (%d bytes).", physaddr, size)
    8383       
    8484        uintptr_t virtaddr = PA2KA(last_frame);
  • kernel/arch/ia32/src/smp/ap.S

    r439ba77 r9dcadb0  
    7878        addl $0x80000000, %esp                  # PA2KA(ctx.sp)
    7979       
    80         pushl $0                                # create the first stack frame
    81         movl %esp, %ebp
    82 
    8380        jmpl $KTEXT, $main_ap
    8481
  • kernel/arch/ia64/Makefile.inc

    r439ba77 r9dcadb0  
    5353        arch/$(KARCH)/src/context.S \
    5454        arch/$(KARCH)/src/cpu/cpu.c \
    55         arch/$(KARCH)/src/debug/stacktrace.c \
    56         arch/$(KARCH)/src/debug/stacktrace_asm.S \
    5755        arch/$(KARCH)/src/ivt.S \
    5856        arch/$(KARCH)/src/interrupt.c \
  • kernel/arch/ia64/_link.ld.in

    r439ba77 r9dcadb0  
    3737                *(COMMON);
    3838
    39                 . = ALIGN(8);
    4039                symbol_table = .;
    4140                *(symtab.*);            /* Symbol table, must be LAST symbol!*/
  • kernel/arch/ia64/include/interrupt.h

    r439ba77 r9dcadb0  
    7272#define EOI  0  /**< The actual value doesn't matter. */
    7373
    74 typedef struct istate {
     74typedef struct {
    7575        uint128_t f2;
    7676        uint128_t f3;
     
    143143}
    144144
    145 static inline unative_t istate_get_fp(istate_t *istate)
    146 {
    147         return 0;       /* FIXME */
    148 }
    149 
    150145static inline int istate_from_uspace(istate_t *istate)
    151146{
  • kernel/arch/ia64/include/mm/asid.h

    r439ba77 r9dcadb0  
    5050 * but those extra bits are not used by the kernel.
    5151 */
    52 #define RIDS_PER_ASID           8
     52#define RIDS_PER_ASID           7
    5353
    5454#define RID_MAX                 262143          /* 2^18 - 1 */
    55 #define RID_KERNEL7             7
     55#define RID_KERNEL              0
     56#define RID_INVALID             1
    5657
    57 #define ASID2RID(asid, vrn) \
    58         ((asid) * RIDS_PER_ASID + (vrn))
     58#define ASID2RID(asid, vrn)     (((asid)>RIDS_PER_ASID)?(((asid)*RIDS_PER_ASID)+(vrn)):(asid))
     59#define RID2ASID(rid)           ((rid)/RIDS_PER_ASID)
    5960
    60 #define RID2ASID(rid) \
    61         ((rid) / RIDS_PER_ASID)
    62 
    63 #define ASID_MAX_ARCH           (RID_MAX / RIDS_PER_ASID)
     61#define ASID_MAX_ARCH           (RID_MAX/RIDS_PER_ASID)
    6462
    6563#endif
  • kernel/arch/ia64/src/mm/page.c

    r439ba77 r9dcadb0  
    7171
    7272        /*
    73          * Set up kernel region registers.
    74          * VRN_KERNEL has already been set in start.S.
    75          * For paranoia reasons, we set it again.
     73         * First set up kernel region register.
     74         * This is redundant (see start.S) but we keep it here just for sure.
     75         */
     76        rr.word = rr_read(VRN_KERNEL);
     77        rr.map.ve = 0;                  /* disable VHPT walker */
     78        rr.map.ps = PAGE_WIDTH;
     79        rr.map.rid = ASID2RID(ASID_KERNEL, VRN_KERNEL);
     80        rr_write(VRN_KERNEL, rr.word);
     81        srlz_i();
     82        srlz_d();
     83
     84        /*
     85         * And setup the rest of region register.
    7686         */
    7787        for(i = 0; i < REGION_REGISTERS; i++) {
     88                /* skip kernel rr */
     89                if (i == VRN_KERNEL)
     90                        continue;
     91       
    7892                rr.word = rr_read(i);
    7993                rr.map.ve = 0;          /* disable VHPT walker */
    80                 rr.map.rid = ASID2RID(ASID_KERNEL, i);
     94                rr.map.rid = RID_KERNEL;
    8195                rr.map.ps = PAGE_WIDTH;
    8296                rr_write(i, rr.word);
  • kernel/arch/ia64/src/start.S

    r439ba77 r9dcadb0  
    7474        movl r10 = (RR_MASK)
    7575        and r9 = r10, r9
    76         movl r10 = (((RID_KERNEL7) << RID_SHIFT) | (KERNEL_PAGE_WIDTH << PS_SHIFT))
     76        movl r10 = ((RID_KERNEL << RID_SHIFT) | (KERNEL_PAGE_WIDTH << PS_SHIFT))
    7777        or r9 = r10, r9
    7878       
  • kernel/arch/mips32/Makefile.inc

    r439ba77 r9dcadb0  
    7070        arch/$(KARCH)/src/debugger.c \
    7171        arch/$(KARCH)/src/cpu/cpu.c \
    72         arch/$(KARCH)/src/debug/stacktrace.c \
    73         arch/$(KARCH)/src/debug/stacktrace_asm.S \
    7472        arch/$(KARCH)/src/mm/frame.c \
    7573        arch/$(KARCH)/src/mm/page.c \
  • kernel/arch/mips32/_link.ld.in

    r439ba77 r9dcadb0  
    3838                *(.bss);                        /* uninitialized static variables */
    3939                *(COMMON);                      /* global variables */
    40                 . = ALIGN(8);
    4140                symbol_table = .;
    4241                *(symtab.*);
  • kernel/arch/mips32/include/exception.h

    r439ba77 r9dcadb0  
    5858#define EXC_VCED        31
    5959
    60 typedef struct istate {
     60typedef struct {
    6161        uint32_t at;
    6262        uint32_t v0;
     
    102102        return istate->epc;
    103103}
    104 static inline unative_t istate_get_fp(istate_t *istate)
    105 {
    106         return 0;       /* FIXME */
    107 }
    108104
    109105extern void exception(istate_t *istate);
  • kernel/arch/ppc32/Makefile.inc

    r439ba77 r9dcadb0  
    4646        arch/$(KARCH)/src/context.S \
    4747        arch/$(KARCH)/src/debug/panic.s \
    48         arch/$(KARCH)/src/debug/stacktrace.c \
    49         arch/$(KARCH)/src/debug/stacktrace_asm.S \
    5048        arch/$(KARCH)/src/fpu_context.S \
    5149        arch/$(KARCH)/src/boot/boot.S \
  • kernel/arch/ppc32/_link.ld.in

    r439ba77 r9dcadb0  
    5151                *(COMMON);      /* global variables */
    5252               
    53                 . = ALIGN(8);
    5453                symbol_table = .;
    5554                *(symtab.*);    /* Symbol table, must be LAST symbol!*/
  • kernel/arch/ppc32/include/exception.h

    r439ba77 r9dcadb0  
    3939#include <arch/regutils.h>
    4040
    41 typedef struct istate {
     41typedef struct {
    4242        uint32_t r0;
    4343        uint32_t r2;
     
    9898}
    9999
    100 static inline unative_t istate_get_fp(istate_t *istate)
    101 {
    102         return istate->sp;
    103 }
    104 
    105100#endif
    106101
  • kernel/arch/ppc32/src/mm/page.c

    r439ba77 r9dcadb0  
    5151            KA2PA(KERNEL_ADDRESS_SPACE_END_ARCH))
    5252                panic("Unable to map physical memory %p (%" PRIs " bytes).",
    53                     physaddr, size);
     53                    physaddr, size)
    5454       
    5555        uintptr_t virtaddr = PA2KA(last_frame);
  • kernel/arch/sparc64/Makefile.inc

    r439ba77 r9dcadb0  
    5454ARCH_SOURCES = \
    5555        arch/$(KARCH)/src/cpu/cpu.c \
    56         arch/$(KARCH)/src/debug/stacktrace.c \
    57         arch/$(KARCH)/src/debug/stacktrace_asm.S \
    5856        arch/$(KARCH)/src/asm.S \
    5957        arch/$(KARCH)/src/panic.S \
  • kernel/arch/sparc64/_link.ld.in

    r439ba77 r9dcadb0  
    3636                *(COMMON);                  /* global variables */
    3737               
    38                 . = ALIGN(8);
    3938                symbol_table = .;
    4039                *(symtab.*);                /* Symbol table, must be LAST symbol!*/
  • kernel/arch/sparc64/include/interrupt.h

    r439ba77 r9dcadb0  
    5050};             
    5151
    52 typedef struct istate {
     52typedef struct {
    5353        uint64_t        tnpc;
    5454        uint64_t        tpc;
     
    7171}
    7272
    73 static inline unative_t istate_get_fp(istate_t *istate)
    74 {
    75         return 0;       /* TODO */
    76 }
    77 
    7873#endif
    7974
  • kernel/generic/include/debug.h

    r439ba77 r9dcadb0  
    7575#       define LOG(format, ...) \
    7676                printf("%s() at %s:%u: " format "\n", __func__, __FILE__, \
    77                     __LINE__, ##__VA_ARGS__);
     77                        __LINE__, ##__VA_ARGS__);
    7878#else
    7979#       define LOG(format, ...)
     
    9292                { \
    9393                        printf("%s() at %s:%u: " #fnc "\n", __func__, __FILE__, \
    94                             __LINE__); \
     94                        __LINE__); \
    9595                        fnc; \
    9696                }
  • kernel/generic/include/interrupt.h

    r439ba77 r9dcadb0  
    4242#include <arch.h>
    4343#include <ddi/irq.h>
    44 #include <stacktrace.h>
    4544
    4645typedef void (* iroutine)(int n, istate_t *istate);
     
    5049        if (istate_from_uspace(istate)) { \
    5150                task_t *task = TASK; \
    52                 printf("Task %s (%" PRIu64 ") killed due to an exception at " \
    53                     "program counter %p.\n", task->name, task->taskid, istate_get_pc(istate)); \
    54                 stack_trace_istate(istate); \
    55                 printf("Kill message: " fmt "\n", ##__VA_ARGS__); \
     51                printf("Task %s (%" PRIu64 ") killed due to an exception at %p: ", task->name, task->taskid, istate_get_pc(istate)); \
     52                printf(fmt "\n", ##__VA_ARGS__); \
    5653                task_kill(task->taskid); \
    5754                thread_exit(); \
  • kernel/generic/include/panic.h

    r439ba77 r9dcadb0  
    3636#define KERN_PANIC_H_
    3737
    38 #include <stacktrace.h>
    39 #include <print.h>
    40 
    4138#ifdef CONFIG_DEBUG
    4239#       define panic(format, ...) \
    43                 do { \
    44                         printf("Kernel panic in %s() at %s:%u.\n", \
    45                             __func__, __FILE__, __LINE__); \
    46                         stack_trace(); \
    47                         panic_printf("Panic message: " format "\n", \
    48                             ##__VA_ARGS__);\
    49                 } while (0)
     40                panic_printf("Kernel panic in %s() at %s:%u: " format "\n", \
     41                __func__, __FILE__, __LINE__, ##__VA_ARGS__);
    5042#else
    5143#       define panic(format, ...) \
  • kernel/generic/include/symtab.h

    r439ba77 r9dcadb0  
    4545};
    4646
    47 extern int symtab_name_lookup(uintptr_t, char **, uintptr_t *);
    48 extern char *symtab_fmt_name_lookup(uintptr_t);
    49 extern int symtab_addr_lookup(const char *, uintptr_t *);
    50 extern void symtab_print_search(const char *);
    51 extern int symtab_compl(char *, size_t);
     47extern int symtab_name_lookup(unative_t addr, char **name);
     48extern char *symtab_fmt_name_lookup(unative_t addr);
     49extern int symtab_addr_lookup(const char *name, uintptr_t *addr);
     50extern void symtab_print_search(const char *name);
     51extern int symtab_compl(char *input, size_t size);
    5252
    5353#ifdef CONFIG_SYMTAB
  • kernel/generic/src/debug/symtab.c

    r439ba77 r9dcadb0  
    4646/** Get name of a symbol that seems most likely to correspond to address.
    4747 *
    48  * @param addr          Address.
    49  * @param name          Place to store pointer to the symbol name.
    50  * @param offset        Place to store offset from the symbol address.
     48 * @param addr Address.
     49 * @param name Place to store pointer to the symbol name.
    5150 *
    5251 * @return Zero on success or negative error code, ENOENT if not found,
     
    5453 *
    5554 */
    56 int symtab_name_lookup(uintptr_t addr, char **name, uintptr_t *offset)
     55int symtab_name_lookup(unative_t addr, char **name)
    5756{
    5857#ifdef CONFIG_SYMTAB
     
    6665        if (addr >= uint64_t_le2host(symbol_table[i - 1].address_le)) {
    6766                *name = symbol_table[i - 1].symbol_name;
    68                 if (offset)
    69                         *offset = addr -
    70                             uint64_t_le2host(symbol_table[i - 1].address_le);
    7167                return EOK;
    7268        }
     
    9288 *
    9389 */
    94 char *symtab_fmt_name_lookup(uintptr_t addr)
     90char *symtab_fmt_name_lookup(unative_t addr)
    9591{
    9692        char *name;
    97         int rc = symtab_name_lookup(addr, &name, NULL);
     93        int rc = symtab_name_lookup(addr, &name);
    9894       
    9995        switch (rc) {
  • uspace/Makefile

    r439ba77 r9dcadb0  
    3838        app/init \
    3939        app/klog \
    40         app/mkfat \
    4140        app/redir \
    4241        app/tester \
  • uspace/app/bdsh/Makefile.build

    r439ba77 r9dcadb0  
    4242        cmds/modules/help/help.c \
    4343        cmds/modules/mkdir/mkdir.c \
    44         cmds/modules/mkfile/mkfile.c \
    4544        cmds/modules/rm/rm.c \
    4645        cmds/modules/bdd/bdd.c \
  • uspace/app/bdsh/cmds/modules/modules.h

    r439ba77 r9dcadb0  
    2020#include "help/entry.h"
    2121#include "mkdir/entry.h"
    22 #include "mkfile/entry.h"
    2322#include "rm/entry.h"
    2423#include "bdd/entry.h"
     
    4039#include "help/help_def.h"
    4140#include "mkdir/mkdir_def.h"
    42 #include "mkfile/mkfile_def.h"
    4341#include "rm/rm_def.h"
    4442#include "bdd/bdd_def.h"
  • uspace/app/edit/edit.c

    r439ba77 r9dcadb0  
    9898static bool done;
    9999static pane_t pane;
    100 static bool cursor_visible;
    101100
    102101static int scr_rows, scr_columns;
     
    109108/** Maximum filename length that can be entered. */
    110109#define INFNAME_MAX_LEN 128
    111 
    112 static void cursor_show(void);
    113 static void cursor_hide(void);
    114 static void cursor_setvis(bool visible);
    115110
    116111static void key_handle_unmod(console_event_t const *ev);
     
    204199
    205200        /* Initial display */
    206         cursor_visible = true;
    207 
    208         cursor_hide();
    209201        console_clear(con);
    210202        pane_text_display();
     
    213205                status_display("File not found. Starting empty file.");
    214206        pane_caret_display();
    215         cursor_show();
     207
    216208
    217209        done = false;
     
    238230                /* Redraw as necessary. */
    239231
    240                 cursor_hide();
    241 
    242232                if (pane.rflags & REDRAW_TEXT)
    243233                        pane_text_display();
     
    248238                if (pane.rflags & REDRAW_CARET)
    249239                        pane_caret_display();
    250 
    251                 cursor_show();
    252240        }
    253241
     
    255243
    256244        return 0;
    257 }
    258 
    259 static void cursor_show(void)
    260 {
    261         cursor_setvis(true);
    262 }
    263 
    264 static void cursor_hide(void)
    265 {
    266         cursor_setvis(false);
    267 }
    268 
    269 static void cursor_setvis(bool visible)
    270 {
    271         if (cursor_visible != visible) {
    272                 console_cursor_visibility(con, visible);
    273                 cursor_visible = visible;
    274         }
    275245}
    276246
  • uspace/lib/libblock/libblock.c

    r439ba77 r9dcadb0  
    8787static int write_blocks(devcon_t *devcon, bn_t ba, size_t cnt);
    8888static int get_block_size(int dev_phone, size_t *bsize);
    89 static int get_num_blocks(int dev_phone, bn_t *nblocks);
    9089
    9190static devcon_t *devcon_search(dev_handle_t dev_handle)
     
    715714
    716715        memcpy(devcon->comm_area, data, devcon->pblock_size * cnt);
    717         rc = write_blocks(devcon, ba, cnt);
     716        rc = read_blocks(devcon, ba, cnt);
    718717
    719718        fibril_mutex_unlock(&devcon->comm_area_lock);
     
    737736       
    738737        return get_block_size(devcon->dev_phone, bsize);
    739 }
    740 
    741 /** Get number of blocks on device.
    742  *
    743  * @param dev_handle    Device handle of the block device.
    744  * @param nblocks       Output number of blocks.
    745  *
    746  * @return              EOK on success or negative error code on failure.
    747  */
    748 int block_get_nblocks(dev_handle_t dev_handle, bn_t *nblocks)
    749 {
    750         devcon_t *devcon;
    751 
    752         devcon = devcon_search(dev_handle);
    753         assert(devcon);
    754        
    755         return get_num_blocks(devcon->dev_phone, nblocks);
    756738}
    757739
     
    807789}
    808790
    809 /** Get total number of blocks on block device. */
    810 static int get_num_blocks(int dev_phone, bn_t *nblocks)
    811 {
    812         ipcarg_t nb_l, nb_h;
    813         int rc;
    814 
    815         rc = async_req_0_2(dev_phone, BD_GET_NUM_BLOCKS, &nb_l, &nb_h);
    816         if (rc == EOK) {
    817                 *nblocks = (bn_t) MERGE_LOUP32(nb_l, nb_h);
    818         }
    819 
    820         return rc;
    821 }
    822 
    823791/** @}
    824792 */
  • uspace/lib/libblock/libblock.h

    r439ba77 r9dcadb0  
    6060#define BLOCK_FLAGS_NOREAD      1
    6161
     62typedef uint64_t bn_t;  /**< Block number type. */
     63
    6264typedef struct block {
    6365        /** Mutex protecting the reference count. */
     
    108110
    109111extern int block_get_bsize(dev_handle_t, size_t *);
    110 extern int block_get_nblocks(dev_handle_t, bn_t *);
    111112extern int block_read_direct(dev_handle_t, bn_t, size_t, void *);
    112113extern int block_write_direct(dev_handle_t, bn_t, size_t, const void *);
  • uspace/lib/libc/arch/mips32eb/Makefile.inc

    r439ba77 r9dcadb0  
    3535ARCH_SOURCES += arch/$(UARCH)/src/syscall.c \
    3636        arch/$(UARCH)/src/fibril.S \
    37         arch/$(UARCH)/src/tls.c \
    38         arch/$(UARCH)/src/stacktrace.S
     37        arch/$(UARCH)/src/tls.c
    3938
    4039GCC_CFLAGS += -mips3
  • uspace/lib/libc/generic/io/io.c

    r439ba77 r9dcadb0  
    554554}
    555555
    556 int ftell(FILE *stream)
    557 {
    558         off_t rc = lseek(stream->fd, 0, SEEK_CUR);
    559         if (rc == (off_t) (-1)) {
    560                 /* errno has been set by lseek. */
    561                 return -1;
    562         }
    563 
    564         return rc;
    565 }
    566 
    567556void rewind(FILE *stream)
    568557{
     
    595584}
    596585
    597 void clearerr(FILE *stream)
    598 {
    599         stream->eof = false;
    600         stream->error = false;
    601 }
    602 
    603586int fphone(FILE *stream)
    604587{
  • uspace/lib/libc/generic/stacktrace.c

    r439ba77 r9dcadb0  
    3939void stack_trace_fp_pc(uintptr_t fp, uintptr_t pc)
    4040{
     41        printf("Printing stack trace:\n");
     42        printf("=====================\n");
    4143        while (frame_pointer_validate(fp)) {
    4244                printf("%p: %p()\n", fp, pc);
     
    4446                fp = frame_pointer_prev(fp);
    4547        }
     48        printf("=====================\n");
    4649}
    4750
  • uspace/lib/libc/include/assert.h

    r439ba77 r9dcadb0  
    5151
    5252#ifndef NDEBUG
    53 #       define assert(expr) \
    54                 do { \
    55                         if (!(expr)) { \
    56                                 printf("Assertion failed (%s) at file '%s', " \
    57                                     "line %d.\n", #expr, __FILE__, __LINE__); \
    58                                 abort(); \
    59                         } \
    60                 } while (0)
     53#       define assert(expr) if (!(expr)) { printf("Assertion failed (%s) at file '%s', line %d.\n", #expr, __FILE__, __LINE__); abort();}
    6154#else
    6255#       define assert(expr)
  • uspace/lib/libc/include/ipc/bd.h

    r439ba77 r9dcadb0  
    4040typedef enum {
    4141        BD_GET_BLOCK_SIZE = IPC_FIRST_USER_METHOD,
    42         BD_GET_NUM_BLOCKS,
    4342        BD_READ_BLOCKS,
    4443        BD_WRITE_BLOCKS
  • uspace/lib/libc/include/sys/types.h

    r439ba77 r9dcadb0  
    4040typedef long off_t;
    4141typedef int mode_t;
    42 typedef uint64_t bn_t;  /**< Block number type. */
    4342
    4443typedef int32_t wchar_t;
  • uspace/srv/bd/ata_bd/ata_bd.c

    r439ba77 r9dcadb0  
    296296                        ipc_answer_1(callid, EOK, block_size);
    297297                        continue;
    298                 case BD_GET_NUM_BLOCKS:
    299                         ipc_answer_2(callid, EOK, LOWER32(disk[disk_id].blocks),
    300                             UPPER32(disk[disk_id].blocks));
    301                         continue;
    302298                default:
    303299                        retval = EINVAL;
  • uspace/srv/bd/file_bd/file_bd.c

    r439ba77 r9dcadb0  
    5656
    5757static const size_t block_size = 512;
    58 static bn_t num_blocks;
    5958static FILE *img;
    6059
     
    10099{
    101100        int rc;
    102         long img_size;
    103101
    104102        rc = devmap_driver_register(NAME, file_bd_connection);
     
    111109        if (img == NULL)
    112110                return EINVAL;
    113 
    114         if (fseek(img, 0, SEEK_END) != 0) {
    115                 fclose(img);
    116                 return EIO;
    117         }
    118 
    119         img_size = ftell(img);
    120         if (img_size < 0) {
    121                 fclose(img);
    122                 return EIO;
    123         }
    124 
    125         num_blocks = img_size / block_size;
    126111
    127112        fibril_mutex_initialize(&dev_lock);
     
    189174                        ipc_answer_1(callid, EOK, block_size);
    190175                        continue;
    191                 case BD_GET_NUM_BLOCKS:
    192                         ipc_answer_2(callid, EOK, LOWER32(num_blocks),
    193                             UPPER32(num_blocks));
    194                         continue;
    195176                default:
    196177                        retval = EINVAL;
     
    205186{
    206187        size_t n_rd;
    207         int rc;
    208188
    209189        fibril_mutex_lock(&dev_lock);
    210190
    211         clearerr(img);
    212         rc = fseek(img, ba * block_size, SEEK_SET);
    213         if (rc < 0) {
    214                 fibril_mutex_unlock(&dev_lock);
    215                 return EIO;
    216         }
    217 
     191        fseek(img, ba * block_size, SEEK_SET);
    218192        n_rd = fread(buf, block_size, cnt, img);
    219193
     
    235209{
    236210        size_t n_wr;
    237         int rc;
    238211
    239212        fibril_mutex_lock(&dev_lock);
    240213
    241         clearerr(img);
    242         rc = fseek(img, ba * block_size, SEEK_SET);
    243         if (rc < 0) {
    244                 fibril_mutex_unlock(&dev_lock);
    245                 return EIO;
    246         }
    247 
    248         n_wr = fwrite(buf, block_size, cnt, img);
     214        fseek(img, ba * block_size, SEEK_SET);
     215        n_wr = fread(buf, block_size, cnt, img);
    249216
    250217        if (ferror(img) || n_wr < cnt) {
     
    253220        }
    254221
    255         if (fflush(img) != 0) {
    256                 fibril_mutex_unlock(&dev_lock);
    257                 return EIO;
    258         }
    259 
    260222        fibril_mutex_unlock(&dev_lock);
    261223
  • uspace/srv/bd/gxe_bd/gxe_bd.c

    r439ba77 r9dcadb0  
    234234                        ipc_answer_1(callid, EOK, block_size);
    235235                        continue;
    236                 case BD_GET_NUM_BLOCKS:
    237                         retval = ENOTSUP;
    238                         break;
    239236                default:
    240237                        retval = EINVAL;
  • uspace/srv/bd/part/mbr_part/mbr_part.c

    r439ba77 r9dcadb0  
    463463                        ipc_answer_1(callid, EOK, block_size);
    464464                        continue;
    465                 case BD_GET_NUM_BLOCKS:
    466                         ipc_answer_2(callid, EOK, LOWER32(part->length),
    467                             UPPER32(part->length));
    468                         continue;
     465
    469466                default:
    470467                        retval = EINVAL;
  • uspace/srv/bd/rd/rd.c

    r439ba77 r9dcadb0  
    153153                        ipc_answer_1(callid, EOK, block_size);
    154154                        continue;
    155                 case BD_GET_NUM_BLOCKS:
    156                         ipc_answer_2(callid, EOK, LOWER32(rd_size / block_size),
    157                             UPPER32(rd_size / block_size));
    158                         continue;
    159155                default:
    160156                        /*
  • uspace/srv/vfs/vfs_ops.c

    r439ba77 r9dcadb0  
    900900                }
    901901                newpos = size + off;
    902                 file->pos = newpos;
    903902                fibril_mutex_unlock(&file->lock);
    904903                ipc_answer_1(rid, EOK, newpos);
Note: See TracChangeset for help on using the changeset viewer.