Filter
Exclude
Time range
-
Near
家庭内で「そこで働いてたんだ!時期被ってた?」って話があり、思わぬ空間的な縁があるかもと思ったので、場所の記録を共有できる思い出マップって初Webアプリを作った! まず記憶を遡って歴代職場をまとめた! 皆さんの思い出の場所もシェアしてみてください! memory-map.sugiy.com/e5f3b11… #memory_map
1
20
1,565
memory_map->map_size = 0x1230ってどゆこと?? 数値出力の関数間違えた?
1
3
203
#include <stddef.h> #include <string.h> #include <stdio.h> #include <stdint.h> #include "error.hpp" #include "asmfunc.hpp" #include "boot_types.h" #include "type.hpp" #include "macro.hpp" #include "frame.hpp" #include "pci.hpp" #include "memory_map.hpp" #include "segment.hpp" #include "interrupt.hpp" #include "paging.hpp" #include "pic.hpp" #include "keyboard.hpp" #include "input.hpp" #include "command.hpp" #include "memory_manager.hpp" #include "timer.hpp" extern video_info_t *vinfo; extern InterruptDescriptor idt[256]; extern char keycode[0x100]; extern MemoryMap *mmap; alignas(16) uint8_t kernel_main_stack[1024 * 1024]; InputBuffer Input_Buffer; char memory_manager_buf[sizeof(BitmapMemoryManager)]; BitmapMemoryManager* memory_manager; void stop() { while(1) __asm__("hlt"); } extern "C" void kernel_main(bootinfo_t*); extern "C" void entry_point(bootinfo_t *binfo) { call_kernel_main(binfo, (void*)kernel_main, kernel_main_stack); return; } extern "C" void kernel_main(bootinfo_t *binfo) { SetupIdentityPageTable(); InitializeKeycode(); InitializeFrame(binfo); uint32_t x_axis = vinfo->x_axis; uint32_t y_axis = vinfo->y_axis; mmap = binfo->memory_map; WriteSquare({0,0}, {static_cast<int>(x_axis), static_cast<int>(y_axis)}, {0,0,0}); const uint16_t kernel_cs = 1 << 3; const uint16_t kernel_ss = 2 << 3; InitializeSegment(kernel_cs, kernel_ss); InitializeInterrupt(); InitializePIC(); memory_manager = new(memory_manager_buf) BitmapMemoryManager; InitializeMemoryManager(memory_manager, mmap); WithError<void*> ret = InitializeHeap(*memory_manager); if(ret.error) { Printf("InitializeHeap returned error.\n"); Printf("err : %s\n", ret.error.Name()); stop(); } InitializeLAPICTimer(); //タイマー初期化 char str[1000]; char **token; int i = 0; Printf("Welcome to BrotOS!!\n"); Printf("kernel : %p\n", kernel_main); Printf("kernel stack : %p\n", kernel_main_stack); while(1) { //main loop Printf("Enter command >"); GetString(str); token = tokenize(str); Printf("token : %p\n", token); command(token); free_token(token); } stop(); }

2
802
5 Nov 2022
We can modify the MEMORY_MAP and PROGRAM_TREES segments as shown below to include all of the memory maps - then we just need to re-import the file into Ghidra and we're ready to go
1
4