Changes in / [bcd4dd4:b0beb9b1] in mainline
- Files:
-
- 8 deleted
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/amd64/src/boot/multiboot.S
rbcd4dd4 rb0beb9b1 38 38 #include <arch/cpu.h> 39 39 40 // TODO: most of this file can be rewritten in C 41 42 // TODO: FB state should be checked dynamically from provided multiboot info. 43 // Currently we only enable EGA statically, which forces us to rebuild 44 // the image to get very early debug output. 45 40 46 #define START_STACK (BOOT_OFFSET - BOOT_STACK_SIZE) 41 47 … … 50 56 51 57 .macro pm_status msg 52 #if def CONFIG_EGA58 #if defined(CONFIG_EGA) && !defined(CONFIG_FB) 53 59 pushl %esi 54 60 movl \msg, %esi … … 67 73 multiboot_header: 68 74 .long MULTIBOOT_HEADER_MAGIC 75 #ifdef CONFIG_FB 69 76 .long MULTIBOOT_HEADER_FLAGS 70 77 .long -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS) /* checksum */ 78 #else 79 .long MULTIBOOT_HEADER_FLAGS_NOFB 80 .long -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS_NOFB) /* checksum */ 81 #endif 71 82 .long multiboot_header 72 83 .long unmapped_start … … 74 85 .long 0 75 86 .long multiboot_image_start 87 #ifdef CONFIG_FB 88 .long 0 89 .long CONFIG_BFB_WIDTH 90 .long CONFIG_BFB_HEIGHT 91 .long CONFIG_BFB_BPP 92 #endif 76 93 77 94 SYMBOL(multiboot_image_start) … … 158 175 sse2_supported: 159 176 160 #include "vesa_prot.inc"161 162 177 pm2_status $status_prot2 163 178 … … 568 583 569 584 ret 570 571 #include "vesa_real.inc"572 585 573 586 .section K_INI_PTLS, "aw", @progbits … … 708 721 status_prot: 709 722 .asciz "[prot] " 710 status_vesa_copy:711 .asciz "[vesa_copy] "712 723 status_multiboot_cmdline: 713 724 .asciz "[multiboot_cmdline] " 714 status_vesa_real:715 .asciz "[vesa_real] "716 725 status_prot2: 717 726 .asciz "[prot2] " -
kernel/arch/amd64/src/boot/multiboot2.S
rbcd4dd4 rb0beb9b1 34 34 #include <arch/cpu.h> 35 35 #include <genarch/multiboot/multiboot2.h> 36 37 #define START_STACK (BOOT_OFFSET - BOOT_STACK_SIZE)38 36 39 37 .section K_TEXT_START, "ax" … … 80 78 .word MULTIBOOT2_FLAGS_REQUIRED 81 79 .long tag_entry_address_end - tag_entry_address_start 82 .long multiboot 2_image_start80 .long multiboot_image_start 83 81 tag_entry_address_end: 84 82 … … 122 120 tag_terminator_end: 123 121 multiboot2_header_end: 124 125 SYMBOL(multiboot2_image_start)126 cli127 cld128 129 /* Initialize stack pointer */130 movl $START_STACK, %esp131 132 /*133 * Initialize Global Descriptor Table and134 * Interrupt Descriptor Table registers135 */136 lgdtl bootstrap_gdtr137 lidtl bootstrap_idtr138 139 /* Kernel data + stack */140 movw $GDT_SELECTOR(KDATA_DES), %cx141 movw %cx, %es142 movw %cx, %ds143 movw %cx, %ss144 145 /*146 * Simics seems to remove hidden part of GS on entering user mode147 * when _visible_ part of GS does not point to user-mode segment.148 */149 movw $GDT_SELECTOR(UDATA_DES), %cx150 movw %cx, %fs151 movw %cx, %gs152 153 jmpl $GDT_SELECTOR(KTEXT32_DES), $multiboot2_meeting_point154 multiboot2_meeting_point:155 156 /*157 * Protected 32-bit. We want to reuse the code-seg descriptor,158 * the Default operand size must not be 1 when entering long mode.159 */160 161 /* Save multiboot arguments */162 movl %eax, multiboot_eax163 movl %ebx, multiboot_ebx164 165 movl $(INTEL_CPUID_EXTENDED), %eax166 cpuid167 cmp $(INTEL_CPUID_EXTENDED), %eax168 ja extended_cpuid_supported169 170 jmp pm_error_halt171 172 extended_cpuid_supported:173 174 movl $(AMD_CPUID_EXTENDED), %eax175 cpuid176 bt $(AMD_EXT_LONG_MODE), %edx177 jc long_mode_supported178 179 jmp pm_error_halt180 181 long_mode_supported:182 183 bt $(AMD_EXT_NOEXECUTE), %edx184 jc noexecute_supported185 186 jmp pm_error_halt187 188 noexecute_supported:189 190 movl $(INTEL_CPUID_STANDARD), %eax191 cpuid192 bt $(INTEL_FXSAVE), %edx193 jc fx_supported194 195 jmp pm_error_halt196 197 fx_supported:198 199 bt $(INTEL_SSE2), %edx200 jc sse2_supported201 202 jmp pm_error_halt203 204 sse2_supported:205 206 /*207 * Enable 64-bit page translation entries - CR4.PAE = 1.208 * Paging is not enabled until after long mode is enabled.209 */210 211 movl %cr4, %eax212 orl $CR4_PAE, %eax213 movl %eax, %cr4214 215 /* Set up paging tables */216 leal ptl_0, %eax217 movl %eax, %cr3218 219 /* Enable long mode */220 movl $AMD_MSR_EFER, %ecx221 rdmsr /* read EFER */222 orl $AMD_LME, %eax /* set LME = 1 */223 wrmsr224 225 /* Enable paging to activate long mode (set CR0.PG = 1) */226 movl %cr0, %eax227 orl $CR0_PG, %eax228 movl %eax, %cr0229 230 /* At this point we are in compatibility mode */231 jmpl $GDT_SELECTOR(KTEXT_DES), $start64232 233 pm_error_halt:234 cli235 hlt1:236 hlt237 jmp hlt1238 239 .code64240 241 start64:242 243 /*244 * Long mode.245 */246 247 movq $(PA2KA(START_STACK)), %rsp248 249 /* Create the first stack frame */250 pushq $0251 movq %rsp, %rbp252 253 /* Call amd64_pre_main(multiboot_eax, multiboot_ebx) */254 movl multiboot_eax, %edi255 movl multiboot_ebx, %esi256 257 #ifdef MEMORY_MODEL_large258 movabsq $amd64_pre_main, %rax259 callq *%rax260 #else261 callq amd64_pre_main262 #endif263 264 /* Call main_bsp() */265 #ifdef MEMORY_MODEL_large266 movabsq $main_bsp, %rax267 callq *%rax268 #else269 callq main_bsp270 #endif271 272 /* Not reached */273 cli274 hlt0:275 hlt276 jmp hlt0 -
kernel/arch/ia32/src/boot/multiboot.S
rbcd4dd4 rb0beb9b1 38 38 #include <arch/cpu.h> 39 39 40 // TODO: most of this file can be rewritten in C 41 42 // TODO: FB state should be checked dynamically from provided multiboot info. 43 // Currently we only enable EGA statically, which forces us to rebuild 44 // the image to get very early debug output. 45 40 46 #define START_STACK (BOOT_OFFSET - BOOT_STACK_SIZE) 41 47 … … 44 50 .code32 45 51 46 .macro pm_error msg47 movl \msg, %esi48 jmp pm_error_halt49 .endm50 51 52 .macro pm_status msg 52 #if def CONFIG_EGA53 #if defined(CONFIG_EGA) && !defined(CONFIG_FB) 53 54 pushl %esi 54 55 movl \msg, %esi … … 66 67 multiboot_header: 67 68 .long MULTIBOOT_HEADER_MAGIC 69 #ifdef CONFIG_FB 68 70 .long MULTIBOOT_HEADER_FLAGS 69 71 .long -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS) /* checksum */ 72 #else 73 .long MULTIBOOT_HEADER_FLAGS_NOFB 74 .long -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS_NOFB) /* checksum */ 75 #endif 70 76 .long multiboot_header 71 77 .long unmapped_start … … 73 79 .long 0 74 80 .long multiboot_image_start 81 #ifdef CONFIG_FB 82 .long 0 83 .long CONFIG_BFB_WIDTH 84 .long CONFIG_BFB_HEIGHT 85 .long CONFIG_BFB_BPP 86 #endif 75 87 76 88 SYMBOL(multiboot_image_start) … … 104 116 105 117 pm_status $status_prot 106 107 #include "vesa_prot.inc"108 118 109 119 #ifndef PROCESSOR_i486 … … 356 366 ret 357 367 358 /** Print string to EGA display (in light red) and halt.359 *360 * Should be executed from 32 bit protected mode with paging361 * turned off. Stack is not required. This routine is used even362 * if CONFIG_EGA is not enabled. Since we are going to halt the363 * CPU anyway, it is always better to at least try to print364 * some hints.365 *366 * @param %esi NULL-terminated string to print.367 *368 */369 pm_error_halt:370 movl $0xb8000, %edi /* base of EGA text mode memory */371 xorl %eax, %eax372 373 /* Read bits 8 - 15 of the cursor address */374 movw $0x3d4, %dx375 movb $0xe, %al376 outb %al, %dx377 378 movw $0x3d5, %dx379 inb %dx, %al380 shl $8, %ax381 382 /* Read bits 0 - 7 of the cursor address */383 movw $0x3d4, %dx384 movb $0xf, %al385 outb %al, %dx386 387 movw $0x3d5, %dx388 inb %dx, %al389 390 /* Sanity check for the cursor on screen */391 cmp $2000, %ax392 jb err_cursor_ok393 394 movw $1998, %ax395 396 err_cursor_ok:397 398 movw %ax, %bx399 shl $1, %eax400 addl %eax, %edi401 402 err_ploop:403 lodsb404 405 cmp $0, %al406 je err_ploop_end407 408 movb $0x0c, %ah /* black background, light red foreground */409 stosw410 411 /* Sanity check for the cursor on the last line */412 inc %bx413 cmp $2000, %bx414 jb err_ploop415 416 /* Scroll the screen (24 rows) */417 movl %esi, %edx418 movl $0xb80a0, %esi419 movl $0xb8000, %edi420 movl $960, %ecx421 rep movsl422 423 /* Clear the 24th row */424 xorl %eax, %eax425 movl $40, %ecx426 rep stosl427 428 /* Go to row 24 */429 movl %edx, %esi430 movl $0xb8f00, %edi431 movw $1920, %bx432 433 jmp err_ploop434 err_ploop_end:435 436 /* Write bits 8 - 15 of the cursor address */437 movw $0x3d4, %dx438 movb $0xe, %al439 outb %al, %dx440 441 movw $0x3d5, %dx442 movb %bh, %al443 outb %al, %dx444 445 /* Write bits 0 - 7 of the cursor address */446 movw $0x3d4, %dx447 movb $0xf, %al448 outb %al, %dx449 450 movw $0x3d5, %dx451 movb %bl, %al452 outb %al, %dx453 454 cli455 hlt1:456 hlt457 jmp hlt1458 459 368 /** Print string to EGA display (in light green). 460 369 * … … 685 594 ret 686 595 687 #include "vesa_real.inc"688 689 596 .section K_DATA_START, "aw", @progbits 690 597 … … 720 627 status_non_pse: 721 628 .asciz "[non_pse] " 722 status_vesa_copy:723 .asciz "[vesa_copy] "724 629 status_multiboot_cmdline: 725 630 .asciz "[multiboot_cmdline] " 726 status_vesa_real:727 .asciz "[vesa_real] "728 631 status_prot2: 729 632 .asciz "[prot2] " -
kernel/arch/ia32/src/boot/multiboot2.S
rbcd4dd4 rb0beb9b1 32 32 #include <arch/cpuid.h> 33 33 #include <genarch/multiboot/multiboot2.h> 34 35 #define START_STACK (BOOT_OFFSET - BOOT_STACK_SIZE)36 34 37 35 .section K_TEXT_START, "ax" … … 78 76 .word MULTIBOOT2_FLAGS_REQUIRED 79 77 .long tag_entry_address_end - tag_entry_address_start 80 .long multiboot 2_image_start78 .long multiboot_image_start 81 79 tag_entry_address_end: 82 80 … … 120 118 tag_terminator_end: 121 119 multiboot2_header_end: 122 123 SYMBOL(multiboot2_image_start)124 cli125 cld126 127 /* Initialize stack pointer */128 movl $START_STACK, %esp129 130 /*131 * Initialize Global Descriptor Table and132 * Interrupt Descriptor Table registers133 */134 lgdtl bootstrap_gdtr135 lidtl bootstrap_idtr136 137 /* Kernel data + stack */138 movw $GDT_SELECTOR(KDATA_DES), %cx139 movw %cx, %es140 movw %cx, %fs141 movw %cx, %gs142 movw %cx, %ds143 movw %cx, %ss144 145 jmpl $GDT_SELECTOR(KTEXT_DES), $multiboot2_meeting_point146 multiboot2_meeting_point:147 148 /* Save multiboot arguments */149 movl %eax, multiboot_eax150 movl %ebx, multiboot_ebx151 152 #ifndef PROCESSOR_i486153 154 movl $(INTEL_CPUID_LEVEL), %eax155 cpuid156 cmp $0x0, %eax /* any function > 0? */157 jbe pse_unsupported158 159 movl $(INTEL_CPUID_STANDARD), %eax160 cpuid161 bt $(INTEL_PSE), %edx162 jnc pse_unsupported163 164 /* Map kernel and turn paging on */165 call map_kernel_pse166 jmp stack_init167 168 #endif /* PROCESSOR_i486 */169 170 pse_unsupported:171 172 /* Map kernel and turn paging on */173 call map_kernel_non_pse174 175 stack_init:176 177 /* Create the first stack frame */178 pushl $0179 movl %esp, %ebp180 181 /* Call ia32_pre_main(multiboot_eax, multiboot_ebx) */182 pushl multiboot_ebx183 pushl multiboot_eax184 call ia32_pre_main185 186 /* Call main_bsp() */187 call main_bsp188 189 /* Not reached */190 cli191 hlt0:192 hlt193 jmp hlt0 -
kernel/genarch/include/genarch/multiboot/multiboot.h
rbcd4dd4 rb0beb9b1 39 39 #include <genarch/multiboot/multiboot_info_struct.h> 40 40 41 #define MULTIBOOT_HEADER_MAGIC 0x1badb002 42 #define MULTIBOOT_HEADER_FLAGS 0x00010003 41 #define MULTIBOOT_HEADER_MAGIC 0x1badb002 42 #define MULTIBOOT_HEADER_FLAGS 0x00010007 43 #define MULTIBOOT_HEADER_FLAGS_NOFB 0x00010003 43 44 44 45 #define MULTIBOOT_LOADER_MAGIC 0x2badb002 45 46 46 #define MULTIBOOT_INFO_FLAGS_MEM 0x01 47 #define MULTIBOOT_INFO_FLAGS_BOOT 0x02 48 #define MULTIBOOT_INFO_FLAGS_CMDLINE 0x04 49 #define MULTIBOOT_INFO_FLAGS_MODS 0x08 50 #define MULTIBOOT_INFO_FLAGS_SYMS1 0x10 51 #define MULTIBOOT_INFO_FLAGS_SYMS2 0x20 52 #define MULTIBOOT_INFO_FLAGS_MMAP 0x40 47 #define MULTIBOOT_INFO_FLAGS_MEM 0x0001 48 #define MULTIBOOT_INFO_FLAGS_BOOT 0x0002 49 #define MULTIBOOT_INFO_FLAGS_CMDLINE 0x0004 50 #define MULTIBOOT_INFO_FLAGS_MODS 0x0008 51 #define MULTIBOOT_INFO_FLAGS_SYMS_AOUT 0x0010 52 #define MULTIBOOT_INFO_FLAGS_SYMS_ELF 0x0020 53 #define MULTIBOOT_INFO_FLAGS_MMAP 0x0040 54 #define MULTIBOOT_INFO_FLAGS_DRIVES 0x0080 55 #define MULTIBOOT_INFO_FLAGS_CONFIG_TABLE 0x0100 56 #define MULTIBOOT_INFO_FLAGS_BOOT_LOADER_NAME 0x0200 57 #define MULTIBOOT_INFO_FLAGS_APM 0x0400 58 #define MULTIBOOT_INFO_FLAGS_VBE 0x0800 59 #define MULTIBOOT_INFO_FLAGS_FB 0x1000 53 60 54 61 #ifndef __ASSEMBLER__ -
kernel/genarch/include/genarch/multiboot/multiboot_info_struct.h
rbcd4dd4 rb0beb9b1 30 30 #define KERN_MULTIBOOT_INFO_STRUCT_H_ 31 31 32 #define MULTIBOOT_INFO_OFFSET_FLAGS 0x00 33 #define MULTIBOOT_INFO_OFFSET_MEM_LOWER 0x04 34 #define MULTIBOOT_INFO_OFFSET_MEM_UPPER 0x08 35 #define MULTIBOOT_INFO_OFFSET_BOOT_DEVICE 0x0c 36 #define MULTIBOOT_INFO_OFFSET_CMD_LINE 0x10 37 #define MULTIBOOT_INFO_OFFSET_MODS_COUNT 0x14 38 #define MULTIBOOT_INFO_OFFSET_MODS_ADDR 0x18 39 #define MULTIBOOT_INFO_OFFSET_SYMS 0x1c 40 #define MULTIBOOT_INFO_OFFSET_MMAP_LENGTH 0x2c 41 #define MULTIBOOT_INFO_OFFSET_MMAP_ADDR 0x30 42 #define MULTIBOOT_INFO_SIZE 0x34 32 #define MULTIBOOT_INFO_OFFSET_FLAGS 0x00 33 #define MULTIBOOT_INFO_OFFSET_MEM_LOWER 0x04 34 #define MULTIBOOT_INFO_OFFSET_MEM_UPPER 0x08 35 #define MULTIBOOT_INFO_OFFSET_BOOT_DEVICE 0x0c 36 #define MULTIBOOT_INFO_OFFSET_CMD_LINE 0x10 37 #define MULTIBOOT_INFO_OFFSET_MODS_COUNT 0x14 38 #define MULTIBOOT_INFO_OFFSET_MODS_ADDR 0x18 39 #define MULTIBOOT_INFO_OFFSET_SYMS 0x1c 40 #define MULTIBOOT_INFO_OFFSET_MMAP_LENGTH 0x2c 41 #define MULTIBOOT_INFO_OFFSET_MMAP_ADDR 0x30 42 #define MULTIBOOT_INFO_OFFSET_DRIVES_LENGTH 0x34 43 #define MULTIBOOT_INFO_OFFSET_DRIVES_ADDR 0x38 44 #define MULTIBOOT_INFO_OFFSET_CONFIG_TABLE 0x3c 45 #define MULTIBOOT_INFO_OFFSET_BOOT_LOADER_NAME 0x40 46 #define MULTIBOOT_INFO_OFFSET_APM_TABLE 0x44 47 #define MULTIBOOT_INFO_OFFSET_VBE_CONTROL_INFO 0x48 48 #define MULTIBOOT_INFO_OFFSET_VBE_MODE_INFO 0x4c 49 #define MULTIBOOT_INFO_OFFSET_VBE_MODE 0x50 50 #define MULTIBOOT_INFO_OFFSET_VBE_INTERFACE_SEG 0x52 51 #define MULTIBOOT_INFO_OFFSET_VBE_INTERFACE_OFF 0x54 52 #define MULTIBOOT_INFO_OFFSET_VBE_INTERFACE_LEN 0x56 53 #define MULTIBOOT_INFO_OFFSET_FRAMEBUFFER_ADDR 0x58 54 #define MULTIBOOT_INFO_OFFSET_FRAMEBUFFER_PITCH 0x60 55 #define MULTIBOOT_INFO_OFFSET_FRAMEBUFFER_WIDTH 0x64 56 #define MULTIBOOT_INFO_OFFSET_FRAMEBUFFER_HEIGHT 0x68 57 #define MULTIBOOT_INFO_OFFSET_FRAMEBUFFER_BPP 0x6c 58 #define MULTIBOOT_INFO_OFFSET_FRAMEBUFFER_TYPE 0x6d 59 60 #define MULTIBOOT_INFO_OFFSET_FRAMEBUFFER_PALETTE_ADDR 0x6e 61 #define MULTIBOOT_INFO_OFFSET_FRAMEBUFFER_PALETTE_NUM_COLORS 0x72 62 63 #define MULTIBOOT_INFO_OFFSET_FRAMEBUFFER_RED_FIELD_POSITION 0x6e 64 #define MULTIBOOT_INFO_OFFSET_FRAMEBUFFER_RED_MASK_SIZE 0x6f 65 #define MULTIBOOT_INFO_OFFSET_FRAMEBUFFER_GREEN_FIELD_POSITION 0x70 66 #define MULTIBOOT_INFO_OFFSET_FRAMEBUFFER_GREEN_MASK_SIZE 0x71 67 #define MULTIBOOT_INFO_OFFSET_FRAMEBUFFER_BLUE_FIELD_POSITION 0x72 68 #define MULTIBOOT_INFO_OFFSET_FRAMEBUFFER_BLUE_MASK_SIZE 0x73 69 70 #define MULTIBOOT_INFO_SIZE 0x76 43 71 44 72 #ifndef __ASSEMBLER__ … … 57 85 uint32_t mmap_length; 58 86 uint32_t mmap_addr; 87 uint32_t drives_length; 88 uint32_t drives_addr; 89 uint32_t config_table; 90 uint32_t boot_loader_name; 91 uint32_t apm_table; 92 uint32_t vbe_control_info; 93 uint32_t vbe_mode_info; 94 uint16_t vbe_mode; 95 uint16_t vbe_interface_seg; 96 uint16_t vbe_interface_off; 97 uint16_t vbe_interface_len; 98 uint64_t framebuffer_addr; 99 uint32_t framebuffer_pitch; 100 uint32_t framebuffer_width; 101 uint32_t framebuffer_height; 102 uint8_t framebuffer_bpp; 103 uint8_t framebuffer_type; 104 union { 105 struct { 106 uint32_t framebuffer_palette_addr; 107 uint32_t framebuffer_palette_num_colors; 108 } __attribute__((packed)); 109 struct { 110 uint8_t framebuffer_red_field_position; 111 uint8_t framebuffer_red_mask_size; 112 uint8_t framebuffer_green_field_position; 113 uint8_t framebuffer_green_mask_size; 114 uint8_t framebuffer_blue_field_position; 115 uint8_t framebuffer_blue_mask_size; 116 } __attribute__((packed)); 117 } __attribute__((packed)); 59 118 } __attribute__((packed)) multiboot_info_t; 60 119 -
kernel/genarch/src/acpi/acpi.c
rbcd4dd4 rb0beb9b1 174 174 { 175 175 for (size_t i = 0; i < len; i += 16) { 176 if ( __builtin_memcmp(&base[i], RSDP_SIGNATURE, 8) &&176 if (!__builtin_memcmp(&base[i], RSDP_SIGNATURE, 8) && 177 177 rsdp_check(&base[i])) 178 178 return &base[i]; -
kernel/genarch/src/multiboot/multiboot.c
rbcd4dd4 rb0beb9b1 35 35 #include <typedefs.h> 36 36 #include <genarch/multiboot/multiboot.h> 37 #include <genarch/fb/bfb.h> 37 38 #include <config.h> 38 39 #include <stddef.h> … … 168 169 multiboot_memmap(info->mmap_length, 169 170 (multiboot_memmap_t *) MULTIBOOT_PTR(info->mmap_addr)); 171 172 #ifdef CONFIG_FB 173 174 /* Initialize framebuffer. */ 175 if ((info->flags & MULTIBOOT_INFO_FLAGS_FB) != 0) { 176 if (info->framebuffer_type != 1) { 177 /* Can't use this framebuffer. */ 178 // FIXME: framebuffer_type == 2 is EGA mode, we should be able to use that. 179 return; 180 } 181 182 bfb_addr = info->framebuffer_addr; 183 bfb_width = info->framebuffer_width; 184 bfb_height = info->framebuffer_height; 185 bfb_bpp = info->framebuffer_bpp; 186 bfb_scanline = info->framebuffer_pitch; 187 bfb_red_pos = info->framebuffer_red_field_position; 188 bfb_red_size = info->framebuffer_red_mask_size; 189 bfb_green_pos = info->framebuffer_green_field_position; 190 bfb_green_size = info->framebuffer_green_mask_size; 191 bfb_blue_pos = info->framebuffer_blue_field_position; 192 bfb_blue_size = info->framebuffer_blue_mask_size; 193 } 194 195 #endif 170 196 } 171 197 -
tools/autocheck.awk
rbcd4dd4 rb0beb9b1 38 38 39 39 /}.*;/ { 40 pattern = "}( __attribute__\\(.*\\))? (" struct_name "_t)?;" 41 if ($0 !~ pattern) { 42 print("Bad struct ending: " $0) > "/dev/stderr" 43 exit 1 40 pattern = "}( __attribute__\\(.*\\))? " struct_name "_t;" 41 if ($0 ~ pattern) { 42 macro_name = toupper(struct_name) "_SIZE" 43 print "_Static_assert(" macro_name " == sizeof(struct " struct_name "), \"\");" 44 struct_name = "" 44 45 } 45 macro_name = toupper(struct_name) "_SIZE"46 print "_Static_assert(" macro_name " == sizeof(struct " struct_name "), \"\");"47 struct_name = ""48 46 } 49 47 50 48 /;$/ { 51 if (struct_name != "" ) {49 if (struct_name != "" && $0 !~ "}") { 52 50 # Remove array subscript, if any. 53 51 sub("(\\[.*\\])?;", "", $0) -
tools/toolchain.sh
rbcd4dd4 rb0beb9b1 31 31 BINUTILS_GDB_GIT="https://github.com/HelenOS/binutils-gdb.git" 32 32 33 BINUTILS_BRANCH="binutils-2_3 0-helenos"34 BINUTILS_VERSION="2.3 0"35 36 GDB_BRANCH="gdb-8_ 1-helenos"37 GDB_VERSION="8. 1"33 BINUTILS_BRANCH="binutils-2_31_1-helenos" 34 BINUTILS_VERSION="2.31.1" 35 36 GDB_BRANCH="gdb-8_2-helenos" 37 GDB_VERSION="8.2" 38 38 39 39 GCC_GIT="https://github.com/HelenOS/gcc.git" -
uspace/srv/devman/driver.c
rbcd4dd4 rb0beb9b1 224 224 int cur_score; 225 225 link_t *link; 226 driver_t *drv;227 226 228 227 fibril_mutex_lock(&drivers_list->drivers_mutex); … … 231 230 cur_score = get_match_score(node->drv, node); 232 231 233 link = list_next(& drv->drivers, &drivers_list->drivers);232 link = list_next(&node->drv->drivers, &drivers_list->drivers); 234 233 235 234 /* … … 237 236 */ 238 237 while (link != NULL) { 239 drv = list_get_instance(link, driver_t, drivers); 238 driver_t *drv = list_get_instance(link, driver_t, 239 drivers); 240 240 score = get_match_score(drv, node); 241 241 if (score == cur_score) {
Note:
See TracChangeset
for help on using the changeset viewer.