diff --git a/kernel/include/drivers/rtc.hpp b/kernel/include/drivers/rtc.hpp index deda0d2d..212ed242 100644 --- a/kernel/include/drivers/rtc.hpp +++ b/kernel/include/drivers/rtc.hpp @@ -12,7 +12,7 @@ namespace rtc { -datetime all_data(); +tlib::datetime all_data(); } //end of rtc namespace diff --git a/kernel/include/fs/devfs.hpp b/kernel/include/fs/devfs.hpp index 1e524bfa..758fcd1e 100644 --- a/kernel/include/fs/devfs.hpp +++ b/kernel/include/fs/devfs.hpp @@ -35,7 +35,7 @@ public: devfs_file_system(path mount_point); ~devfs_file_system(); - size_t statfs(statfs_info& file); + size_t statfs(tlib::statfs_info& file); size_t read(const path& file_path, char* buffer, size_t count, size_t offset, size_t& read); size_t write(const path& file_path, const char* buffer, size_t count, size_t offset, size_t& written); size_t clear(const path& file_path, size_t count, size_t offset, size_t& written); diff --git a/kernel/include/fs/fat32.hpp b/kernel/include/fs/fat32.hpp index 237f6761..12552eaf 100644 --- a/kernel/include/fs/fat32.hpp +++ b/kernel/include/fs/fat32.hpp @@ -36,7 +36,7 @@ public: void init(); - size_t statfs(statfs_info& file); + size_t statfs(tlib::statfs_info& file); size_t read(const path& file_path, char* buffer, size_t count, size_t offset, size_t& read); size_t write(const path& file_path, const char* buffer, size_t count, size_t offset, size_t& written); size_t clear(const path& file_path, size_t count, size_t offset, size_t& written); diff --git a/kernel/include/fs/procfs.hpp b/kernel/include/fs/procfs.hpp index 10c88ac5..b13eaf10 100644 --- a/kernel/include/fs/procfs.hpp +++ b/kernel/include/fs/procfs.hpp @@ -26,7 +26,7 @@ public: procfs_file_system(path mount_point); ~procfs_file_system(); - size_t statfs(statfs_info& file); + size_t statfs(tlib::statfs_info& file); size_t read(const path& file_path, char* buffer, size_t count, size_t offset, size_t& read); size_t write(const path& file_path, const char* buffer, size_t count, size_t offset, size_t& written); size_t clear(const path& file_path, size_t count, size_t offset, size_t& written); diff --git a/kernel/include/fs/sysfs.hpp b/kernel/include/fs/sysfs.hpp index 21d62045..3dea19cb 100644 --- a/kernel/include/fs/sysfs.hpp +++ b/kernel/include/fs/sysfs.hpp @@ -24,7 +24,7 @@ public: sysfs_file_system(path mount_point); ~sysfs_file_system(); - size_t statfs(statfs_info& file); + size_t statfs(tlib::statfs_info& file); size_t read(const path& file_path, char* buffer, size_t count, size_t offset, size_t& read); size_t write(const path& file_path, const char* buffer, size_t count, size_t offset, size_t& written); size_t clear(const path& file_path, size_t count, size_t offset, size_t& written); diff --git a/kernel/include/vfs/file.hpp b/kernel/include/vfs/file.hpp index 438cb417..375c5eb7 100644 --- a/kernel/include/vfs/file.hpp +++ b/kernel/include/vfs/file.hpp @@ -21,9 +21,9 @@ struct file { bool hidden; bool system; uint64_t size; - datetime created; - datetime modified; - datetime accessed; + tlib::datetime created; + tlib::datetime modified; + tlib::datetime accessed; //File system specific size_t location; diff --git a/kernel/include/vfs/file_system.hpp b/kernel/include/vfs/file_system.hpp index 01fa4e01..35b701c5 100644 --- a/kernel/include/vfs/file_system.hpp +++ b/kernel/include/vfs/file_system.hpp @@ -23,7 +23,7 @@ struct file_system { virtual void init(){} - virtual size_t statfs(statfs_info& file) = 0; + virtual size_t statfs(tlib::statfs_info& file) = 0; virtual size_t read(const path& file_path, char* buffer, size_t count, size_t offset, size_t& read) = 0; virtual size_t write(const path& file_path, const char* buffer, size_t count, size_t offset, size_t& written) = 0; virtual size_t clear(const path& file_path, size_t count, size_t offset, size_t& written) = 0; diff --git a/kernel/include/vfs/vfs.hpp b/kernel/include/vfs/vfs.hpp index 090c24ea..dc2e9a54 100644 --- a/kernel/include/vfs/vfs.hpp +++ b/kernel/include/vfs/vfs.hpp @@ -50,7 +50,7 @@ void close(size_t fd); * \param info The info to fill * \return a status code */ -int64_t stat(size_t fd, stat_info& info); +int64_t stat(size_t fd, tlib::stat_info& info); /*! * \brief Returns information about the file system @@ -58,7 +58,7 @@ int64_t stat(size_t fd, stat_info& info); * \param info The info to fill * \return a status code */ -int64_t statfs(const char* mount_point, statfs_info& info); +int64_t statfs(const char* mount_point, tlib::statfs_info& info); /*! * \brief Create a new directory diff --git a/kernel/src/drivers/rtc.cpp b/kernel/src/drivers/rtc.cpp index 929bbb99..e060ef91 100644 --- a/kernel/src/drivers/rtc.cpp +++ b/kernel/src/drivers/rtc.cpp @@ -29,7 +29,7 @@ uint8_t get_RTC_register(int reg){ } //end of anonymous namespace -datetime rtc::all_data(){ +tlib::datetime rtc::all_data(){ uint8_t second; uint8_t minute; uint8_t hour; diff --git a/kernel/src/fs/devfs.cpp b/kernel/src/fs/devfs.cpp index 04eaccf2..3ef03adf 100644 --- a/kernel/src/fs/devfs.cpp +++ b/kernel/src/fs/devfs.cpp @@ -194,7 +194,7 @@ size_t devfs::devfs_file_system::rm(const path& ){ return std::ERROR_PERMISSION_DENIED; } -size_t devfs::devfs_file_system::statfs(statfs_info& file){ +size_t devfs::devfs_file_system::statfs(tlib::statfs_info& file){ file.total_size = 0; file.free_size = 0; diff --git a/kernel/src/fs/fat32.cpp b/kernel/src/fs/fat32.cpp index 14eae173..246c8fae 100644 --- a/kernel/src/fs/fat32.cpp +++ b/kernel/src/fs/fat32.cpp @@ -703,7 +703,7 @@ size_t fat32::fat32_file_system::rm(const path& file_path){ } } -size_t fat32::fat32_file_system::statfs(statfs_info& file){ +size_t fat32::fat32_file_system::statfs(tlib::statfs_info& file){ file.total_size = fat_bs->total_sectors_long * 512; file.free_size = fat_is->free_clusters * fat_bs->sectors_per_cluster * 512; diff --git a/kernel/src/fs/procfs.cpp b/kernel/src/fs/procfs.cpp index 15deeaff..77b6efa1 100644 --- a/kernel/src/fs/procfs.cpp +++ b/kernel/src/fs/procfs.cpp @@ -193,7 +193,7 @@ size_t procfs::procfs_file_system::ls(const path& file_path, std::vector= 0){ - stat_info info; + tlib::stat_info info; if(vfs::stat(fd, info) == 0){ if(vfs::truncate(fd, info.size + length + 1) == 0){ std::string buffer = s; diff --git a/kernel/src/system_calls.cpp b/kernel/src/system_calls.cpp index 235e7646..7d250f15 100644 --- a/kernel/src/system_calls.cpp +++ b/kernel/src/system_calls.cpp @@ -170,14 +170,14 @@ void sc_close(interrupt::syscall_regs* regs){ void sc_stat(interrupt::syscall_regs* regs){ auto fd = regs->rbx; - auto info = reinterpret_cast(regs->rcx); + auto info = reinterpret_cast(regs->rcx); regs->rax = vfs::stat(fd, *info); } void sc_statfs(interrupt::syscall_regs* regs){ auto mount_point = reinterpret_cast(regs->rbx); - auto info = reinterpret_cast(regs->rcx); + auto info = reinterpret_cast(regs->rcx); regs->rax = vfs::statfs(mount_point, *info); } @@ -269,7 +269,7 @@ void sc_rm(interrupt::syscall_regs* regs){ } void sc_datetime(interrupt::syscall_regs* regs){ - auto date = reinterpret_cast(regs->rbx); + auto date = reinterpret_cast(regs->rbx); *date = rtc::all_data(); } diff --git a/kernel/src/vfs/vfs.cpp b/kernel/src/vfs/vfs.cpp index b1be2aac..4cba89c4 100644 --- a/kernel/src/vfs/vfs.cpp +++ b/kernel/src/vfs/vfs.cpp @@ -216,7 +216,7 @@ int64_t vfs::mount(partition_type type, const char* mount_point, const char* dev return 0; } -int64_t vfs::statfs(const char* mount_point, statfs_info& info){ +int64_t vfs::statfs(const char* mount_point, tlib::statfs_info& info){ auto base_path = get_path(mount_point); if(!base_path.is_valid()){ @@ -307,7 +307,7 @@ int64_t vfs::rm(const char* file_path){ return fs.file_system->rm(fs_path); } -int64_t vfs::stat(size_t fd, stat_info& info){ +int64_t vfs::stat(size_t fd, tlib::stat_info& info){ if(!scheduler::has_handle(fd)){ return -std::ERROR_INVALID_FILE_DESCRIPTOR; } @@ -320,7 +320,7 @@ int64_t vfs::stat(size_t fd, stat_info& info){ if(fs_path.is_root()){ //TODO Add file system support for stat of the root directory info.size = 4096; - info.flags = STAT_FLAG_DIRECTORY; + info.flags = tlib::STAT_FLAG_DIRECTORY; return 0; } @@ -336,20 +336,20 @@ int64_t vfs::stat(size_t fd, stat_info& info){ info.flags = 0; if(f.directory){ - info.flags |= STAT_FLAG_DIRECTORY; + info.flags |= tlib::STAT_FLAG_DIRECTORY; } if(f.system){ - info.flags |= STAT_FLAG_SYSTEM; + info.flags |= tlib::STAT_FLAG_SYSTEM; } if(f.hidden){ - info.flags |= STAT_FLAG_HIDDEN; + info.flags |= tlib::STAT_FLAG_HIDDEN; } // All files starting with a .dot are hidden by default if(fs_path.base_name()[0] == '.'){ - info.flags |= STAT_FLAG_HIDDEN; + info.flags |= tlib::STAT_FLAG_HIDDEN; } info.created = f.created; @@ -522,7 +522,7 @@ int64_t vfs::entries(size_t fd, char* buffer, size_t size){ size_t total_size = 0; for(auto& f : files){ - total_size += sizeof(directory_entry) + f.file_name.size(); + total_size += sizeof(tlib::directory_entry) + f.file_name.size(); } if(size < total_size){ @@ -534,7 +534,7 @@ int64_t vfs::entries(size_t fd, char* buffer, size_t size){ for(size_t i = 0; i < files.size(); ++i){ auto& file = files[i]; - auto entry = reinterpret_cast(buffer + position); + auto entry = reinterpret_cast(buffer + position); entry->type = 0; //TODO Fill that entry->length = file.file_name.size(); @@ -572,7 +572,7 @@ int64_t vfs::mounts(char* buffer, size_t size){ for(size_t i = 0; i < mount_point_list.size(); ++i){ auto& mp = mount_point_list[i]; - auto entry = reinterpret_cast(buffer + position); + auto entry = reinterpret_cast(buffer + position); auto fs_type = partition_type_to_string(mp.fs_type); diff --git a/programs/alpha/src/main.cpp b/programs/alpha/src/main.cpp index ed9ea055..512178a9 100644 --- a/programs/alpha/src/main.cpp +++ b/programs/alpha/src/main.cpp @@ -8,7 +8,7 @@ #include int main(int, char*[]){ - alpha(); + tlib::alpha(); return 0; } diff --git a/programs/args/src/main.cpp b/programs/args/src/main.cpp index c1b01437..c5b39c15 100644 --- a/programs/args/src/main.cpp +++ b/programs/args/src/main.cpp @@ -9,7 +9,7 @@ int main(int argc, char* argv[]){ for(size_t i = 0; i < size_t(argc); ++i){ - print_line(argv[i]); + tlib::print_line(argv[i]); } return 0; diff --git a/programs/bench/src/main.cpp b/programs/bench/src/main.cpp index b0c7eff2..74d60cf6 100644 --- a/programs/bench/src/main.cpp +++ b/programs/bench/src/main.cpp @@ -17,18 +17,18 @@ size_t repeat = 1; bool display_result(const char* name, uint64_t duration){ if(!duration){ repeat *= 2; - printf("%s was too fast (duration=0) increasing repeat to %u\n", name, repeat); + tlib::printf("%s was too fast (duration=0) increasing repeat to %u\n", name, repeat); return false; } uint64_t throughput = 1000 * ((repeat * PAGES * 4096) / duration); if(throughput > (1024 * 1024)){ - printf("%s: %ums bandwith: %uMiB/s\n", name, duration, throughput / (1024 * 1024)); + tlib::printf("%s: %ums bandwith: %uMiB/s\n", name, duration, throughput / (1024 * 1024)); } else if(throughput > 1024){ - printf("%s: %ums bandwith: %uKiB/s\n", name, duration, throughput / 1024); + tlib::printf("%s: %ums bandwith: %uKiB/s\n", name, duration, throughput / 1024); } else { - printf("%s: %ums bandwith: %uB/s\n", name, duration, throughput); + tlib::printf("%s: %ums bandwith: %uB/s\n", name, duration, throughput); } return true; @@ -40,18 +40,18 @@ int main(){ char* buffer_one = new char[PAGES * 4096]; char* buffer_two = new char[PAGES * 4096]; - printf("Start benchmark...\n"); + tlib::printf("Start benchmark...\n"); uint64_t start = 0, end = 0; while(repeat < 100){ - start = ms_time(); + start = tlib::ms_time(); for(size_t i = 0; i < repeat; ++i){ std::copy_n(buffer_two, PAGES * 4096, buffer_one); } - end = ms_time(); + end = tlib::ms_time(); if(display_result("copy", end - start)){ break; @@ -61,13 +61,13 @@ int main(){ repeat = 1; while(repeat < 100){ - start = ms_time(); + start = tlib::ms_time(); for(size_t i = 0; i < repeat; ++i){ std::fill_n(buffer_two, PAGES * 4096, 'Z'); } - end = ms_time(); + end = tlib::ms_time(); if(display_result("fill", end - start)){ break; @@ -77,13 +77,13 @@ int main(){ repeat = 1; while(repeat < 100){ - start = ms_time(); + start = tlib::ms_time(); for(size_t i = 0; i < repeat; ++i){ std::fill_n(buffer_two, PAGES * 4096, 0); } - end = ms_time(); + end = tlib::ms_time(); if(display_result("clear", end - start)){ break; diff --git a/programs/cat/src/main.cpp b/programs/cat/src/main.cpp index d1753b77..2aaf819f 100644 --- a/programs/cat/src/main.cpp +++ b/programs/cat/src/main.cpp @@ -12,46 +12,46 @@ int main(int argc, char* argv[]){ if(argc == 1){ - print_line("Usage: cat file_path"); + tlib::print_line("Usage: cat file_path"); return 1; } - auto fd = open(argv[1]); + auto fd = tlib::open(argv[1]); if(fd.valid()){ - auto info = stat(*fd); + auto info = tlib::stat(*fd); if(info.valid()){ - if(info->flags & STAT_FLAG_DIRECTORY){ - print_line("cat: error: Is a directory"); + if(info->flags & tlib::STAT_FLAG_DIRECTORY){ + tlib::print_line("cat: error: Is a directory"); } else { auto size = info->size; auto buffer = new char[size]; - auto content_result = read(*fd, buffer, size); + auto content_result = tlib::read(*fd, buffer, size); if(content_result.valid()){ if(*content_result != size){ //TODO Read more } else { for(size_t i = 0; i < size; ++i){ - print(buffer[i]); + tlib::print(buffer[i]); } - print_line(); + tlib::print_line(); } } else { - printf("cat: error: %s\n", std::error_message(content_result.error())); + tlib::printf("cat: error: %s\n", std::error_message(content_result.error())); } } } else { - printf("cat: error: %s\n", std::error_message(info.error())); + tlib::printf("cat: error: %s\n", std::error_message(info.error())); } - close(*fd); + tlib::close(*fd); } else { - printf("cat: error: %s\n", std::error_message(fd.error())); + tlib::printf("cat: error: %s\n", std::error_message(fd.error())); } return 0; diff --git a/programs/cpuid/src/main.cpp b/programs/cpuid/src/main.cpp index 5990328b..b561555b 100644 --- a/programs/cpuid/src/main.cpp +++ b/programs/cpuid/src/main.cpp @@ -29,12 +29,12 @@ void get_base_info(){ native_cpuid(1, eax, ebx, ecx, edx); - printf("Stepping: %u\n", eax & 0xF); - printf("Model: %u\n", (eax >> 4) & 0xF); - printf("Family: %u\n", (eax >> 8) & 0xF); - printf("Processor Type: %u\n", (eax >> 12) & 0x3); - printf("Extended Model: %u\n", (eax >> 16) & 0xF); - printf("Extended Family: %u\n", (eax >> 20) & 0xFF); + tlib::printf("Stepping: %u\n", eax & 0xF); + tlib::printf("Model: %u\n", (eax >> 4) & 0xF); + tlib::printf("Family: %u\n", (eax >> 8) & 0xF); + tlib::printf("Processor Type: %u\n", (eax >> 12) & 0x3); + tlib::printf("Extended Model: %u\n", (eax >> 16) & 0xF); + tlib::printf("Extended Family: %u\n", (eax >> 20) & 0xFF); } void get_vendor_id(){ @@ -46,7 +46,7 @@ void get_vendor_id(){ vendor_id[1] = edx; vendor_id[2] = ecx; - printf("Vendor ID: %s\n", reinterpret_cast(vendor_id)); + tlib::printf("Vendor ID: %s\n", reinterpret_cast(vendor_id)); } void get_brand_string(){ @@ -72,7 +72,7 @@ void get_brand_string(){ brand_string[10] = ecx; brand_string[11] = edx; - printf("Brand String: %s\n", reinterpret_cast(brand_string)); + tlib::printf("Brand String: %s\n", reinterpret_cast(brand_string)); } // EDX Features @@ -91,8 +91,8 @@ const int AVX = 1 << 28; void test_feature(uint32_t reg, int mask, const char* s){ if(reg & mask){ - print(' '); - print(s); + tlib::print(' '); + tlib::print(s); } } @@ -101,7 +101,7 @@ void get_features(){ native_cpuid(1, eax, ebx, ecx, edx); - print("Features:"); + tlib::print("Features:"); test_feature(edx, FPU, "fpu"); test_feature(edx, MMX, "mmx"); @@ -115,7 +115,7 @@ void get_features(){ test_feature(ecx, AES, "aes"); test_feature(ecx, AVX, "avx"); - print_line(); + tlib::print_line(); } void decode_bytes (int data, int descriptor[16], int *next){ @@ -138,12 +138,12 @@ void get_cache_info() { uint32_t eax = 0, ebx = 0, ecx = 0, edx = 0; - print_line("Cache and TLB:"); + tlib::print_line("Cache and TLB:"); native_cpuid(0, eax, ebx, ecx, edx); if (eax < 2){ - print_line(" CPUID(2) not supported"); + tlib::print_line(" CPUID(2) not supported"); return; } @@ -174,179 +174,179 @@ void get_cache_info() { } if ( descriptor[i] == 0x01){ - print_line(" Instruction TLB ... 4 kb pages, 4-way associative, 32 entries"); + tlib::print_line(" Instruction TLB ... 4 kb pages, 4-way associative, 32 entries"); } if ( descriptor[i] == 0x02){ - print_line(" Instruction TLB ... 4 Mb pages, 4-way associative, 2 entries"); + tlib::print_line(" Instruction TLB ... 4 Mb pages, 4-way associative, 2 entries"); } if ( descriptor[i] == 0x03){ - print_line(" Data TLB .......... 4 kb pages, 4-way associative, 64 entries"); + tlib::print_line(" Data TLB .......... 4 kb pages, 4-way associative, 64 entries"); } if ( descriptor[i] == 0x04){ - print_line(" Data TLB .......... 4 Mb pages, 4-way associative, 8 entries"); + tlib::print_line(" Data TLB .......... 4 Mb pages, 4-way associative, 8 entries"); } if ( descriptor[i] == 0x06){ - print_line(" L1 instruction cache 8 kb, 4-way associative, 32 byte line size"); + tlib::print_line(" L1 instruction cache 8 kb, 4-way associative, 32 byte line size"); } if ( descriptor[i] == 0x08){ - print_line(" L1 instruction cache 16 kb, 4-way associative, 32 byte line size"); + tlib::print_line(" L1 instruction cache 16 kb, 4-way associative, 32 byte line size"); } if ( descriptor[i] == 0x0A){ - print_line(" L1 data cache ..... 8 kb, 2-way associative, 32 byte line size"); + tlib::print_line(" L1 data cache ..... 8 kb, 2-way associative, 32 byte line size"); } if ( descriptor[i] == 0x0B){ - print_line(" Instruction TLB ... 4 Mb pages, 4-way associative, 4 entries"); + tlib::print_line(" Instruction TLB ... 4 Mb pages, 4-way associative, 4 entries"); } if ( descriptor[i] == 0x0C){ - print_line(" L1 data cache ..... 16 kb, 4-way associative, 32 byte line size"); + tlib::print_line(" L1 data cache ..... 16 kb, 4-way associative, 32 byte line size"); } if ( descriptor[i] == 0x22){ - print_line(" L3 cache: 512K Bytes, 4-way associative, 64 byte line size, "); - print_line(" 128 byte sector size" ); + tlib::print_line(" L3 cache: 512K Bytes, 4-way associative, 64 byte line size, "); + tlib::print_line(" 128 byte sector size" ); } if ( descriptor[i] == 0x23){ - print_line(" L3 cache: 1M Bytes, 8-way associative, 64 byte line size, "); - print_line(" 128 byte sector size" ); + tlib::print_line(" L3 cache: 1M Bytes, 8-way associative, 64 byte line size, "); + tlib::print_line(" 128 byte sector size" ); } if ( descriptor[i] == 0x25){ - print_line(" L3 cache: 2M Bytes, 8-way associative, 64 byte line size, "); - print_line(" 128 byte sector size" ); + tlib::print_line(" L3 cache: 2M Bytes, 8-way associative, 64 byte line size, "); + tlib::print_line(" 128 byte sector size" ); } if ( descriptor[i] == 0x29){ - print_line(" L3 cache: 4M Bytes, 8-way associative, 64 byte line size, "); - print_line(" 128 byte sector size" ); + tlib::print_line(" L3 cache: 4M Bytes, 8-way associative, 64 byte line size, "); + tlib::print_line(" 128 byte sector size" ); } if ( descriptor[i] == 0x2C){ - print_line(" 1st-level D-cache: 32K Bytes, 8-way associative, 64 byte line size"); + tlib::print_line(" 1st-level D-cache: 32K Bytes, 8-way associative, 64 byte line size"); } if ( descriptor[i] == 0x30){ - print_line(" 1st-level I-cache: 32K Bytes, 8-way associative, 64 byte line size"); + tlib::print_line(" 1st-level I-cache: 32K Bytes, 8-way associative, 64 byte line size"); } if ( descriptor[i] == 0x40){ - print_line(" No L2 cache OR if there is an L2 cache, then no L3 cache"); + tlib::print_line(" No L2 cache OR if there is an L2 cache, then no L3 cache"); } if ( descriptor[i] == 0x41){ - print_line(" L2 cache .......... 128 kb, 4-way associative, 32 byte line size"); + tlib::print_line(" L2 cache .......... 128 kb, 4-way associative, 32 byte line size"); } if ( descriptor[i] == 0x42){ - print_line(" L2 cache .......... 256 kb, 4-way associative, 32 byte line size"); + tlib::print_line(" L2 cache .......... 256 kb, 4-way associative, 32 byte line size"); } if ( descriptor[i] == 0x43){ - print_line(" L2 cache .......... 512 kb, 4-way associative, 32 byte line size"); + tlib::print_line(" L2 cache .......... 512 kb, 4-way associative, 32 byte line size"); } if ( descriptor[i] == 0x44){ - print_line(" L2 cache .......... 1 Mb, 4-way associative, 32 byte line size"); + tlib::print_line(" L2 cache .......... 1 Mb, 4-way associative, 32 byte line size"); } if ( descriptor[i] == 0x45){ - print_line(" L2 cache .......... 2 Mb, 4-way associative, 32 byte line size"); + tlib::print_line(" L2 cache .......... 2 Mb, 4-way associative, 32 byte line size"); } if ( descriptor[i] == 0x46){ - print_line(" L3 cache .......... 4 Mb, 4-way associative, 64 byte line size"); + tlib::print_line(" L3 cache .......... 4 Mb, 4-way associative, 64 byte line size"); } if ( descriptor[i] == 0x47){ - print_line(" L3 cache .......... 8 Mb, 8-way associative, 64 byte line size"); + tlib::print_line(" L3 cache .......... 8 Mb, 8-way associative, 64 byte line size"); } if ( descriptor[i] == 0x49){ - print_line(" L2 cache .......... 4 Mb, 16-way associative, 64 byte line size"); + tlib::print_line(" L2 cache .......... 4 Mb, 16-way associative, 64 byte line size"); } if ( descriptor[i] == 0x50){ - print_line(" Instruction TLB ... 4 kb and 2 Mb or 4 Mb pages, 64 entries"); + tlib::print_line(" Instruction TLB ... 4 kb and 2 Mb or 4 Mb pages, 64 entries"); } if ( descriptor[i] == 0x51){ - print_line(" Instruction TLB ... 4 kb and 2 Mb or 4 Mb pages, 128 entries"); + tlib::print_line(" Instruction TLB ... 4 kb and 2 Mb or 4 Mb pages, 128 entries"); } if ( descriptor[i] == 0x52){ - print_line(" Instruction TLB ... 4 kb and 2 Mb or 4 Mb pages, 256 entries"); + tlib::print_line(" Instruction TLB ... 4 kb and 2 Mb or 4 Mb pages, 256 entries"); } if ( descriptor[i] == 0x56){ - print_line(" Data TLB .......... 4 Mb pages, 4-way associative, 16 entries"); + tlib::print_line(" Data TLB .......... 4 Mb pages, 4-way associative, 16 entries"); } if ( descriptor[i] == 0x57){ - print_line(" Data TLB .......... 4 Kb pages, 4-way associative, 16 entries"); + tlib::print_line(" Data TLB .......... 4 Kb pages, 4-way associative, 16 entries"); } if ( descriptor[i] == 0x5B){ - print_line(" Data TLB .......... 4 kb and 4 Mb pages, 64 entries"); + tlib::print_line(" Data TLB .......... 4 kb and 4 Mb pages, 64 entries"); } if ( descriptor[i] == 0x5C){ - print_line(" Data TLB .......... 4 kb and 4 Mb pages, 128 entries"); + tlib::print_line(" Data TLB .......... 4 kb and 4 Mb pages, 128 entries"); } if ( descriptor[i] == 0x5D){ - print_line(" Data TLB .......... 4 kb and 4 Mb pages, 256 entries"); + tlib::print_line(" Data TLB .......... 4 kb and 4 Mb pages, 256 entries"); } if ( descriptor[i] == 0x60){ - print_line(" L1 data cache ..... 16 kb, 8-way associative, 64 byte line size"); + tlib::print_line(" L1 data cache ..... 16 kb, 8-way associative, 64 byte line size"); } if ( descriptor[i] == 0x66){ - print_line(" L1 data cache ..... 8 kb, 4-way associative, 64 byte line size"); + tlib::print_line(" L1 data cache ..... 8 kb, 4-way associative, 64 byte line size"); } if ( descriptor[i] == 0x67){ - print_line(" L1 data cache ..... 16 kb, 4-way associative, 64 byte line size"); + tlib::print_line(" L1 data cache ..... 16 kb, 4-way associative, 64 byte line size"); } if ( descriptor[i] == 0x68){ - print_line(" L1 data cache ..... 32 kb, 4-way associative, 64 byte line size"); + tlib::print_line(" L1 data cache ..... 32 kb, 4-way associative, 64 byte line size"); } if ( descriptor[i] == 0x70){ - print_line(" Trace cache ...... 12k uop, 8-way associative"); + tlib::print_line(" Trace cache ...... 12k uop, 8-way associative"); } if ( descriptor[i] == 0x71){ - print_line(" Trace cache ...... 16k uop, 8-way associative"); + tlib::print_line(" Trace cache ...... 16k uop, 8-way associative"); } if ( descriptor[i] == 0x72){ - print_line(" Trace cache ...... 32k uop, 8-way associative"); + tlib::print_line(" Trace cache ...... 32k uop, 8-way associative"); } if ( descriptor[i] == 0x78){ - print_line(" L2 cache .......... 1 MB , 8-way associative, 64byte line size"); + tlib::print_line(" L2 cache .......... 1 MB , 8-way associative, 64byte line size"); } if ( descriptor[i] == 0x79){ - print_line(" L2 cache .......... 128 kb, 8-way associative, sectored, 64 byte line size"); + tlib::print_line(" L2 cache .......... 128 kb, 8-way associative, sectored, 64 byte line size"); } if ( descriptor[i] == 0x7A){ - print_line(" L2 cache .......... 256 kb, 8-way associative, sectored, 64 byte line size"); + tlib::print_line(" L2 cache .......... 256 kb, 8-way associative, sectored, 64 byte line size"); } if ( descriptor[i] == 0x7B){ - print_line(" L2 cache .......... 512 kb, 8-way associative, sectored, 64 byte line size"); + tlib::print_line(" L2 cache .......... 512 kb, 8-way associative, sectored, 64 byte line size"); } if ( descriptor[i] == 0x7C){ - print_line(" L2 cache .......... 1M Byte, 8-way associative, sectored, 64 byte line size"); + tlib::print_line(" L2 cache .......... 1M Byte, 8-way associative, sectored, 64 byte line size"); } if ( descriptor[i] == 0x7D){ - print_line(" L2 cache .......... 2M Byte, 8-way associative, 64 byte line size"); + tlib::print_line(" L2 cache .......... 2M Byte, 8-way associative, 64 byte line size"); } if ( descriptor[i] == 0x7F){ - print_line(" L2 cache .........512K Byte, 2-way associative, 64 byte line size"); + tlib::print_line(" L2 cache .........512K Byte, 2-way associative, 64 byte line size"); } if ( descriptor[i] == 0x82){ - print_line(" L2 cache .......... 256 kb, 8-way associative, 32 byte line size"); + tlib::print_line(" L2 cache .......... 256 kb, 8-way associative, 32 byte line size"); } if ( descriptor[i] == 0x83){ - print_line(" L2 cache .......... 512K Byte, 8-way associative, 32 byte line size"); + tlib::print_line(" L2 cache .......... 512K Byte, 8-way associative, 32 byte line size"); } if ( descriptor[i] == 0x84){ - print_line(" L2 cache .......... 1 Mb, 8-way associative, 32 byte line size"); + tlib::print_line(" L2 cache .......... 1 Mb, 8-way associative, 32 byte line size"); } if ( descriptor[i] == 0x85){ - print_line(" L2 cache .......... 2 Mb, 8-way associative, 32 byte line size"); + tlib::print_line(" L2 cache .......... 2 Mb, 8-way associative, 32 byte line size"); } if ( descriptor[i] == 0x86){ - print_line(" L2 cache .......... 512K Byte, 4-way associative, 64 byte line size"); + tlib::print_line(" L2 cache .......... 512K Byte, 4-way associative, 64 byte line size"); } if ( descriptor[i] == 0x87){ - print_line(" L2 cache .......... 1M Byte, 8-way associative, 64 byte line size"); + tlib::print_line(" L2 cache .......... 1M Byte, 8-way associative, 64 byte line size"); } if ( descriptor[i] == 0xB0){ - print_line(" Instruction TLB 4K-Byte Pages, 4-way associative, 128 entries"); + tlib::print_line(" Instruction TLB 4K-Byte Pages, 4-way associative, 128 entries"); } if ( descriptor[i] == 0xB3){ - print_line(" Data TLB 4K-Byte Pages, 4-way associative, 128 entries"); + tlib::print_line(" Data TLB 4K-Byte Pages, 4-way associative, 128 entries"); } if ( descriptor[i] == 0xB4){ - print_line(" Data TLB 4K-Byte Pages, 4-way associative, 256 entries"); + tlib::print_line(" Data TLB 4K-Byte Pages, 4-way associative, 256 entries"); } if ( descriptor[i] == 0xF0){ - print_line(" 64-byte prefetching"); + tlib::print_line(" 64-byte prefetching"); } if ( descriptor[i] == 0xF1){ - print_line(" 128-byte prefetching"); + tlib::print_line(" 128-byte prefetching"); } } } @@ -372,23 +372,23 @@ void get_deterministic_cache_parameters(){ } if ((eax & 0x1F) == 1){ - print("Data Cache: "); + tlib::print("Data Cache: "); } if ((eax & 0x1F) == 2){ - print("Instruction Cache: "); + tlib::print("Instruction Cache: "); } if ((eax & 0x1F) == 3){ - print("Unified Cache: "); + tlib::print("Unified Cache: "); } - printf( "Level %u: ", static_cast((eax & 0xE0)/32)); - printf( "Max Threads %u: ", static_cast(((eax & 0x03FFC000)/(8192))+1)); - printf( "Max Procs. %u: " , static_cast(((eax & 0xFC000000)/(4*256*65536))+1)); - printf( "Line Size = %u: ", static_cast((ebx & 0xFFF ) + 1)); - printf( "Associativity = %u: ", (static_cast((ebx & 0xFFC00000)/4*16*65536) + 1)); - printf( "Sets = %u:\n", static_cast(ecx + 1)); + tlib::printf( "Level %u: ", static_cast((eax & 0xE0)/32)); + tlib::printf( "Max Threads %u: ", static_cast(((eax & 0x03FFC000)/(8192))+1)); + tlib::printf( "Max Procs. %u: " , static_cast(((eax & 0xFC000000)/(4*256*65536))+1)); + tlib::printf( "Line Size = %u: ", static_cast((ebx & 0xFFF ) + 1)); + tlib::printf( "Associativity = %u: ", (static_cast((ebx & 0xFFC00000)/4*16*65536) + 1)); + tlib::printf( "Sets = %u:\n", static_cast(ecx + 1)); ++caches; } diff --git a/programs/date/src/main.cpp b/programs/date/src/main.cpp index e409c0b5..8dcec803 100644 --- a/programs/date/src/main.cpp +++ b/programs/date/src/main.cpp @@ -9,19 +9,19 @@ #include int main(int, char*[]){ - auto date = local_date(); + auto date = tlib::local_date(); - print(date.day); - print('.'); - print(date.month); - print('.'); - print(date.year); - print(' '); + tlib::print(date.day); + tlib::print('.'); + tlib::print(date.month); + tlib::print('.'); + tlib::print(date.year); + tlib::print(' '); - print(date.hour); - print(':'); - print(date.minutes); - print_line(); + tlib::print(date.hour); + tlib::print(':'); + tlib::print(date.minutes); + tlib::print_line(); return 0; } diff --git a/programs/dctor/src/main.cpp b/programs/dctor/src/main.cpp index cd55ed4d..8f003020 100644 --- a/programs/dctor/src/main.cpp +++ b/programs/dctor/src/main.cpp @@ -12,11 +12,11 @@ namespace { struct A { A(){ - print_line("dctor: Constructor called"); + tlib::print_line("dctor: Constructor called"); } ~A(){ - print_line("dctor: Destructor called"); + tlib::print_line("dctor: Destructor called"); } }; @@ -25,7 +25,7 @@ A a; } // end of anonymous namespace int main(int, char*[]){ - print_line("dctor: main function called"); + tlib::print_line("dctor: main function called"); return 0; } diff --git a/programs/df/src/main.cpp b/programs/df/src/main.cpp index 7cdfc568..877c04aa 100644 --- a/programs/df/src/main.cpp +++ b/programs/df/src/main.cpp @@ -27,30 +27,30 @@ int main(int argc, char* argv[]){ auto buffer = new char[BUFFER_SIZE]; - auto mp_result = mounts(buffer, BUFFER_SIZE); + auto mp_result = tlib::mounts(buffer, BUFFER_SIZE); if(mp_result.valid()){ size_t position = 0; - print_line("File system Size Used Available"); + tlib::print_line("File system Size Used Available"); while(true){ - auto entry = reinterpret_cast(buffer + position); + auto entry = reinterpret_cast(buffer + position); auto mount_point = &entry->name; - auto statfs_result = statfs(mount_point); + auto statfs_result = tlib::statfs(mount_point); if(statfs_result.valid()){ auto& statfs = *statfs_result; if(human){ - printf("%s %m %m %m\n", mount_point, statfs.total_size, statfs.total_size - statfs.free_size, statfs.free_size); + tlib::printf("%s %m %m %m\n", mount_point, statfs.total_size, statfs.total_size - statfs.free_size, statfs.free_size); } else { - printf("%s %u %u %u\n", mount_point, statfs.total_size, statfs.total_size - statfs.free_size, statfs.free_size); + tlib::printf("%s %u %u %u\n", mount_point, statfs.total_size, statfs.total_size - statfs.free_size, statfs.free_size); } } else { - printf("df: error: %s\n", std::error_message(statfs_result.error())); + tlib::printf("df: error: %s\n", std::error_message(statfs_result.error())); } if(!entry->offset_next){ @@ -60,7 +60,7 @@ int main(int argc, char* argv[]){ position += entry->offset_next; } } else { - printf("df: error: %s\n", std::error_message(mp_result.error())); + tlib::printf("df: error: %s\n", std::error_message(mp_result.error())); } delete[] buffer; diff --git a/programs/keyboard/src/main.cpp b/programs/keyboard/src/main.cpp index 5cee97e7..b2c39310 100644 --- a/programs/keyboard/src/main.cpp +++ b/programs/keyboard/src/main.cpp @@ -12,20 +12,20 @@ const char* source = "Hello world"; int main(){ char buffer[16]; - printf("Read 1 string (max 15)\n"); + tlib::printf("Read 1 string (max 15)\n"); - auto c = read_input(buffer, 15); + auto c = tlib::read_input(buffer, 15); buffer[c] = '\0'; - print(buffer); + tlib::print(buffer); - printf("Read 1 string (max 15) with timeout 5\n"); - c = read_input(buffer, 15, 5000); + tlib::printf("Read 1 string (max 15) with timeout 5\n"); + c = tlib::read_input(buffer, 15, 5000); if(c){ buffer[c] = '\0'; - print(buffer); + tlib::print(buffer); } else { - printf("Timeout reached\n"); + tlib::printf("Timeout reached\n"); } return 0; diff --git a/programs/long/src/main.cpp b/programs/long/src/main.cpp index 7ae88197..3fb566ea 100644 --- a/programs/long/src/main.cpp +++ b/programs/long/src/main.cpp @@ -20,14 +20,14 @@ uint64_t fibonacci_slow(uint64_t s){ int main(){ uint64_t i = 0; - print_line("START"); + tlib::print_line("START"); while(i < 10){ - print_line(fibonacci_slow(current)); + tlib::print_line(fibonacci_slow(current)); ++i; } - print_line("END"); + tlib::print_line("END"); return 0; } diff --git a/programs/longone/src/main.cpp b/programs/longone/src/main.cpp index 4c44406e..72d661a2 100644 --- a/programs/longone/src/main.cpp +++ b/programs/longone/src/main.cpp @@ -22,7 +22,7 @@ auto message = "I'm one"; int main(){ while(true){ fibonacci_slow(current); - print_line(message); + tlib::print_line(message); } return 0; diff --git a/programs/longtwo/src/main.cpp b/programs/longtwo/src/main.cpp index 68d3cd11..a82b6bd4 100644 --- a/programs/longtwo/src/main.cpp +++ b/programs/longtwo/src/main.cpp @@ -22,7 +22,7 @@ auto message = "I'm two"; int main(){ while(true){ fibonacci_slow(current); - print_line(message); + tlib::print_line(message); } return 0; diff --git a/programs/ls/src/main.cpp b/programs/ls/src/main.cpp index e4e8797f..acd4c50c 100644 --- a/programs/ls/src/main.cpp +++ b/programs/ls/src/main.cpp @@ -21,55 +21,55 @@ struct config { }; void ls_files(const config& conf, const char* file_path){ - auto fd = open(file_path); + auto fd = tlib::open(file_path); if(fd.valid()){ - auto info = stat(*fd); + auto info = tlib::stat(*fd); if(info.valid()){ - if(!(info->flags & STAT_FLAG_DIRECTORY)){ - print_line("ls: error: Is not a directory"); + if(!(info->flags & tlib::STAT_FLAG_DIRECTORY)){ + tlib::print_line("ls: error: Is not a directory"); } else { auto buffer = new char[BUFFER_SIZE]; - auto entries_result = entries(*fd, buffer, BUFFER_SIZE); + auto entries_result = tlib::entries(*fd, buffer, BUFFER_SIZE); if(entries_result.valid()){ if(*entries_result){ size_t position = 0; while(true){ - auto entry = reinterpret_cast(buffer + position); + auto entry = reinterpret_cast(buffer + position); bool show = true; if(!conf.hidden){ auto path = std::string(file_path) + "/" + &entry->name; - auto file_fd = open(path.c_str()); + auto file_fd = tlib::open(path.c_str()); if(file_fd.valid()){ - auto file_info = stat(*file_fd); + auto file_info = tlib::stat(*file_fd); if(file_info.valid()){ - if(file_info->flags & STAT_FLAG_HIDDEN){ + if(file_info->flags & tlib::STAT_FLAG_HIDDEN){ show = false; } } else { - printf("ls: stat error: %s\n", std::error_message(file_info.error())); + tlib::printf("ls: stat error: %s\n", std::error_message(file_info.error())); } } else { - printf("ls: open error: %s\n", std::error_message(file_fd.error())); + tlib::printf("ls: open error: %s\n", std::error_message(file_fd.error())); } - close(*file_fd); + tlib::close(*file_fd); } if(show){ if(conf.list){ - print_line(&entry->name); + tlib::print_line(&entry->name); } else { - print(&entry->name); - print(" "); + tlib::print(&entry->name); + tlib::print(" "); } } @@ -81,22 +81,22 @@ void ls_files(const config& conf, const char* file_path){ } if(!conf.list){ - print_line(); + tlib::print_line(); } } } else { - printf("ls: entries error: %s\n", std::error_message(entries_result.error())); + tlib::printf("ls: entries error: %s\n", std::error_message(entries_result.error())); } delete[] buffer; } } else { - printf("ls: stat error: %s\n", std::error_message(info.error())); + tlib::printf("ls: stat error: %s\n", std::error_message(info.error())); } - close(*fd); + tlib::close(*fd); } else { - printf("ls: open error: %s\n", std::error_message(fd.error())); + tlib::printf("ls: open error: %s\n", std::error_message(fd.error())); } } @@ -118,7 +118,7 @@ int main(int argc, char* argv[]){ } else if(c == 'a'){ conf.hidden = true; } else { - print_line("ls: invalid argument"); + tlib::print_line("ls: invalid argument"); return 1; } } @@ -128,7 +128,7 @@ int main(int argc, char* argv[]){ } if(i == argc){ - auto cwd = current_working_directory(); + auto cwd = tlib::current_working_directory(); ls_files(conf, cwd.c_str()); } else { ls_files(conf, argv[argc -1]); diff --git a/programs/lse820/src/main.cpp b/programs/lse820/src/main.cpp index c4d70cea..a391c423 100644 --- a/programs/lse820/src/main.cpp +++ b/programs/lse820/src/main.cpp @@ -14,57 +14,57 @@ static constexpr const size_t BUFFER_SIZE = 4096; std::string read_file(const std::string& path){ - auto fd = open(path.c_str()); + auto fd = tlib::open(path.c_str()); if(fd.valid()){ - auto info = stat(*fd); + auto info = tlib::stat(*fd); if(info.valid()){ auto size = info->size; auto buffer = new char[size+1]; - auto content_result = read(*fd, buffer, size); + auto content_result = tlib::read(*fd, buffer, size); if(content_result.valid()){ if(*content_result != size){ //TODO Read more } else { buffer[size] = '\0'; - close(*fd); + tlib::close(*fd); return buffer; } } else { - printf("cat: error: %s\n", std::error_message(content_result.error())); + tlib::printf("cat: error: %s\n", std::error_message(content_result.error())); } } else { - printf("cat: error: %s\n", std::error_message(info.error())); + tlib::printf("cat: error: %s\n", std::error_message(info.error())); } - close(*fd); + tlib::close(*fd); } else { - printf("cat: error: %s\n", std::error_message(fd.error())); + tlib::printf("cat: error: %s\n", std::error_message(fd.error())); } return ""; } int main(int /*argc*/, char* /*argv*/[]){ - auto fd = open("/sys/memory/e820/"); + auto fd = tlib::open("/sys/memory/e820/"); if(fd.valid()){ - auto info = stat(*fd); + auto info = tlib::stat(*fd); if(info.valid()){ auto entries_buffer = new char[BUFFER_SIZE]; - auto entries_result = entries(*fd, entries_buffer, BUFFER_SIZE); + auto entries_result = tlib::entries(*fd, entries_buffer, BUFFER_SIZE); if(entries_result.valid()){ size_t position = 0; while(true){ - auto entry = reinterpret_cast(entries_buffer + position); + auto entry = reinterpret_cast(entries_buffer + position); std::string base_path = "/sys/memory/e820/"; std::string entry_name = &entry->name; @@ -74,7 +74,7 @@ int main(int /*argc*/, char* /*argv*/[]){ auto size = parse(read_file(base_path + entry_name + "/size")); auto type = read_file(base_path + entry_name + "/type"); - printf("%s: %s (%hB) %h -> %h\n", &entry->name, type.c_str(), size, base, base + size); + tlib::printf("%s: %s (%hB) %h -> %h\n", &entry->name, type.c_str(), size, base, base + size); } if(!entry->offset_next){ @@ -84,17 +84,17 @@ int main(int /*argc*/, char* /*argv*/[]){ position += entry->offset_next; } } else { - printf("lse820: entries error: %s\n", std::error_message(entries_result.error())); + tlib::printf("lse820: entries error: %s\n", std::error_message(entries_result.error())); } delete[] entries_buffer; } else { - printf("lse820: stat error: %s\n", std::error_message(info.error())); + tlib::printf("lse820: stat error: %s\n", std::error_message(info.error())); } - close(*fd); + tlib::close(*fd); } else { - printf("lse820: open error: %s\n", std::error_message(fd.error())); + tlib::printf("lse820: open error: %s\n", std::error_message(fd.error())); } return 0; diff --git a/programs/lspci/src/main.cpp b/programs/lspci/src/main.cpp index c5eeba05..f21e1be0 100644 --- a/programs/lspci/src/main.cpp +++ b/programs/lspci/src/main.cpp @@ -14,36 +14,36 @@ static constexpr const size_t BUFFER_SIZE = 4096; std::string read_file(const std::string& path){ - auto fd = open(path.c_str()); + auto fd = tlib::open(path.c_str()); if(fd.valid()){ - auto info = stat(*fd); + auto info = tlib::stat(*fd); if(info.valid()){ auto size = info->size; auto buffer = new char[size+1]; - auto content_result = read(*fd, buffer, size); + auto content_result = tlib::read(*fd, buffer, size); if(content_result.valid()){ if(*content_result != size){ //TODO Read more } else { buffer[size] = '\0'; - close(*fd); + tlib::close(*fd); return buffer; } } else { - printf("cat: error: %s\n", std::error_message(content_result.error())); + tlib::printf("cat: error: %s\n", std::error_message(content_result.error())); } } else { - printf("cat: error: %s\n", std::error_message(info.error())); + tlib::printf("cat: error: %s\n", std::error_message(info.error())); } - close(*fd); + tlib::close(*fd); } else { - printf("cat: error: %s\n", std::error_message(fd.error())); + tlib::printf("cat: error: %s\n", std::error_message(fd.error())); } return ""; @@ -90,21 +90,21 @@ const char* device_type_str(const std::string& class_code){ } int main(int /*argc*/, char* /*argv*/[]){ - auto fd = open("/sys/pci/"); + auto fd = tlib::open("/sys/pci/"); if(fd.valid()){ - auto info = stat(*fd); + auto info = tlib::stat(*fd); if(info.valid()){ auto entries_buffer = new char[BUFFER_SIZE]; - auto entries_result = entries(*fd, entries_buffer, BUFFER_SIZE); + auto entries_result = tlib::entries(*fd, entries_buffer, BUFFER_SIZE); if(entries_result.valid()){ size_t position = 0; while(true){ - auto entry = reinterpret_cast(entries_buffer + position); + auto entry = reinterpret_cast(entries_buffer + position); std::string base_path = "/sys/pci/"; std::string entry_name = &entry->name; @@ -115,7 +115,7 @@ int main(int /*argc*/, char* /*argv*/[]){ auto subclass = read_file(base_path + entry_name + "/subclass"); auto device_type = device_type_str(class_code); - printf("%s: %s %s:%s (%s:%s)\n", device_type, &entry->name, vendor.c_str(), device.c_str(), class_code.c_str(), subclass.c_str()); + tlib::printf("%s: %s %s:%s (%s:%s)\n", device_type, &entry->name, vendor.c_str(), device.c_str(), class_code.c_str(), subclass.c_str()); if(!entry->offset_next){ break; @@ -124,17 +124,17 @@ int main(int /*argc*/, char* /*argv*/[]){ position += entry->offset_next; } } else { - printf("ls: error: %s\n", std::error_message(entries_result.error())); + tlib::printf("ls: error: %s\n", std::error_message(entries_result.error())); } delete[] entries_buffer; } else { - printf("ls: error: %s\n", std::error_message(info.error())); + tlib::printf("ls: error: %s\n", std::error_message(info.error())); } - close(*fd); + tlib::close(*fd); } else { - printf("ls: error: %s\n", std::error_message(fd.error())); + tlib::printf("ls: error: %s\n", std::error_message(fd.error())); } return 0; diff --git a/programs/mkdir/src/main.cpp b/programs/mkdir/src/main.cpp index a570d531..167ed1a4 100644 --- a/programs/mkdir/src/main.cpp +++ b/programs/mkdir/src/main.cpp @@ -13,14 +13,14 @@ int main(int argc, char* argv[]){ if(argc == 1){ - print_line("Usage: mkdir file_path"); + tlib::print_line("Usage: mkdir file_path"); return 1; } - auto result = mkdir(argv[1]); + auto result = tlib::mkdir(argv[1]); if(result < 0){ - printf("mkdir: error: %s\n", std::error_message(-result)); + tlib::printf("mkdir: error: %s\n", std::error_message(-result)); } return 0; diff --git a/programs/mkfs/src/main.cpp b/programs/mkfs/src/main.cpp index 6f933310..10da2297 100644 --- a/programs/mkfs/src/main.cpp +++ b/programs/mkfs/src/main.cpp @@ -20,7 +20,7 @@ static constexpr const size_t BUFFER_SIZE = 4096; int main(int argc, char* argv[]){ if(argc < 3){ - printf("usage: mkfs fs device \n"); + tlib::printf("usage: mkfs fs device \n"); return 1; } @@ -32,27 +32,27 @@ int main(int argc, char* argv[]){ if(fs == "fat32"){ // Open the device file - auto fd = open(device_str); + auto fd = tlib::open(device_str); if(!fd.valid()){ - printf("mkfs: open error: %s\n", std::error_message(fd.error())); + tlib::printf("mkfs: open error: %s\n", std::error_message(fd.error())); return 1; } // Get the size of the device uint64_t size = 0; - auto code = ioctl(*fd, ioctl_request::GET_BLK_SIZE, &size); + auto code = tlib::ioctl(*fd, ioctl_request::GET_BLK_SIZE, &size); if(code){ - printf("mkfs: ioctl error: %s\n", std::error_message(code)); + tlib::printf("mkfs: ioctl error: %s\n", std::error_message(code)); return 1; } // Start computing and writing the FAT32 values - printf("mkfs: Creating Fat32 filesystem on %s\n", device_str); - printf("mkfs: Device size: %m\n", size); + tlib::printf("mkfs: Creating Fat32 filesystem on %s\n", device_str); + tlib::printf("mkfs: Device size: %m\n", size); uint64_t sector_size = 512; uint64_t sectors_per_cluster = 8; @@ -67,15 +67,15 @@ int main(int argc, char* argv[]){ uint64_t fat_size_clusters = std::ceil_divide(fat_size_sectors, sectors_per_cluster); fat_size_sectors = fat_size_clusters * sectors_per_cluster; - printf("mkfs: Device sectors : %u\n", sectors); - printf("mkfs: Available sectors : %u\n", available_sectors); - printf("mkfs: FAT sectors : %u\n", fat_size_sectors); + tlib::printf("mkfs: Device sectors : %u\n", sectors); + tlib::printf("mkfs: Available sectors : %u\n", available_sectors); + tlib::printf("mkfs: FAT sectors : %u\n", fat_size_sectors); uint64_t free_clusters = available_clusters - fat_size_clusters - 1; uint64_t free_sectors = free_clusters * sectors_per_cluster; - printf("mkfs: Free sectors : %u\n", free_sectors); - printf("mkfs: Free clusters : %u\n", free_clusters); + tlib::printf("mkfs: Free sectors : %u\n", free_sectors); + tlib::printf("mkfs: Free clusters : %u\n", free_clusters); auto fat_bs = std::make_unique(); @@ -94,10 +94,10 @@ int main(int argc, char* argv[]){ fat_bs->signature = 0xAA55; // Write the FAT BS - auto status = write(*fd, reinterpret_cast(fat_bs.get()), sector_size, 0); + auto status = tlib::write(*fd, reinterpret_cast(fat_bs.get()), sector_size, 0); if(!status.valid()){ - printf("mkfs: write error: %s\n", std::error_message(status.error())); + tlib::printf("mkfs: write error: %s\n", std::error_message(status.error())); return 1; } @@ -110,29 +110,29 @@ int main(int argc, char* argv[]){ fat_is->signature_end = 0x000055AA; // Write the FAT IS - status = write(*fd, reinterpret_cast(fat_is.get()), sector_size, sector_size); + status = tlib::write(*fd, reinterpret_cast(fat_is.get()), sector_size, sector_size); if(!status.valid()){ - printf("mkfs: write error: %s\n", std::error_message(status.error())); + tlib::printf("mkfs: write error: %s\n", std::error_message(status.error())); return 1; } // Clear the FAT auto fat_begin = fat_bs->reserved_sectors; - status = clear(*fd, fat_begin * sector_size, fat_size_sectors * sector_size); + status = tlib::clear(*fd, fat_begin * sector_size, fat_size_sectors * sector_size); if(!status.valid()){ - printf("mkfs: clear error: %s\n", std::error_message(status.error())); + tlib::printf("mkfs: clear error: %s\n", std::error_message(status.error())); return 1; } // Write end of chain for cluster 2 (root) uint32_t end_of_cluster_chain = 0x0FFFFFF8; - status = write(*fd, reinterpret_cast(&end_of_cluster_chain), 4, fat_begin * sector_size + 2 * 4); + status = tlib::write(*fd, reinterpret_cast(&end_of_cluster_chain), 4, fat_begin * sector_size + 2 * 4); if(!status.valid()){ - printf("mkfs: write error: %s\n", std::error_message(status.error())); + tlib::printf("mkfs: write error: %s\n", std::error_message(status.error())); return 1; } @@ -150,14 +150,14 @@ int main(int argc, char* argv[]){ //Write the directory entries to the disk auto root_sector = fat_begin + (fat_bs->number_of_fat * fat_bs->sectors_per_fat_long); - if(!write(*fd, reinterpret_cast(root_cluster_entries.get()), sector_size * fat_bs->sectors_per_cluster, root_sector * sector_size)){ + if(!tlib::write(*fd, reinterpret_cast(root_cluster_entries.get()), sector_size * fat_bs->sectors_per_cluster, root_sector * sector_size)){ return std::ERROR_FAILED; } return 0; } - printf("mkfs: Unsupported filesystem %s\n", fs_str); + tlib::printf("mkfs: Unsupported filesystem %s\n", fs_str); return 1; } diff --git a/programs/mount/src/main.cpp b/programs/mount/src/main.cpp index 6b1637fd..4e196b06 100644 --- a/programs/mount/src/main.cpp +++ b/programs/mount/src/main.cpp @@ -17,19 +17,19 @@ int main(int argc, char* argv[]){ if(argc == 1){ auto buffer = new char[BUFFER_SIZE]; - auto mp_result = mounts(buffer, BUFFER_SIZE); + auto mp_result = tlib::mounts(buffer, BUFFER_SIZE); if(mp_result.valid()){ size_t position = 0; while(true){ - auto entry = reinterpret_cast(buffer + position); + auto entry = reinterpret_cast(buffer + position); auto mount_point = &entry->name; auto device = mount_point + entry->length_mp + 1; auto type = device + entry->length_dev + 1; - printf("%s %s %s\n", mount_point, device, type); + tlib::printf("%s %s %s\n", mount_point, device, type); if(!entry->offset_next){ break; @@ -38,7 +38,7 @@ int main(int argc, char* argv[]){ position += entry->offset_next; } } else { - printf("mount: error: %s\n", std::error_message(mp_result.error())); + tlib::printf("mount: error: %s\n", std::error_message(mp_result.error())); } delete[] buffer; @@ -47,7 +47,7 @@ int main(int argc, char* argv[]){ } if(argc < 4){ - printf("usage: mount fs device mountpoint\n"); + tlib::printf("usage: mount fs device mountpoint\n"); return 1; } @@ -59,29 +59,29 @@ int main(int argc, char* argv[]){ std::string fs(fs_str); if(fs == "fat32"){ - printf("mkfs: Mounting %s fat32 filesystem on %s\n", device_str, mount_point_str); + tlib::printf("mkfs: Mounting %s fat32 filesystem on %s\n", device_str, mount_point_str); - auto device_fd = open(device_str); + auto device_fd = tlib::open(device_str); if(!device_fd.valid()){ - printf("mount: open error: %s\n", std::error_message(device_fd.error())); + tlib::printf("mount: open error: %s\n", std::error_message(device_fd.error())); return 1; } - auto mp_fd = open(mount_point_str); + auto mp_fd = tlib::open(mount_point_str); - if(!mp_fd.valid()){ printf("mount: open error: %s\n", std::error_message(mp_fd.error())); + if(!mp_fd.valid()){ tlib::printf("mount: open error: %s\n", std::error_message(mp_fd.error())); return 1; } - auto mount_result = mount(1, *device_fd, *mp_fd); + auto mount_result = tlib::mount(1, *device_fd, *mp_fd); if(!mount_result.valid()){ - printf("mount: mount error: %s\n", std::error_message(mount_result.error())); + tlib::printf("mount: mount error: %s\n", std::error_message(mount_result.error())); return 1; } } else { - printf("mkfs: Unsupported filesystem %s\n", fs_str); + tlib::printf("mkfs: Unsupported filesystem %s\n", fs_str); return 1; } diff --git a/programs/odin/src/main.cpp b/programs/odin/src/main.cpp index 7764e6ff..7bc66cbe 100644 --- a/programs/odin/src/main.cpp +++ b/programs/odin/src/main.cpp @@ -97,8 +97,8 @@ void draw_string(size_t x, size_t y, const char* s, uint32_t color){ } void paint_cursor(){ - auto x = graphics::mouse_x(); - auto y = graphics::mouse_y(); + auto x = tlib::graphics::mouse_x(); + auto y = tlib::graphics::mouse_y(); auto color = make_color(20, 20, 20); @@ -118,9 +118,9 @@ void paint_top_bar(){ draw_rect(0, 0, width, 18, make_color(51, 51, 51)); draw_rect(0, 18, width, 2, make_color(25, 25, 25)); - auto date = local_date(); + auto date = tlib::local_date(); - auto date_str = sprintf("%u.%u.%u %u:%u", size_t(date.day), size_t(date.month), size_t(date.year), size_t(date.hour), size_t(date.minutes)); + auto date_str = tlib::sprintf("%u.%u.%u %u:%u", size_t(date.day), size_t(date.month), size_t(date.year), size_t(date.hour), size_t(date.minutes)); draw_char(2, 2, 'T', make_color(30, 30, 30)); draw_string(width - 128, 2, date_str.c_str(), make_color(200, 200, 200)); @@ -159,8 +159,8 @@ public: void update(){ if(drag){ - auto mouse_x = graphics::mouse_x(); - auto mouse_y = graphics::mouse_y(); + auto mouse_x = tlib::graphics::mouse_x(); + auto mouse_y = tlib::graphics::mouse_y(); auto delta_x = int64_t(mouse_x) - drag_start_x; auto delta_y = int64_t(mouse_y) - drag_start_y; @@ -203,8 +203,8 @@ public: } bool mouse_in_title(){ - auto mouse_x = graphics::mouse_x(); - auto mouse_y = graphics::mouse_y(); + auto mouse_x = tlib::graphics::mouse_x(); + auto mouse_y = tlib::graphics::mouse_y(); return mouse_x >= x && mouse_x <= x + width && mouse_y >= y + 2 && mouse_y <= mouse_y + 18; } @@ -212,8 +212,8 @@ public: void start_drag(){ if(!drag){ drag = true; - drag_start_x = graphics::mouse_x(); - drag_start_y = graphics::mouse_y(); + drag_start_x = tlib::graphics::mouse_x(); + drag_start_y = tlib::graphics::mouse_y(); } } @@ -227,14 +227,14 @@ std::vector windows; } // end of anonnymous namespace int main(int /*argc*/, char* /*argv*/[]){ - width = graphics::get_width(); - height = graphics::get_height(); - x_shift = graphics::get_x_shift(); - y_shift = graphics::get_y_shift(); - bytes_per_scan_line = graphics::get_bytes_per_scan_line(); - red_shift = graphics::get_red_shift(); - green_shift = graphics::get_green_shift(); - blue_shift = graphics::get_blue_shift(); + width = tlib::graphics::get_width(); + height = tlib::graphics::get_height(); + x_shift = tlib::graphics::get_x_shift(); + y_shift = tlib::graphics::get_y_shift(); + bytes_per_scan_line = tlib::graphics::get_bytes_per_scan_line(); + red_shift = tlib::graphics::get_red_shift(); + green_shift = tlib::graphics::get_green_shift(); + blue_shift = tlib::graphics::get_blue_shift(); size_t total_size = height * bytes_per_scan_line; @@ -244,8 +244,8 @@ int main(int /*argc*/, char* /*argv*/[]){ auto background = make_color(128, 128, 128); - set_canonical(false); - set_mouse(true); + tlib::set_canonical(false); + tlib::set_mouse(true); static constexpr const size_t sleep_timeout = 50; @@ -267,18 +267,18 @@ int main(int /*argc*/, char* /*argv*/[]){ paint_cursor(); - graphics::redraw(buffer); + tlib::graphics::redraw(buffer); - auto before = ms_time(); - auto code = read_input_raw(sleep_timeout); - auto after = ms_time(); + auto before = tlib::ms_time(); + auto code = tlib::read_input_raw(sleep_timeout); + auto after = tlib::ms_time(); if(code != keycode::TIMEOUT){ // TODO Handle event at this point switch(code){ case keycode::MOUSE_LEFT_PRESS: - user_logf("odin: left press"); + tlib::user_logf("odin: left press"); for(auto& window: windows){ if(window.mouse_in_title()){ @@ -289,7 +289,7 @@ int main(int /*argc*/, char* /*argv*/[]){ break; case keycode::MOUSE_LEFT_RELEASE: - user_logf("odin: left release"); + tlib::user_logf("odin: left release"); for(auto& window: windows){ window.stop_drag(); @@ -298,27 +298,27 @@ int main(int /*argc*/, char* /*argv*/[]){ break; case keycode::MOUSE_RIGHT_PRESS: - user_logf("odin: right press"); + tlib::user_logf("odin: right press"); break; case keycode::MOUSE_RIGHT_RELEASE: - user_logf("odin: right release"); + tlib::user_logf("odin: right release"); break; default: - user_logf("odin: %u ", static_cast(code)); + tlib::user_logf("odin: %u ", static_cast(code)); } auto duration = after - before; if(duration < sleep_timeout){ - sleep_ms(sleep_timeout - duration); + tlib::sleep_ms(sleep_timeout - duration); } } } - set_canonical(true); - set_mouse(false); + tlib::set_canonical(true); + tlib::set_mouse(false); delete[] buffer; diff --git a/programs/ping/src/main.cpp b/programs/ping/src/main.cpp index 6277ebd6..e9f01d2b 100644 --- a/programs/ping/src/main.cpp +++ b/programs/ping/src/main.cpp @@ -16,20 +16,20 @@ namespace { int main(int argc, char* argv[]){ if(argc != 2){ - print_line("usage: ping address_ip"); + tlib::print_line("usage: ping address_ip"); return 1; } std::string ip(argv[0]); - auto socket = socket_open(network::socket_domain::AF_INET, network::socket_type::RAW, network::socket_protocol::ICMP); + auto socket = tlib::socket_open(network::socket_domain::AF_INET, network::socket_type::RAW, network::socket_protocol::ICMP); if(!socket){ - printf("ls: socket_open error: %s\n", std::error_message(socket.error())); + tlib::printf("ls: socket_open error: %s\n", std::error_message(socket.error())); return 1; } - socket_close(*socket); + tlib::socket_close(*socket); return 0; } diff --git a/programs/ps/src/main.cpp b/programs/ps/src/main.cpp index 4d15eb3a..9a0c44ae 100644 --- a/programs/ps/src/main.cpp +++ b/programs/ps/src/main.cpp @@ -16,36 +16,36 @@ namespace { static constexpr const size_t BUFFER_SIZE = 4096; std::string read_file(const std::string& path){ - auto fd = open(path.c_str()); + auto fd = tlib::open(path.c_str()); if(fd.valid()){ - auto info = stat(*fd); + auto info = tlib::stat(*fd); if(info.valid()){ auto size = info->size; auto buffer = new char[size+1]; - auto content_result = read(*fd, buffer, size); + auto content_result = tlib::read(*fd, buffer, size); if(content_result.valid()){ if(*content_result != size){ //TODO Read more } else { buffer[size] = '\0'; - close(*fd); + tlib::close(*fd); return buffer; } } else { - printf("ps: error: %s\n", std::error_message(content_result.error())); + tlib::printf("ps: error: %s\n", std::error_message(content_result.error())); } } else { - printf("ps: error: %s\n", std::error_message(info.error())); + tlib::printf("ps: error: %s\n", std::error_message(info.error())); } - close(*fd); + tlib::close(*fd); } else { - printf("ps: error: %s\n", std::error_message(fd.error())); + tlib::printf("ps: error: %s\n", std::error_message(fd.error())); } return ""; @@ -77,23 +77,23 @@ const char* state_str(uint64_t state){ } // end of anonymous space int main(int /*argc*/, char* /*argv*/[]){ - auto fd = open("/proc/"); + auto fd = tlib::open("/proc/"); - printf("PID PPID Pri State Memory Name\n"); + tlib::printf("PID PPID Pri State Memory Name\n"); if(fd.valid()){ - auto info = stat(*fd); + auto info = tlib::stat(*fd); if(info.valid()){ auto entries_buffer = new char[BUFFER_SIZE]; - auto entries_result = entries(*fd, entries_buffer, BUFFER_SIZE); + auto entries_result = tlib::entries(*fd, entries_buffer, BUFFER_SIZE); if(entries_result.valid()){ size_t position = 0; while(true){ - auto entry = reinterpret_cast(entries_buffer + position); + auto entry = reinterpret_cast(entries_buffer + position); std::string base_path = "/proc/"; std::string entry_name = &entry->name; @@ -107,9 +107,9 @@ int main(int /*argc*/, char* /*argv*/[]){ auto memory = parse(read_file(base_path + entry_name + "/memory")); if(system){ - printf("%3u %4u %3u %10s %6m %s [kernel]\n", pid, ppid, priority, state_str(state), memory, name.c_str()); + tlib::printf("%3u %4u %3u %10s %6m %s [kernel]\n", pid, ppid, priority, state_str(state), memory, name.c_str()); } else { - printf("%3u %4u %3u %10s %6m %s \n", pid, ppid, priority, state_str(state), memory, name.c_str()); + tlib::printf("%3u %4u %3u %10s %6m %s \n", pid, ppid, priority, state_str(state), memory, name.c_str()); } if(!entry->offset_next){ @@ -119,17 +119,17 @@ int main(int /*argc*/, char* /*argv*/[]){ position += entry->offset_next; } } else { - printf("ps: error: %s\n", std::error_message(entries_result.error())); + tlib::printf("ps: error: %s\n", std::error_message(entries_result.error())); } delete[] entries_buffer; } else { - printf("ps: error: %s\n", std::error_message(info.error())); + tlib::printf("ps: error: %s\n", std::error_message(info.error())); } - close(*fd); + tlib::close(*fd); } else { - printf("ps: error: %s\n", std::error_message(fd.error())); + tlib::printf("ps: error: %s\n", std::error_message(fd.error())); } return 0; diff --git a/programs/readelf/src/main.cpp b/programs/readelf/src/main.cpp index d47e3ecc..2b81dff8 100644 --- a/programs/readelf/src/main.cpp +++ b/programs/readelf/src/main.cpp @@ -15,17 +15,17 @@ namespace { void readelf(char* buffer){ if(!elf::is_valid(buffer)){ - print_line("readelf: This file is not an ELF file or not in ELF64 format"); + tlib::print_line("readelf: This file is not an ELF file or not in ELF64 format"); return; } auto header = reinterpret_cast(buffer); - printf("%h\n", reinterpret_cast(buffer)); + tlib::printf("%h\n", reinterpret_cast(buffer)); - printf("Number of Program Headers: %u\n", static_cast(header->e_phnum)); - printf("Number of Section Headers: %u\n", static_cast(header->e_shnum)); + tlib::printf("Number of Program Headers: %u\n", static_cast(header->e_phnum)); + tlib::printf("Number of Section Headers: %u\n", static_cast(header->e_shnum)); auto program_header_table = reinterpret_cast(buffer + header->e_phoff); auto section_header_table = reinterpret_cast(buffer + header->e_shoff); @@ -36,38 +36,38 @@ void readelf(char* buffer){ for(size_t p = 0; p < header->e_phnum; ++p){ auto& p_header = program_header_table[p]; - printf("Program header %u\n", p); - printf("\tVirtual Address: %h\n", p_header.p_paddr); - printf("\tMSize: %u\t", p_header.p_memsz); - printf("\tFSize: %u\t Offset: %u \n", p_header.p_filesize, p_header.p_offset); + tlib::printf("Program header %u\n", p); + tlib::printf("\tVirtual Address: %h\n", p_header.p_paddr); + tlib::printf("\tMSize: %u\t", p_header.p_memsz); + tlib::printf("\tFSize: %u\t Offset: %u \n", p_header.p_filesize, p_header.p_offset); } for(size_t s = 0; s < header->e_shnum; ++s){ auto& s_header = section_header_table[s]; - printf("Section \"%s\" (", &string_table[s_header.sh_name]); + tlib::printf("Section \"%s\" (", &string_table[s_header.sh_name]); if(s_header.sh_flags & 0x1){ - print(" W"); + tlib::print(" W"); } if(s_header.sh_flags & 0x2){ - print(" A"); + tlib::print(" A"); } if(s_header.sh_flags & 0x4){ - print(" X"); + tlib::print(" X"); } if(s_header.sh_flags & 0x0F000000){ - print(" OS"); + tlib::print(" OS"); } if(s_header.sh_flags & 0xF0000000){ - print(" CPU"); + tlib::print(" CPU"); } - print_line(")"); - printf("\tAddress: %h Size: %u Offset: %u\n", s_header.sh_addr, s_header.sh_size, s_header.sh_offset); + tlib::print_line(")"); + tlib::printf("\tAddress: %h Size: %u Offset: %u\n", s_header.sh_addr, s_header.sh_size, s_header.sh_offset); } } @@ -75,27 +75,27 @@ void readelf(char* buffer){ int main(int argc, char* argv[]){ if(argc == 1){ - print_line("Usage: readelf file_path"); + tlib::print_line("Usage: readelf file_path"); return 1; } - auto fd = open(argv[1]); + auto fd = tlib::open(argv[1]); if(fd.valid()){ - auto info = stat(*fd); + auto info = tlib::stat(*fd); if(info.valid()){ - if(info->flags & STAT_FLAG_DIRECTORY){ - print_line("readelf: error: Is a directory"); + if(info->flags & tlib::STAT_FLAG_DIRECTORY){ + tlib::print_line("readelf: error: Is a directory"); } else { auto size = info->size; if(size == 0){ - print_line("readelf: error: The file is empty"); + tlib::print_line("readelf: error: The file is empty"); } else { auto buffer = new char[size]; - auto content_result = read(*fd, buffer, size); + auto content_result = tlib::read(*fd, buffer, size); if(content_result.valid()){ if(*content_result != size){ @@ -104,19 +104,19 @@ int main(int argc, char* argv[]){ readelf(buffer); } } else { - printf("readelf: error: %s\n", std::error_message(content_result.error())); + tlib::printf("readelf: error: %s\n", std::error_message(content_result.error())); } delete[] buffer; } } } else { - printf("readelf: error: %s\n", std::error_message(info.error())); + tlib::printf("readelf: error: %s\n", std::error_message(info.error())); } - close(*fd); + tlib::close(*fd); } else { - printf("readelf: error: %s\n", std::error_message(fd.error())); + tlib::printf("readelf: error: %s\n", std::error_message(fd.error())); } return 0; diff --git a/programs/reboot/src/main.cpp b/programs/reboot/src/main.cpp index 9b836aa3..b23f2b9b 100644 --- a/programs/reboot/src/main.cpp +++ b/programs/reboot/src/main.cpp @@ -8,6 +8,6 @@ #include int main(){ - reboot(); + tlib::reboot(); return 0; } diff --git a/programs/rm/src/main.cpp b/programs/rm/src/main.cpp index b4e46db6..f1fca417 100644 --- a/programs/rm/src/main.cpp +++ b/programs/rm/src/main.cpp @@ -13,22 +13,22 @@ int main(int argc, char* argv[]){ if(argc == 1){ - print_line("Usage: rm file_path"); + tlib::print_line("Usage: rm file_path"); return 1; } - auto fd = open(argv[1]); + auto fd = tlib::open(argv[1]); if(fd.valid()){ - auto result = rm(argv[1]); + auto result = tlib::rm(argv[1]); if(result < 0){ - printf("rm: error: %s\n", std::error_message(-result)); + tlib::printf("rm: error: %s\n", std::error_message(-result)); } - close(*fd); + tlib::close(*fd); } else { - printf("rm: error: %s\n", std::error_message(fd.error())); + tlib::printf("rm: error: %s\n", std::error_message(fd.error())); } return 0; diff --git a/programs/shutdown/src/main.cpp b/programs/shutdown/src/main.cpp index 9d79628c..d5dd6e75 100644 --- a/programs/shutdown/src/main.cpp +++ b/programs/shutdown/src/main.cpp @@ -8,6 +8,6 @@ #include int main(){ - shutdown(); + tlib::shutdown(); return 0; } diff --git a/programs/stat/src/main.cpp b/programs/stat/src/main.cpp index a39b93cc..157871cf 100644 --- a/programs/stat/src/main.cpp +++ b/programs/stat/src/main.cpp @@ -12,85 +12,85 @@ int main(int argc, char* argv[]){ if(argc == 1){ - print_line("Usage: stat file_path"); + tlib::print_line("Usage: stat file_path"); return 1; } - auto fd = open(argv[1]); + auto fd = tlib::open(argv[1]); if(fd.valid()){ - auto info = stat(*fd); + auto info = tlib::stat(*fd); if(info.valid()){ - if(info->flags & STAT_FLAG_DIRECTORY){ - print("Directory "); + if(info->flags & tlib::STAT_FLAG_DIRECTORY){ + tlib::print("Directory "); } else { - print("File "); + tlib::print("File "); } - print_line(argv[1]); + tlib::print_line(argv[1]); - printf("Size: %m\n", info->size); - print("Flags: "); + tlib::printf("Size: %m\n", info->size); + tlib::print("Flags: "); - if(info->flags & STAT_FLAG_HIDDEN){ - print("Hidden "); + if(info->flags & tlib::STAT_FLAG_HIDDEN){ + tlib::print("Hidden "); } - if(info->flags & STAT_FLAG_SYSTEM){ - print("System "); + if(info->flags & tlib::STAT_FLAG_SYSTEM){ + tlib::print("System "); } - print_line(); + tlib::print_line(); - print("Created: "); + tlib::print("Created: "); - print(info->created.day); - print('.'); - print(info->created.month); - print('.'); - print(info->created.year); - print(' '); + tlib::print(info->created.day); + tlib::print('.'); + tlib::print(info->created.month); + tlib::print('.'); + tlib::print(info->created.year); + tlib::print(' '); - print(info->created.hour); - print(':'); - print(info->created.minutes); - print_line(); + tlib::print(info->created.hour); + tlib::print(':'); + tlib::print(info->created.minutes); + tlib::print_line(); - print("Modified: "); + tlib::print("Modified: "); - print(info->modified.day); - print('.'); - print(info->modified.month); - print('.'); - print(info->modified.year); - print(' '); + tlib::print(info->modified.day); + tlib::print('.'); + tlib::print(info->modified.month); + tlib::print('.'); + tlib::print(info->modified.year); + tlib::print(' '); - print(info->modified.hour); - print(':'); - print(info->modified.minutes); - print_line(); + tlib::print(info->modified.hour); + tlib::print(':'); + tlib::print(info->modified.minutes); + tlib::print_line(); - print("Accessed: "); + tlib::print("Accessed: "); - print(info->accessed.day); - print('.'); - print(info->accessed.month); - print('.'); - print(info->accessed.year); - print(' '); + tlib::print(info->accessed.day); + tlib::print('.'); + tlib::print(info->accessed.month); + tlib::print('.'); + tlib::print(info->accessed.year); + tlib::print(' '); - print(info->accessed.hour); - print(':'); - print(info->accessed.minutes); - print_line(); + tlib::print(info->accessed.hour); + tlib::print(':'); + tlib::print(info->accessed.minutes); + tlib::print_line(); } else { - printf("stat: error: %s\n", std::error_message(info.error())); + tlib::printf("stat: error: %s\n", std::error_message(info.error())); } - close(*fd); + tlib::close(*fd); } else { - printf("stat: error: %s\n", std::error_message(fd.error())); + tlib::printf("stat: error: %s\n", std::error_message(fd.error())); } return 0; diff --git a/programs/touch/src/main.cpp b/programs/touch/src/main.cpp index 627d7fe9..c806a209 100644 --- a/programs/touch/src/main.cpp +++ b/programs/touch/src/main.cpp @@ -12,16 +12,16 @@ int main(int argc, char* argv[]){ if(argc == 1){ - print_line("Usage: touch file_path"); + tlib::print_line("Usage: touch file_path"); return 1; } - auto fd = open(argv[1], std::OPEN_CREATE); + auto fd = tlib::open(argv[1], std::OPEN_CREATE); if(fd.valid()){ - close(*fd); + tlib::close(*fd); } else { - printf("touch: error: %s\n", std::error_message(fd.error())); + tlib::printf("touch: error: %s\n", std::error_message(fd.error())); } return 0; diff --git a/programs/tsh/src/main.cpp b/programs/tsh/src/main.cpp index 0a195168..d68f3d5e 100644 --- a/programs/tsh/src/main.cpp +++ b/programs/tsh/src/main.cpp @@ -19,8 +19,8 @@ size_t columns = 0; size_t rows = 0; void get_console_information(){ - columns = get_columns(); - rows = get_rows(); + columns = tlib::get_columns(); + rows = tlib::get_rows(); } void exit_command(const std::vector& params); @@ -45,68 +45,68 @@ command_definition commands[6] = { }; void exit_command(const std::vector&){ - exit(0); + tlib::exit(0); } void echo_command(const std::vector& params){ for(uint64_t i = 1; i < params.size(); ++i){ - print(params[i]); - print(' '); + tlib::print(params[i]); + tlib::print(' '); } - print_line(); + tlib::print_line(); } void sleep_command(const std::vector& params){ if(params.size() == 1){ - print_line("sleep: missing operand"); + tlib::print_line("sleep: missing operand"); } else { size_t time = std::parse(params[1]); - sleep_ms(time * 1000); + tlib::sleep_ms(time * 1000); } } void clear_command(const std::vector&){ - clear(); + tlib::clear(); } void cd_command(const std::vector& params){ if(params.size() == 1){ - print_line("Usage: cd file_path"); + tlib::print_line("Usage: cd file_path"); return; } auto& path = params[1]; - auto fd = open(path.c_str()); + auto fd = tlib::open(path.c_str()); if(fd.valid()){ - auto info = stat(*fd); + auto info = tlib::stat(*fd); if(info.valid()){ - if(!(info->flags & STAT_FLAG_DIRECTORY)){ - print_line("cat: error: Is not a directory"); + if(!(info->flags & tlib::STAT_FLAG_DIRECTORY)){ + tlib::print_line("cat: error: Is not a directory"); } else { if(path[0] == '/'){ - set_current_working_directory(path); + tlib::set_current_working_directory(path); } else { - auto cwd = current_working_directory(); + auto cwd = tlib::current_working_directory(); - set_current_working_directory(cwd + "/" + path); + tlib::set_current_working_directory(cwd + "/" + path); } } } else { - printf("cd: error: %s\n", std::error_message(info.error())); + tlib::printf("cd: error: %s\n", std::error_message(info.error())); } - close(*fd); + tlib::close(*fd); } else { - printf("cd: error: %s\n", std::error_message(fd.error())); + tlib::printf("cd: error: %s\n", std::error_message(fd.error())); } } void pwd_command(const std::vector&){ - auto cwd = current_working_directory(); - print_line(cwd); + auto cwd = tlib::current_working_directory(); + tlib::print_line(cwd); } } //end of anonymous namespace @@ -117,10 +117,10 @@ int main(){ char input_buffer[256]; std::string current_input; - print("thor> "); + tlib::print("thor> "); while(true){ - auto c = read_input(input_buffer, 255 ); + auto c = tlib::read_input(input_buffer, 255 ); if(input_buffer[c-1] == '\n'){ if(c > 1){ @@ -156,21 +156,21 @@ int main(){ executable = "/bin/" + executable; } - auto result = exec_and_wait(executable.c_str(), args); + auto result = tlib::exec_and_wait(executable.c_str(), args); if(!result.valid()){ - print("error: "); - print_line(std::error_message(result.error())); - print("command: \""); - print(current_input); - print_line("\""); + tlib::print("error: "); + tlib::print_line(std::error_message(result.error())); + tlib::print("command: \""); + tlib::print(current_input); + tlib::print_line("\""); } } } current_input.clear(); - print("thor> "); + tlib::print("thor> "); } else { input_buffer[c] = '\0'; diff --git a/programs/uptime/src/main.cpp b/programs/uptime/src/main.cpp index 1a93cfc9..5953f828 100644 --- a/programs/uptime/src/main.cpp +++ b/programs/uptime/src/main.cpp @@ -11,12 +11,12 @@ #include int main(int, char*[]){ - auto fd = open("/sys/uptime"); + auto fd = tlib::open("/sys/uptime"); if(fd.valid()){ auto buffer = new char[64]; - auto content_result = read(*fd, buffer, 64); + auto content_result = tlib::read(*fd, buffer, 64); if(content_result.valid()){ auto chars = *content_result; @@ -30,16 +30,16 @@ int main(int, char*[]){ auto value = std::parse(value_str); - printf("Uptime: %u:%u:%u\n", value / 3600, (value % 3600) / 60, value % 60); + tlib::printf("Uptime: %u:%u:%u\n", value / 3600, (value % 3600) / 60, value % 60); } else { - printf("uptime: error: %s\n", std::error_message(content_result.error())); + tlib::printf("uptime: error: %s\n", std::error_message(content_result.error())); } delete[] buffer; - close(*fd); + tlib::close(*fd); } else { - printf("uptime: error: %s\n", std::error_message(fd.error())); + tlib::printf("uptime: error: %s\n", std::error_message(fd.error())); } return 0; diff --git a/programs/which/src/main.cpp b/programs/which/src/main.cpp index 1b91ee2d..ea546ca8 100644 --- a/programs/which/src/main.cpp +++ b/programs/which/src/main.cpp @@ -12,7 +12,7 @@ int main(int argc, char* argv[]){ if(argc == 1){ - print_line("Usage: which executable_path"); + tlib::print_line("Usage: which executable_path"); return 1; } @@ -22,17 +22,17 @@ int main(int argc, char* argv[]){ path = "/bin/" + path; } - auto fd = open(path.c_str()); + auto fd = tlib::open(path.c_str()); if(fd.valid()){ - print_line(path); + tlib::print_line(path); - close(*fd); + tlib::close(*fd); } else { if(fd.has_error(std::ERROR_NOT_EXISTS)){ - printf("%s not found\n", argv[1]); + tlib::printf("%s not found\n", argv[1]); } else { - printf("which: error: %s\n", std::error_message(fd.error())); + tlib::printf("which: error: %s\n", std::error_message(fd.error())); } } diff --git a/programs/writer/src/main.cpp b/programs/writer/src/main.cpp index 3bb276e9..55897519 100644 --- a/programs/writer/src/main.cpp +++ b/programs/writer/src/main.cpp @@ -13,32 +13,32 @@ int main(int argc, char* argv[]){ if(argc == 1){ - print_line("Usage: writer file_path"); + tlib::print_line("Usage: writer file_path"); return 1; } - auto fd = open(argv[1], std::OPEN_CREATE); + auto fd = tlib::open(argv[1], std::OPEN_CREATE); if(fd.valid()){ - auto truncate_result = truncate(*fd, 12); + auto truncate_result = tlib::truncate(*fd, 12); if(truncate_result.valid()){ auto s = "0123456789AB"; - auto write_result = write(*fd, s, 12, 0); + auto write_result = tlib::write(*fd, s, 12, 0); if(write_result.valid()){ //TODO } else { - printf("writer: error: %s\n", std::error_message(write_result.error())); + tlib::printf("writer: error: %s\n", std::error_message(write_result.error())); } } else { - printf("writer: error: %s\n", std::error_message(truncate_result.error())); + tlib::printf("writer: error: %s\n", std::error_message(truncate_result.error())); } - close(*fd); + tlib::close(*fd); } else { - printf("writer: error: %s\n", std::error_message(fd.error())); + tlib::printf("writer: error: %s\n", std::error_message(fd.error())); } return 0; diff --git a/tlib/include/tlib/datetime.hpp b/tlib/include/tlib/datetime.hpp index ed1193c5..cdb4dee3 100644 --- a/tlib/include/tlib/datetime.hpp +++ b/tlib/include/tlib/datetime.hpp @@ -10,6 +10,8 @@ #include +namespace tlib { + struct datetime { uint16_t year; uint8_t month; @@ -21,4 +23,6 @@ struct datetime { uint64_t precise; } __attribute__((packed)) ; +} // end of namespace tlib + #endif diff --git a/tlib/include/tlib/directory_entry.hpp b/tlib/include/tlib/directory_entry.hpp index 799a79b3..d2fc9ac5 100644 --- a/tlib/include/tlib/directory_entry.hpp +++ b/tlib/include/tlib/directory_entry.hpp @@ -10,6 +10,8 @@ #include +namespace tlib { + struct directory_entry { size_t type; size_t offset_next; @@ -17,4 +19,6 @@ struct directory_entry { char name; //First char }; +} // end of namespace tlib + #endif diff --git a/tlib/include/tlib/errors.hpp b/tlib/include/tlib/errors.hpp index 6a767a8f..06887ee1 100644 --- a/tlib/include/tlib/errors.hpp +++ b/tlib/include/tlib/errors.hpp @@ -87,6 +87,6 @@ inline const char* error_message(size_t error){ } } -} +} // end of namespace std #endif diff --git a/tlib/include/tlib/file.hpp b/tlib/include/tlib/file.hpp index a47bf4a8..a810ead2 100644 --- a/tlib/include/tlib/file.hpp +++ b/tlib/include/tlib/file.hpp @@ -15,6 +15,8 @@ #include "tlib/stat_info.hpp" #include "tlib/statfs_info.hpp" +namespace tlib { + std::expected open(const char* file, size_t flags = 0); int64_t mkdir(const char* file); int64_t rm(const char* file); @@ -32,4 +34,6 @@ std::expected mount(size_t type, size_t dev_fd, size_t mp_fd); std::string current_working_directory(); void set_current_working_directory(const std::string& directory); +} // end of namespace tlib + #endif diff --git a/tlib/include/tlib/graphics.hpp b/tlib/include/tlib/graphics.hpp index 72a0b92b..90bcdc95 100644 --- a/tlib/include/tlib/graphics.hpp +++ b/tlib/include/tlib/graphics.hpp @@ -10,6 +10,8 @@ #include +namespace tlib { + namespace graphics { uint64_t get_width(); @@ -31,4 +33,6 @@ void redraw(char* buffer); } // end of namespace graphics +} // end of namespace tlib + #endif diff --git a/tlib/include/tlib/io.hpp b/tlib/include/tlib/io.hpp index 33cf8dde..9617f142 100644 --- a/tlib/include/tlib/io.hpp +++ b/tlib/include/tlib/io.hpp @@ -13,6 +13,10 @@ #include "tlib/ioctl_codes.hpp" +namespace tlib { + int64_t ioctl(size_t device, ioctl_request request, void* data); +} //end of namespace tlib + #endif diff --git a/tlib/include/tlib/malloc.hpp b/tlib/include/tlib/malloc.hpp index 78137fdc..9fe91aa4 100644 --- a/tlib/include/tlib/malloc.hpp +++ b/tlib/include/tlib/malloc.hpp @@ -16,6 +16,8 @@ void operator delete(void* p); void* operator new[](uint64_t size); void operator delete[](void* p); +namespace tlib { + void* malloc(size_t size); void free(void* pointer); @@ -23,4 +25,6 @@ size_t brk_start(); size_t brk_end(); size_t sbrk(size_t inc); +} // end of tlib namespace + #endif diff --git a/tlib/include/tlib/mount_point.hpp b/tlib/include/tlib/mount_point.hpp index 05ed969a..c9eda7d4 100644 --- a/tlib/include/tlib/mount_point.hpp +++ b/tlib/include/tlib/mount_point.hpp @@ -10,6 +10,8 @@ #include +namespace tlib { + struct mount_point { size_t offset_next; size_t length_mp; @@ -18,4 +20,6 @@ struct mount_point { char name; //First char }; +} // end of namespace tlib + #endif diff --git a/tlib/include/tlib/net.hpp b/tlib/include/tlib/net.hpp index 47788dbb..7ca7f0cc 100644 --- a/tlib/include/tlib/net.hpp +++ b/tlib/include/tlib/net.hpp @@ -12,7 +12,11 @@ #include "net_constants.hpp" +namespace tlib { + std::expected socket_open(network::socket_domain domain, network::socket_type type, network::socket_protocol protocol); void socket_close(size_t fd); +} // end of namespace tlib + #endif diff --git a/tlib/include/tlib/print.hpp b/tlib/include/tlib/print.hpp index fb0b596e..325d87cb 100644 --- a/tlib/include/tlib/print.hpp +++ b/tlib/include/tlib/print.hpp @@ -17,6 +17,8 @@ #include +namespace tlib { + void print(char c); void print(const char* s); void print(const std::string& s); @@ -54,4 +56,6 @@ size_t get_rows(); void user_logf(const char* s, ...); +} //end of namespace tlib + #endif diff --git a/tlib/include/tlib/stat_info.hpp b/tlib/include/tlib/stat_info.hpp index b690dd27..fe263bb1 100644 --- a/tlib/include/tlib/stat_info.hpp +++ b/tlib/include/tlib/stat_info.hpp @@ -12,6 +12,8 @@ #include "tlib/datetime.hpp" +namespace tlib { + constexpr const size_t STAT_FLAG_DIRECTORY = 1 << 0; constexpr const size_t STAT_FLAG_HIDDEN = 1 << 1; constexpr const size_t STAT_FLAG_SYSTEM = 1 << 2; @@ -24,4 +26,6 @@ struct stat_info { datetime accessed; }; +} // end of namespace tlib + #endif diff --git a/tlib/include/tlib/statfs_info.hpp b/tlib/include/tlib/statfs_info.hpp index 8c23ef04..071b7267 100644 --- a/tlib/include/tlib/statfs_info.hpp +++ b/tlib/include/tlib/statfs_info.hpp @@ -10,9 +10,13 @@ #include +namespace tlib { + struct statfs_info { size_t total_size; size_t free_size; }; +} // end of namespace tlib + #endif diff --git a/tlib/include/tlib/system.hpp b/tlib/include/tlib/system.hpp index fe0474b8..eb185803 100644 --- a/tlib/include/tlib/system.hpp +++ b/tlib/include/tlib/system.hpp @@ -15,6 +15,8 @@ #include "tlib/datetime.hpp" +namespace tlib { + void exit(size_t return_code) __attribute__((noreturn)); std::expected exec(const char* executable, const std::vector& params = {}); @@ -34,4 +36,6 @@ uint64_t ms_time(); void alpha(); +} // end of tlib namespace + #endif diff --git a/tlib/src/file.cpp b/tlib/src/file.cpp index 66d834c6..1d7cf4d0 100644 --- a/tlib/src/file.cpp +++ b/tlib/src/file.cpp @@ -7,7 +7,7 @@ #include "tlib/file.hpp" -std::expected open(const char* file, size_t flags){ +std::expected tlib::open(const char* file, size_t flags){ int64_t fd; asm volatile("mov rax, 300; mov rbx, %[path]; mov rcx, %[flags]; int 50; mov %[fd], rax" : [fd] "=m" (fd) @@ -21,7 +21,7 @@ std::expected open(const char* file, size_t flags){ } } -int64_t mkdir(const char* file){ +int64_t tlib::mkdir(const char* file){ int64_t result; asm volatile("mov rax, 306; mov rbx, %[path]; int 50; mov %[result], rax" : [result] "=m" (result) @@ -30,7 +30,7 @@ int64_t mkdir(const char* file){ return result; } -int64_t rm(const char* file){ +int64_t tlib::rm(const char* file){ int64_t result; asm volatile("mov rax, 307; mov rbx, %[path]; int 50; mov %[result], rax" : [result] "=m" (result) @@ -39,15 +39,15 @@ int64_t rm(const char* file){ return result; } -void close(size_t fd){ +void tlib::close(size_t fd){ asm volatile("mov rax, 302; mov rbx, %[fd]; int 50;" : /* No outputs */ : [fd] "g" (fd) : "rax", "rbx"); } -std::expected stat(size_t fd){ - stat_info info; +std::expected tlib::stat(size_t fd){ + tlib::stat_info info; int64_t code; asm volatile("mov rax, 301; mov rbx, %[fd]; mov rcx, %[buffer]; int 50; mov %[code], rax" @@ -56,14 +56,14 @@ std::expected stat(size_t fd){ : "rax", "rbx", "rcx"); if(code < 0){ - return std::make_expected_from_error(-code); + return std::make_expected_from_error(-code); } else { - return std::make_expected(info); + return std::make_expected(info); } } -std::expected statfs(const char* file){ - statfs_info info; +std::expected tlib::statfs(const char* file){ + tlib::statfs_info info; int64_t code; asm volatile("mov rax, 310; mov rbx, %[path]; mov rcx, %[buffer]; int 50; mov %[code], rax" @@ -72,13 +72,13 @@ std::expected statfs(const char* file){ : "rax", "rbx", "rcx"); if(code < 0){ - return std::make_expected_from_error(-code); + return std::make_expected_from_error(-code); } else { - return std::make_expected(info); + return std::make_expected(info); } } -std::expected read(size_t fd, char* buffer, size_t max, size_t offset){ +std::expected tlib::read(size_t fd, char* buffer, size_t max, size_t offset){ int64_t code; asm volatile("mov rax, 303; mov rbx, %[fd]; mov rcx, %[buffer]; mov rdx, %[max]; mov rsi, %[offset]; int 50; mov %[code], rax" : [code] "=m" (code) @@ -92,7 +92,7 @@ std::expected read(size_t fd, char* buffer, size_t max, size_t offset){ } } -std::expected write(size_t fd, const char* buffer, size_t max, size_t offset){ +std::expected tlib::write(size_t fd, const char* buffer, size_t max, size_t offset){ int64_t code; asm volatile("mov rax, 311; mov rbx, %[fd]; mov rcx, %[buffer]; mov rdx, %[max]; mov rsi, %[offset]; int 50; mov %[code], rax" : [code] "=m" (code) @@ -106,7 +106,7 @@ std::expected write(size_t fd, const char* buffer, size_t max, size_t of } } -std::expected clear(size_t fd, size_t max, size_t offset){ +std::expected tlib::clear(size_t fd, size_t max, size_t offset){ int64_t code; asm volatile("mov rax, 313; mov rbx, %[fd]; mov rcx, %[max]; mov rdx, %[offset]; int 50; mov %[code], rax" : [code] "=m" (code) @@ -120,7 +120,7 @@ std::expected clear(size_t fd, size_t max, size_t offset){ } } -std::expected truncate(size_t fd, size_t size){ +std::expected tlib::truncate(size_t fd, size_t size){ int64_t code; asm volatile("mov rax, 312; mov rbx, %[fd]; mov rcx, %[size]; int 50; mov %[code], rax" : [code] "=m" (code) @@ -134,7 +134,7 @@ std::expected truncate(size_t fd, size_t size){ } } -std::expected entries(size_t fd, char* buffer, size_t max){ +std::expected tlib::entries(size_t fd, char* buffer, size_t max){ int64_t code; asm volatile("mov rax, 308; mov rbx, %[fd]; mov rcx, %[buffer]; mov rdx, %[max]; int 50; mov %[code], rax" : [code] "=m" (code) @@ -148,7 +148,7 @@ std::expected entries(size_t fd, char* buffer, size_t max){ } } -std::expected mounts(char* buffer, size_t max){ +std::expected tlib::mounts(char* buffer, size_t max){ int64_t code; asm volatile("mov rax, 309; mov rbx, %[buffer]; mov rcx, %[max]; int 50; mov %[code], rax" : [code] "=m" (code) @@ -162,7 +162,7 @@ std::expected mounts(char* buffer, size_t max){ } } -std::expected mount(size_t type, size_t dev_fd, size_t mp_fd){ +std::expected tlib::mount(size_t type, size_t dev_fd, size_t mp_fd){ int64_t code; asm volatile("mov rax, 314; mov rbx, %[type]; mov rcx, %[mp]; mov rdx, %[dev]; int 50; mov %[code], rax" : [code] "=m" (code) @@ -176,7 +176,7 @@ std::expected mount(size_t type, size_t dev_fd, size_t mp_fd){ } } -std::string current_working_directory(){ +std::string tlib::current_working_directory(){ char buffer[128]; buffer[0] = '\0'; @@ -188,7 +188,7 @@ std::string current_working_directory(){ return {buffer}; } -void set_current_working_directory(const std::string& directory){ +void tlib::set_current_working_directory(const std::string& directory){ asm volatile("mov rax, 305; mov rbx, %[buffer]; int 50;" : /* No outputs */ : [buffer] "g" (reinterpret_cast(directory.c_str())) diff --git a/tlib/src/graphics.cpp b/tlib/src/graphics.cpp index 1789ed69..1c2d5ab9 100644 --- a/tlib/src/graphics.cpp +++ b/tlib/src/graphics.cpp @@ -20,49 +20,49 @@ uint64_t syscall_get(uint64_t call){ } // end of anonymous namespace -uint64_t graphics::get_width(){ +uint64_t tlib::graphics::get_width(){ return syscall_get(0x1000); } -uint64_t graphics::get_height(){ +uint64_t tlib::graphics::get_height(){ return syscall_get(0x1001); } -uint64_t graphics::get_x_shift(){ +uint64_t tlib::graphics::get_x_shift(){ return syscall_get(0x1002); } -uint64_t graphics::get_y_shift(){ +uint64_t tlib::graphics::get_y_shift(){ return syscall_get(0x1003); } -uint64_t graphics::get_bytes_per_scan_line(){ +uint64_t tlib::graphics::get_bytes_per_scan_line(){ return syscall_get(0x1004); } -uint64_t graphics::get_red_shift(){ +uint64_t tlib::graphics::get_red_shift(){ return syscall_get(0x1005); } -uint64_t graphics::get_green_shift(){ +uint64_t tlib::graphics::get_green_shift(){ return syscall_get(0x1006); } -uint64_t graphics::get_blue_shift(){ +uint64_t tlib::graphics::get_blue_shift(){ return syscall_get(0x1007); } -void graphics::redraw(char* buffer){ +void tlib::graphics::redraw(char* buffer){ asm volatile("mov rax, 0x1008; mov rbx, %[buffer]; int 50;" : : [buffer] "g" (buffer) : "rax", "rbx"); } -uint64_t graphics::mouse_x(){ +uint64_t tlib::graphics::mouse_x(){ return syscall_get(0x1100); } -uint64_t graphics::mouse_y(){ +uint64_t tlib::graphics::mouse_y(){ return syscall_get(0x1101); } diff --git a/tlib/src/io.cpp b/tlib/src/io.cpp index 8c9ff36a..baadd8d2 100644 --- a/tlib/src/io.cpp +++ b/tlib/src/io.cpp @@ -7,7 +7,7 @@ #include "tlib/io.hpp" -int64_t ioctl(size_t device, ioctl_request request, void* data){ +int64_t tlib::ioctl(size_t device, ioctl_request request, void* data){ int64_t code; asm volatile("mov rax, 0x2000; mov rbx, %[device]; mov rcx, %[request]; mov rdx, %[data]; int 50; mov %[code], rax" : [code] "=m" (code) diff --git a/tlib/src/malloc.cpp b/tlib/src/malloc.cpp index 01dc5389..1dc8ae53 100644 --- a/tlib/src/malloc.cpp +++ b/tlib/src/malloc.cpp @@ -84,8 +84,8 @@ bool expand_heap(malloc_header_chunk* current, size_t bytes = 0){ } //Allocate a new block of memory - auto old_end = brk_end(); - auto brk_end = sbrk(blocks * BLOCK_SIZE); + auto old_end = tlib::brk_end(); + auto brk_end = tlib::sbrk(blocks * BLOCK_SIZE); if(brk_end == old_end){ return false; @@ -123,7 +123,7 @@ void init_head(){ } //end of anonymous namespace -void* malloc(size_t bytes){ +void* tlib::malloc(size_t bytes){ if(unlikely(!init)){ init_head(); } @@ -191,7 +191,7 @@ void* malloc(size_t bytes){ return reinterpret_cast(block_start); } -void free(void* block){ +void tlib::free(void* block){ auto free_header = reinterpret_cast( reinterpret_cast(block) - sizeof(malloc_header_chunk)); @@ -202,7 +202,7 @@ void free(void* block){ insert_after(malloc_head, free_header); } -size_t brk_start(){ +size_t tlib::brk_start(){ size_t value; asm volatile("mov rax, 7; int 50; mov %[brk_start], rax" : [brk_start] "=m" (value) @@ -211,7 +211,7 @@ size_t brk_start(){ return value; } -size_t brk_end(){ +size_t tlib::brk_end(){ size_t value; asm volatile("mov rax, 8; int 50; mov %[brk_end], rax" : [brk_end] "=m" (value) @@ -220,7 +220,7 @@ size_t brk_end(){ return value; } -size_t sbrk(size_t inc){ +size_t tlib::sbrk(size_t inc){ size_t value; asm volatile("mov rax, 9; mov rbx, %[brk_inc]; int 50; mov %[brk_end], rax" : [brk_end] "=m" (value) @@ -230,17 +230,17 @@ size_t sbrk(size_t inc){ } void* operator new(uint64_t size){ - return malloc(size); + return tlib::malloc(size); } void operator delete(void* p){ - free(p); + tlib::free(p); } void* operator new[](uint64_t size){ - return malloc(size); + return tlib::malloc(size); } void operator delete[](void* p){ - return free(p); + return tlib::free(p); } diff --git a/tlib/src/net.cpp b/tlib/src/net.cpp index 5f6e5c40..c7dbbead 100644 --- a/tlib/src/net.cpp +++ b/tlib/src/net.cpp @@ -7,7 +7,7 @@ #include "tlib/net.hpp" -std::expected socket_open(network::socket_domain domain, network::socket_type type, network::socket_protocol protocol){ +std::expected tlib::socket_open(network::socket_domain domain, network::socket_type type, network::socket_protocol protocol){ int64_t fd; asm volatile("mov rax, 0x3000; mov rbx, %[type]; mov rcx, %[type]; mov rdx, %[protocol]; int 50; mov %[fd], rax" : [fd] "=m" (fd) @@ -21,7 +21,7 @@ std::expected socket_open(network::socket_domain domain, network::socket } } -void socket_close(size_t fd){ +void tlib::socket_close(size_t fd){ asm volatile("mov rax, 0x3001; mov rbx, %[fd]; int 50;" : /* No outputs */ : [fd] "g" (fd) diff --git a/tlib/src/print.cpp b/tlib/src/print.cpp index 5cbfeb1b..14a98d46 100644 --- a/tlib/src/print.cpp +++ b/tlib/src/print.cpp @@ -9,14 +9,14 @@ #include "tlib/print.hpp" -void print(char c){ +void tlib::print(char c){ asm volatile("mov rax, 0; mov rbx, %[c]; int 50" : //No outputs : [c] "g" (static_cast(c)) : "rax", "rbx"); } -void print(const char* s){ +void tlib::print(const char* s){ asm volatile("mov rax, 1; mov rbx, %[s]; int 50" : //No outputs : [s] "g" (reinterpret_cast(s)) @@ -30,39 +30,39 @@ void log(const char* s){ : "rax", "rbx"); } -void print(uint8_t v){ +void tlib::print(uint8_t v){ print(std::to_string(v)); } -void print(uint16_t v){ +void tlib::print(uint16_t v){ print(std::to_string(v)); } -void print(uint32_t v){ +void tlib::print(uint32_t v){ print(std::to_string(v)); } -void print(uint64_t v){ +void tlib::print(uint64_t v){ print(std::to_string(v)); } -void print(int8_t v){ +void tlib::print(int8_t v){ print(std::to_string(v)); } -void print(int16_t v){ +void tlib::print(int16_t v){ print(std::to_string(v)); } -void print(int32_t v){ +void tlib::print(int32_t v){ print(std::to_string(v)); } -void print(int64_t v){ +void tlib::print(int64_t v){ print(std::to_string(v)); } -void set_canonical(bool can){ +void tlib::set_canonical(bool can){ size_t value = can; asm volatile("mov rax, 0x20; mov rbx, %[value]; int 50;" : @@ -70,7 +70,7 @@ void set_canonical(bool can){ : "rax", "rbx"); } -void set_mouse(bool m){ +void tlib::set_mouse(bool m){ size_t value = m; asm volatile("mov rax, 0x21; mov rbx, %[value]; int 50;" : @@ -78,7 +78,7 @@ void set_mouse(bool m){ : "rax", "rbx"); } -size_t read_input(char* buffer, size_t max){ +size_t tlib::read_input(char* buffer, size_t max){ size_t value; asm volatile("mov rax, 0x10; mov rbx, %[buffer]; mov rcx, %[max]; int 50; mov %[read], rax" : [read] "=m" (value) @@ -87,7 +87,7 @@ size_t read_input(char* buffer, size_t max){ return value; } -size_t read_input(char* buffer, size_t max, size_t ms){ +size_t tlib::read_input(char* buffer, size_t max, size_t ms){ size_t value; asm volatile("mov rax, 0x11; mov rbx, %[buffer]; mov rcx, %[max]; mov rdx, %[ms]; int 50; mov %[read], rax" : [read] "=m" (value) @@ -96,7 +96,7 @@ size_t read_input(char* buffer, size_t max, size_t ms){ return value; } -keycode read_input_raw(){ +keycode tlib::read_input_raw(){ size_t value; asm volatile("mov rax, 0x12; int 50; mov %[input], rax" : [input] "=m" (value) @@ -105,7 +105,7 @@ keycode read_input_raw(){ return static_cast(value); } -keycode read_input_raw(size_t ms){ +keycode tlib::read_input_raw(size_t ms){ size_t value; asm volatile("mov rax, 0x13; mov rbx, %[ms]; int 50; mov %[input], rax" : [input] "=m" (value) @@ -114,14 +114,14 @@ keycode read_input_raw(size_t ms){ return static_cast(value); } -void clear(){ +void tlib::clear(){ asm volatile("mov rax, 100; int 50;" : //No outputs : //No inputs : "rax"); } -size_t get_columns(){ +size_t tlib::get_columns(){ size_t value; asm volatile("mov rax, 101; int 50; mov %[columns], rax" : [columns] "=m" (value) @@ -130,7 +130,7 @@ size_t get_columns(){ return value; } -size_t get_rows(){ +size_t tlib::get_rows(){ size_t value; asm volatile("mov rax, 102; int 50; mov %[rows], rax" : [rows] "=m" (value) @@ -139,29 +139,42 @@ size_t get_rows(){ return value; } -void print(const std::string& s){ +void tlib::print(const std::string& s){ return print(s.c_str()); } -void print_line(){ +void tlib::print_line(){ print('\n'); } -void print_line(const char* s){ +void tlib::print_line(const char* s){ print(s); print_line(); } -void print_line(size_t v){ +void tlib::print_line(size_t v){ print(v); print_line(); } -void print_line(const std::string& s){ +void tlib::print_line(const std::string& s){ print(s); print_line(); } +void tlib::user_logf(const char* s, ...){ + va_list va; + va_start(va, s); + + char buffer[512]; + vsprintf_raw(buffer, 512, s, va); + log(buffer); + + va_end(va); +} + +namespace tlib { + #include "printf_def.hpp" void __printf(const std::string& formatted){ @@ -172,13 +185,4 @@ void __printf_raw(const char* formatted){ print(formatted); } -void user_logf(const char* s, ...){ - va_list va; - va_start(va, s); - - char buffer[512]; - vsprintf_raw(buffer, 512, s, va); - log(buffer); - - va_end(va); -} +} // end of namespace tlib diff --git a/tlib/src/ssp.cpp b/tlib/src/ssp.cpp index 0d06af6c..aa99fb0d 100644 --- a/tlib/src/ssp.cpp +++ b/tlib/src/ssp.cpp @@ -15,9 +15,9 @@ extern "C" { uintptr_t __stack_chk_guard = STACK_CHK_GUARD; __attribute__((noreturn)) void __stack_chk_fail(){ - printf("Stack smashing detected \n"); + tlib::printf("Stack smashing detected \n"); //TODO printf("pid=%u\n", scheduler::get_pid()); - exit(1); + tlib::exit(1); } -} +} // end of extern "C" diff --git a/tlib/src/start.cpp b/tlib/src/start.cpp index 4a73e0f0..533ed97d 100644 --- a/tlib/src/start.cpp +++ b/tlib/src/start.cpp @@ -32,7 +32,7 @@ void _start(int argc, char* argv[]){ __cxa_finalize(nullptr); // Kill the process with the correct exit code - exit(code); + tlib::exit(code); } #define ATEXIT_MAX_FUNCS 32 diff --git a/tlib/src/system.cpp b/tlib/src/system.cpp index 04554c38..b591c02b 100644 --- a/tlib/src/system.cpp +++ b/tlib/src/system.cpp @@ -20,7 +20,7 @@ uint64_t syscall_get(uint64_t call){ } // end of anonymous namespace -void exit(size_t return_code) { +void tlib::exit(size_t return_code) { asm volatile("mov rax, 0x666; mov rbx, %[ret]; int 50" : //No outputs : [ret] "g" (return_code) @@ -29,7 +29,7 @@ void exit(size_t return_code) { __builtin_unreachable(); } -std::expected exec(const char* executable, const std::vector& params){ +std::expected tlib::exec(const char* executable, const std::vector& params){ const char** args = nullptr; if(!params.empty()){ args = new const char*[params.size()]; @@ -56,22 +56,22 @@ std::expected exec(const char* executable, const std::vector exec_and_wait(const char* executable, const std::vector& params){ +std::expected tlib::exec_and_wait(const char* executable, const std::vector& params){ auto result = exec(executable, params); if(result.valid()){ @@ -99,7 +99,7 @@ std::expected exec_and_wait(const char* executable, const std::vector