- Timestamp:
- 2011-05-15T14:44:13Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 8d308b9
- Parents:
- 010be476 (diff), e0f52bf (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)links above to see all the changes relative to each parent. - Location:
- kernel
- Files:
-
- 14 edited
-
Makefile (modified) (2 diffs)
-
arch/amd64/src/interrupt.c (modified) (1 diff)
-
arch/arm32/src/exception.c (modified) (1 diff)
-
arch/ia32/Makefile.inc (modified) (1 diff)
-
arch/ia32/include/barrier.h (modified) (2 diffs)
-
arch/ia32/src/interrupt.c (modified) (1 diff)
-
arch/mips32/src/exception.c (modified) (2 diffs)
-
arch/mips32/src/mm/frame.c (modified) (1 diff)
-
arch/ppc32/src/interrupt.c (modified) (1 diff)
-
generic/include/macros.h (modified) (1 diff)
-
generic/include/str.h (modified) (1 diff)
-
generic/src/lib/str.c (modified) (2 diffs)
-
generic/src/main/main.c (modified) (1 diff)
-
generic/src/mm/frame.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
kernel/Makefile
r010be476 rd61c3a7 94 94 -fexec-charset=UTF-8 -fwide-exec-charset=UTF-32$(ENDIANESS) \ 95 95 -finput-charset=UTF-8 -ffreestanding -fno-builtin -nostdlib -nostdinc \ 96 - Wall -Wextra -Wno-unused-parameter -Wmissing-prototypes \96 -std=gnu99 -Wall -Wextra -Wno-unused-parameter -Wmissing-prototypes \ 97 97 -Werror-implicit-function-declaration -Wwrite-strings \ 98 98 -pipe … … 134 134 # 135 135 AFLAGS = 136 LFLAGS = - N-T $(LINK) -M136 LFLAGS = -n -T $(LINK) -M 137 137 138 138 # -
kernel/arch/amd64/src/interrupt.c
r010be476 rd61c3a7 66 66 void istate_decode(istate_t *istate) 67 67 { 68 printf("cs =%#0" PRIx64 "\trip=%p\t" 69 "rfl=%#0" PRIx64 "\terr=%#0" PRIx64 "\n", 70 istate->cs, (void *) istate->rip, 71 istate->rflags, istate->error_word); 68 printf("cs =%0#18" PRIx64 "\trip=%0#18" PRIx64 "\t" 69 "rfl=%0#18" PRIx64 "\terr=%0#18" PRIx64 "\n", 70 istate->cs, istate->rip, istate->rflags, istate->error_word); 72 71 73 72 if (istate_from_uspace(istate)) 74 printf("ss =% #0" PRIx64 "\n", istate->ss);75 76 printf("rax=% #0" PRIx64 "\trbx=%#0" PRIx64 "\t"77 "rcx=% #0" PRIx64 "\trdx=%#0" PRIx64 "\n",73 printf("ss =%0#18" PRIx64 "\n", istate->ss); 74 75 printf("rax=%0#18" PRIx64 "\trbx=%0#18" PRIx64 "\t" 76 "rcx=%0#18" PRIx64 "\trdx=%0#18" PRIx64 "\n", 78 77 istate->rax, istate->rbx, istate->rcx, istate->rdx); 79 78 80 printf("rsi=% p\trdi=%p\trbp=%p\trsp=%p\n",81 (void *) istate->rsi, (void *) istate->rdi,82 (void *)istate->rbp,83 istate_from_uspace(istate) ? ((void *) istate->rsp):84 &istate->rsp);85 86 printf("r8 =% #0" PRIx64 "\tr9 =%#0" PRIx64 "\t"87 "r10=% #0" PRIx64 "\tr11=%#0" PRIx64 "\n",79 printf("rsi=%0#18" PRIx64 "\trdi=%0#18" PRIx64 "\t" 80 "rbp=%0#18" PRIx64 "\trsp=%0#18" PRIx64 "\n", 81 istate->rsi, istate->rdi, istate->rbp, 82 istate_from_uspace(istate) ? istate->rsp : 83 (uintptr_t) &istate->rsp); 84 85 printf("r8 =%0#18" PRIx64 "\tr9 =%0#18" PRIx64 "\t" 86 "r10=%0#18" PRIx64 "\tr11=%0#18" PRIx64 "\n", 88 87 istate->r8, istate->r9, istate->r10, istate->r11); 89 88 90 printf("r12=% #0" PRIx64 "\tr13=%#0" PRIx64 "\t"91 "r14=% #0" PRIx64 "\tr15=%#0" PRIx64 "\n",89 printf("r12=%0#18" PRIx64 "\tr13=%0#18" PRIx64 "\t" 90 "r14=%0#18" PRIx64 "\tr15=%0#18" PRIx64 "\n", 92 91 istate->r12, istate->r13, istate->r14, istate->r15); 93 92 } -
kernel/arch/arm32/src/exception.c
r010be476 rd61c3a7 174 174 void istate_decode(istate_t *istate) 175 175 { 176 printf("r0 =% #0" PRIx32 "\tr1 =%#0" PRIx32 "\t"177 "r2 =% #0" PRIx32 "\tr3 =%#0" PRIx32 "\n",176 printf("r0 =%0#10" PRIx32 "\tr1 =%0#10" PRIx32 "\t" 177 "r2 =%0#10" PRIx32 "\tr3 =%0#10" PRIx32 "\n", 178 178 istate->r0, istate->r1, istate->r2, istate->r3); 179 printf("r4 =% #" PRIx32 "\tr5 =%#0" PRIx32 "\t"180 "r6 =% #0" PRIx32 "\tr7 =%#0" PRIx32 "\n",179 printf("r4 =%0#10" PRIx32 "\tr5 =%0#10" PRIx32 "\t" 180 "r6 =%0#10" PRIx32 "\tr7 =%0#10" PRIx32 "\n", 181 181 istate->r4, istate->r5, istate->r6, istate->r7); 182 printf("r8 =%#0" PRIx32 "\tr9 =%#0" PRIx32 "\t" 183 "r10=%#0" PRIx32 "\tfp =%p\n", 184 istate->r8, istate->r9, istate->r10, 185 (void *) istate->fp); 186 printf("r12=%#0" PRIx32 "\tsp =%p\tlr =%p\tspsr=%p\n", 187 istate->r12, (void *) istate->sp, 188 (void *) istate->lr, (void *) istate->spsr); 182 printf("r8 =%0#10" PRIx32 "\tr9 =%0#10" PRIx32 "\t" 183 "r10=%0#10" PRIx32 "\tfp =%0#10" PRIx32 "\n", 184 istate->r8, istate->r9, istate->r10, istate->fp); 185 printf("r12=%0#10" PRIx32 "\tsp =%0#10" PRIx32 "\t" 186 "lr =%0#10" PRIx32 "\tspsr=%0#10" PRIx32 "\n", 187 istate->r12, istate->sp, istate->lr, istate->spsr); 189 188 } 190 189 -
kernel/arch/ia32/Makefile.inc
r010be476 rd61c3a7 35 35 ENDIANESS = LE 36 36 37 CMN1 = -m32 37 CMN1 = -m32 -fno-omit-frame-pointer 38 38 GCC_CFLAGS += $(CMN1) 39 39 ICC_CFLAGS += $(CMN1) -
kernel/arch/ia32/include/barrier.h
r010be476 rd61c3a7 54 54 NO_TRACE static inline void cpuid_serialization(void) 55 55 { 56 #ifndef __IN_SHARED_LIBC__ 56 57 asm volatile ( 57 58 "xorl %%eax, %%eax\n" … … 59 60 ::: "eax", "ebx", "ecx", "edx", "memory" 60 61 ); 62 #else 63 /* Must not clobber PIC register ebx */ 64 asm volatile ( 65 "movl %%ebx, %%esi\n" 66 "xorl %%eax, %%eax\n" 67 "cpuid\n" 68 "movl %%esi, %%ebx\n" 69 ::: "eax", "ecx", "edx", "esi", "memory" 70 ); 71 #endif 61 72 } 62 73 -
kernel/arch/ia32/src/interrupt.c
r010be476 rd61c3a7 66 66 void istate_decode(istate_t *istate) 67 67 { 68 printf("cs =%#0" PRIx32 "\teip=%p\t" 69 "efl=%#0" PRIx32 "\terr=%#0" PRIx32 "\n", 70 istate->cs, (void *) istate->eip, 71 istate->eflags, istate->error_word); 72 73 printf("ds =%#0" PRIx32 "\tes =%#0" PRIx32 "\t" 74 "fs =%#0" PRIx32 "\tgs =%#0" PRIx32 "\n", 68 printf("cs =%0#10" PRIx32 "\teip=%0#10" PRIx32 "\t" 69 "efl=%0#10" PRIx32 "\terr=%0#10" PRIx32 "\n", 70 istate->cs, istate->eip, istate->eflags, istate->error_word); 71 72 printf("ds =%0#10" PRIx32 "\tes =%0#10" PRIx32 "\t" 73 "fs =%0#10" PRIx32 "\tgs =%0#10" PRIx32 "\n", 75 74 istate->ds, istate->es, istate->fs, istate->gs); 76 75 77 76 if (istate_from_uspace(istate)) 78 printf("ss =% #0" PRIx32 "\n", istate->ss);79 80 printf("eax=% #0" PRIx32 "\tebx=%#0" PRIx32 "\t"81 "ecx=% #0" PRIx32 "\tedx=%#0" PRIx32 "\n",77 printf("ss =%0#10" PRIx32 "\n", istate->ss); 78 79 printf("eax=%0#10" PRIx32 "\tebx=%0#10" PRIx32 "\t" 80 "ecx=%0#10" PRIx32 "\tedx=%0#10" PRIx32 "\n", 82 81 istate->eax, istate->ebx, istate->ecx, istate->edx); 83 82 84 printf("esi=% p\tedi=%p\tebp=%p\tesp=%p\n",85 (void *) istate->esi, (void *) istate->edi,86 (void *)istate->ebp,87 istate_from_uspace(istate) ? ((void *) istate->esp):88 &istate->esp);83 printf("esi=%0#10" PRIx32 "\tedi=%0#10" PRIx32 "\t" 84 "ebp=%0#10" PRIx32 "\tesp=%0#10" PRIx32 "\n", 85 istate->esi, istate->edi, istate->ebp, 86 istate_from_uspace(istate) ? istate->esp : 87 (uintptr_t) &istate->esp); 89 88 } 90 89 -
kernel/arch/mips32/src/exception.c
r010be476 rd61c3a7 74 74 void istate_decode(istate_t *istate) 75 75 { 76 printf("epc=% p\tsta=%#010" PRIx32 "\t"76 printf("epc=%#010" PRIx32 "\tsta=%#010" PRIx32 "\t" 77 77 "lo =%#010" PRIx32 "\thi =%#010" PRIx32 "\n", 78 (void *) istate->epc, istate->status, 79 istate->lo, istate->hi); 78 istate->epc, istate->status, istate->lo, istate->hi); 80 79 81 80 printf("a0 =%#010" PRIx32 "\ta1 =%#010" PRIx32 "\t" … … 107 106 istate->s8, istate->at, istate->kt0, istate->kt1); 108 107 109 printf("sp =% p\tra =%p\tgp =%p\n",110 (void *) istate->sp, (void *) istate->ra,111 (void *)istate->gp);108 printf("sp =%#010" PRIx32 "\tra =%#010" PRIx32 "\t" 109 "gp =%#010" PRIx32 "\n", 110 istate->sp, istate->ra, istate->gp); 112 111 } 113 112 -
kernel/arch/mips32/src/mm/frame.c
r010be476 rd61c3a7 88 88 /* gxemul devices */ 89 89 if (overlaps(frame << ZERO_PAGE_WIDTH, ZERO_PAGE_SIZE, 90 0x10000000, M B2SIZE(256)))90 0x10000000, MiB2SIZE(256))) 91 91 return false; 92 92 #endif -
kernel/arch/ppc32/src/interrupt.c
r010be476 rd61c3a7 54 54 void istate_decode(istate_t *istate) 55 55 { 56 printf("r0 =% #0" PRIx32 "\tr1 =%p\tr2 =%#0" PRIx32 "\n",57 istate->r0, (void *)istate->sp, istate->r2);56 printf("r0 =%0#10" PRIx32 "\tr1 =%0#10" PRIx32 "\t" 57 "r2 =%0#10" PRIx32 "\n", istate->r0, istate->sp, istate->r2); 58 58 59 printf("r3 =% #0" PRIx32 "\tr4 =%#0" PRIx32 "\tr5 =%#0" PRIx32 "\n",60 istate->r3, istate->r4, istate->r5);59 printf("r3 =%0#10" PRIx32 "\tr4 =%0#10" PRIx32 "\t" 60 "r5 =%0#10" PRIx32 "\n", istate->r3, istate->r4, istate->r5); 61 61 62 printf("r6 =% #0" PRIx32 "\tr7 =%#0" PRIx32 "\tr8 =%#0" PRIx32 "\n",63 istate->r6, istate->r7, istate->r8);62 printf("r6 =%0#10" PRIx32 "\tr7 =%0#10" PRIx32 "\t" 63 "r8 =%0#10" PRIx32 "\n", istate->r6, istate->r7, istate->r8); 64 64 65 printf("r9 =% #0" PRIx32 "\tr10=%#0" PRIx32 "\tr11=%#0" PRIx32 "\n",66 istate->r9, istate->r10, istate->r11);65 printf("r9 =%0#10" PRIx32 "\tr10=%0#10" PRIx32 "\t" 66 "r11=%0#10" PRIx32 "\n", istate->r9, istate->r10, istate->r11); 67 67 68 printf("r12=% #0" PRIx32 "\tr13=%#0" PRIx32 "\tr14=%#0" PRIx32 "\n",69 istate->r12, istate->r13, istate->r14);68 printf("r12=%0#10" PRIx32 "\tr13=%0#10" PRIx32 "\t" 69 "r14=%0#10" PRIx32 "\n", istate->r12, istate->r13, istate->r14); 70 70 71 printf("r15=% #0" PRIx32 "\tr16=%#0" PRIx32 "\tr17=%#0" PRIx32 "\n",72 istate->r15, istate->r16, istate->r17);71 printf("r15=%0#10" PRIx32 "\tr16=%0#10" PRIx32 "\t" 72 "r17=%0#10" PRIx32 "\n", istate->r15, istate->r16, istate->r17); 73 73 74 printf("r18=% #0" PRIx32 "\tr19=%#0" PRIx32 "\tr20=%#0" PRIx32 "\n",75 istate->r18, istate->r19, istate->r20);74 printf("r18=%0#10" PRIx32 "\tr19=%0#10" PRIx32 "\t" 75 "r20=%0#10" PRIx32 "\n", istate->r18, istate->r19, istate->r20); 76 76 77 printf("r21=% #0" PRIx32 "\tr22=%#0" PRIx32 "\tr23=%#0" PRIx32 "\n",78 istate->r21, istate->r22, istate->r23);77 printf("r21=%0#10" PRIx32 "\tr22=%0#10" PRIx32 "\t" 78 "r23=%0#10" PRIx32 "\n", istate->r21, istate->r22, istate->r23); 79 79 80 printf("r24=% #0" PRIx32 "\tr25=%#0" PRIx32 "\tr26=%#0" PRIx32 "\n",81 istate->r24, istate->r25, istate->r26);80 printf("r24=%0#10" PRIx32 "\tr25=%0#10" PRIx32 "\t" 81 "r26=%0#10" PRIx32 "\n", istate->r24, istate->r25, istate->r26); 82 82 83 printf("r27=% #0" PRIx32 "\tr28=%#0" PRIx32 "\tr29=%#0" PRIx32 "\n",84 istate->r27, istate->r28, istate->r29);83 printf("r27=%0#10" PRIx32 "\tr28=%0#10" PRIx32 "\t" 84 "r29=%0#10" PRIx32 "\n", istate->r27, istate->r28, istate->r29); 85 85 86 printf("r30=% #0" PRIx32 "\tr31=%#0" PRIx32 "\n",86 printf("r30=%0#10" PRIx32 "\tr31=%0#10" PRIx32 "\n", 87 87 istate->r30, istate->r31); 88 88 89 printf("cr =% #0" PRIx32 "\tpc =%p\tlr =%p\n",90 istate->cr, (void *) istate->pc, (void *)istate->lr);89 printf("cr =%0#10" PRIx32 "\tpc =%0#10" PRIx32 "\t" 90 "lr =%0#10" PRIx32 "\n", istate->cr, istate->pc, istate->lr); 91 91 92 printf("ctr=% #0" PRIx32 "\txer=%#0" PRIx32 "\tdar=%#0" PRIx32 "\n",93 istate->ctr, istate->xer, istate->dar);92 printf("ctr=%0#10" PRIx32 "\txer=%0#10" PRIx32 "\t" 93 "dar=%0#10" PRIx32 "\n", istate->ctr, istate->xer, istate->dar); 94 94 95 printf("srr1=% p\n", (void *)istate->srr1);95 printf("srr1=%0#10" PRIx32 "\n", istate->srr1); 96 96 } 97 97 -
kernel/generic/include/macros.h
r010be476 rd61c3a7 95 95 overlaps(KA2PA((x)), (szx), KA2PA((y)), (szy)) 96 96 97 #define SIZE2KB(size) ((size) >> 10) 98 #define SIZE2MB(size) ((size) >> 20) 99 100 #define KB2SIZE(kb) ((kb) << 10) 101 #define MB2SIZE(mb) ((mb) << 20) 97 #define KiB2SIZE(kb) ((kb) << 10) 98 #define MiB2SIZE(mb) ((mb) << 20) 102 99 103 100 #define STRING(arg) STRING_ARG(arg) -
kernel/generic/include/str.h
r010be476 rd61c3a7 99 99 extern int str_uint64(const char *, char **, unsigned int, bool, uint64_t *); 100 100 101 extern void order_suffix(const uint64_t val, uint64_t *rv, char *suffix); 101 extern void order_suffix(const uint64_t, uint64_t *, char *); 102 extern void bin_order_suffix(const uint64_t, uint64_t *, const char **, bool); 102 103 103 104 #endif -
kernel/generic/src/lib/str.c
r010be476 rd61c3a7 922 922 void order_suffix(const uint64_t val, uint64_t *rv, char *suffix) 923 923 { 924 if (val > 10000000000000000000ULL) {925 *rv = val / 1000000000000000000ULL;924 if (val > UINT64_C(10000000000000000000)) { 925 *rv = val / UINT64_C(1000000000000000000); 926 926 *suffix = 'Z'; 927 } else if (val > 1000000000000000000ULL) {928 *rv = val / 1000000000000000ULL;927 } else if (val > UINT64_C(1000000000000000000)) { 928 *rv = val / UINT64_C(1000000000000000); 929 929 *suffix = 'E'; 930 } else if (val > 1000000000000000ULL) {931 *rv = val / 1000000000000ULL;930 } else if (val > UINT64_C(1000000000000000)) { 931 *rv = val / UINT64_C(1000000000000); 932 932 *suffix = 'T'; 933 } else if (val > 1000000000000ULL) {934 *rv = val / 1000000000ULL;933 } else if (val > UINT64_C(1000000000000)) { 934 *rv = val / UINT64_C(1000000000); 935 935 *suffix = 'G'; 936 } else if (val > 1000000000ULL) {937 *rv = val / 1000000ULL;936 } else if (val > UINT64_C(1000000000)) { 937 *rv = val / UINT64_C(1000000); 938 938 *suffix = 'M'; 939 } else if (val > 1000000ULL) {940 *rv = val / 1000ULL;939 } else if (val > UINT64_C(1000000)) { 940 *rv = val / UINT64_C(1000); 941 941 *suffix = 'k'; 942 942 } else { … … 946 946 } 947 947 948 void bin_order_suffix(const uint64_t val, uint64_t *rv, const char **suffix, 949 bool fixed) 950 { 951 if (val > UINT64_C(1152921504606846976)) { 952 *rv = val / UINT64_C(1125899906842624); 953 *suffix = "EiB"; 954 } else if (val > UINT64_C(1125899906842624)) { 955 *rv = val / UINT64_C(1099511627776); 956 *suffix = "TiB"; 957 } else if (val > UINT64_C(1099511627776)) { 958 *rv = val / UINT64_C(1073741824); 959 *suffix = "GiB"; 960 } else if (val > UINT64_C(1073741824)) { 961 *rv = val / UINT64_C(1048576); 962 *suffix = "MiB"; 963 } else if (val > UINT64_C(1048576)) { 964 *rv = val / UINT64_C(1024); 965 *suffix = "KiB"; 966 } else { 967 *rv = val; 968 if (fixed) 969 *suffix = "B "; 970 else 971 *suffix = "B"; 972 } 973 } 974 948 975 /** @} 949 976 */ -
kernel/generic/src/main/main.c
r010be476 rd61c3a7 223 223 slab_enable_cpucache(); 224 224 225 printf("Detected %u CPU(s), %" PRIu64 " MiB free memory\n", 226 config.cpu_count, SIZE2MB(zones_total_size())); 225 uint64_t size; 226 const char *size_suffix; 227 bin_order_suffix(zones_total_size(), &size, &size_suffix, false); 228 printf("Detected %u CPU(s), %" PRIu64 " %s free memory\n", 229 config.cpu_count, size, size_suffix); 227 230 228 231 cpu_init(); -
kernel/generic/src/mm/frame.c
r010be476 rd61c3a7 60 60 #include <macros.h> 61 61 #include <config.h> 62 #include <str.h> 62 63 63 64 zones_t zones; … … 1395 1396 bool available = zone_flags_available(flags); 1396 1397 1398 uint64_t size; 1399 const char *size_suffix; 1400 bin_order_suffix(FRAMES2SIZE(count), &size, &size_suffix, false); 1401 1397 1402 printf("Zone number: %zu\n", znum); 1398 1403 printf("Zone base address: %p\n", (void *) base); 1399 printf("Zone size: %zu frames (% zu KiB)\n", count,1400 SIZE2KB(FRAMES2SIZE(count)));1404 printf("Zone size: %zu frames (%" PRIu64 " %s)\n", count, 1405 size, size_suffix); 1401 1406 printf("Zone flags: %c%c%c\n", 1402 1407 available ? 'A' : ' ', … … 1405 1410 1406 1411 if (available) { 1407 printf("Allocated space: %zu frames (%zu KiB)\n", 1408 busy_count, SIZE2KB(FRAMES2SIZE(busy_count))); 1409 printf("Available space: %zu frames (%zu KiB)\n", 1410 free_count, SIZE2KB(FRAMES2SIZE(free_count))); 1412 bin_order_suffix(FRAMES2SIZE(busy_count), &size, &size_suffix, 1413 false); 1414 printf("Allocated space: %zu frames (%" PRIu64 " %s)\n", 1415 busy_count, size, size_suffix); 1416 bin_order_suffix(FRAMES2SIZE(free_count), &size, &size_suffix, 1417 false); 1418 printf("Available space: %zu frames (%" PRIu64 " %s)\n", 1419 free_count, size, size_suffix); 1411 1420 } 1412 1421 }
Note:
See TracChangeset
for help on using the changeset viewer.
