/DragonOS/kernel/src/arch/x86_64/interrupt/ |
H A D | entry.rs | 299 set_intr_gate(32, 0, VirtAddr::new(irq_handler32 as usize)); in arch_setup_interrupt_gate() 300 set_intr_gate(33, 0, VirtAddr::new(irq_handler33 as usize)); in arch_setup_interrupt_gate() 301 set_intr_gate(34, 0, VirtAddr::new(irq_handler34 as usize)); in arch_setup_interrupt_gate() 302 set_intr_gate(35, 0, VirtAddr::new(irq_handler35 as usize)); in arch_setup_interrupt_gate() 303 set_intr_gate(36, 0, VirtAddr::new(irq_handler36 as usize)); in arch_setup_interrupt_gate() 304 set_intr_gate(37, 0, VirtAddr::new(irq_handler37 as usize)); in arch_setup_interrupt_gate() 305 set_intr_gate(38, 0, VirtAddr::new(irq_handler38 as usize)); in arch_setup_interrupt_gate() 306 set_intr_gate(39, 0, VirtAddr::new(irq_handler39 as usize)); in arch_setup_interrupt_gate() 307 set_intr_gate(40, 0, VirtAddr::new(irq_handler40 as usize)); in arch_setup_interrupt_gate() 309 set_intr_gate(41, 0, VirtAddr::new(irq_handler41 as usize)); in arch_setup_interrupt_gate() [all …]
|
H A D | trap.rs | 83 set_intr_gate(0, 0, VirtAddr::new(trap_divide_error as usize)); in arch_trap_init() 84 set_intr_gate(1, 0, VirtAddr::new(trap_debug as usize)); in arch_trap_init() 85 set_intr_gate(2, 0, VirtAddr::new(trap_nmi as usize)); in arch_trap_init() 86 set_system_trap_gate(3, 0, VirtAddr::new(trap_int3 as usize)); in arch_trap_init() 87 set_system_trap_gate(4, 0, VirtAddr::new(trap_overflow as usize)); in arch_trap_init() 88 set_system_trap_gate(5, 0, VirtAddr::new(trap_bounds as usize)); in arch_trap_init() 89 set_intr_gate(6, 0, VirtAddr::new(trap_undefined_opcode as usize)); in arch_trap_init() 90 set_intr_gate(7, 0, VirtAddr::new(trap_dev_not_avaliable as usize)); in arch_trap_init() 91 set_intr_gate(8, 0, VirtAddr::new(trap_double_fault as usize)); in arch_trap_init() 95 VirtAddr::new(trap_coprocessor_segment_overrun as usize), in arch_trap_init() [all …]
|
/DragonOS/kernel/src/driver/base/device/ |
H A D | device_number.rs | 10 pub const UNNAMED_MAJOR: Self = Self::new(0); 12 pub const IDE0_MAJOR: Self = Self::new(3); 13 pub const TTY_MAJOR: Self = Self::new(4); 14 pub const TTYAUX_MAJOR: Self = Self::new(5); 17 pub const INPUT_MAJOR: Self = Self::new(13); 19 pub const FB_MAJOR: Self = Self::new(29); 22 pub const UNIX98_PTY_MASTER_MAJOR: Self = Self::new(128); 23 pub const UNIX98_PTY_MAJOR_COUNT: Self = Self::new(8); 25 Self::new(Self::UNIX98_PTY_MASTER_MAJOR.0 + Self::UNIX98_PTY_MAJOR_COUNT.0); 27 pub const fn new(x: u32) -> Self { in new() method [all …]
|
/DragonOS/kernel/src/arch/x86_64/process/ |
H A D | table.rs | 10 pub const KERNEL_CS: SegmentSelector = SegmentSelector::new(1, Ring::Ring0); 12 pub const KERNEL_DS: SegmentSelector = SegmentSelector::new(2, Ring::Ring0); 14 pub const USER_DS: SegmentSelector = SegmentSelector::new(5, Ring::Ring3); 17 pub const USER_CS: SegmentSelector = SegmentSelector::new(6, Ring::Ring3); 19 static mut TSS_MANAGER: TSSManager = TSSManager::new(); 39 const fn new() -> Self { in new() method 41 tss: [TaskStateSegment::new(); PerCpu::MAX_CPU_NUM as usize], in new() 53 let selector = SegmentSelector::new(index, Ring::Ring0); in load_tr() 57 VirtAddr::new(Self::current_tss() as *mut TaskStateSegment as usize), in load_tr() 65 let gdt_vaddr = VirtAddr::new(&GDT_Table as *const _ as usize); in set_tss_descriptor()
|
/DragonOS/kernel/src/libs/lib_ui/ |
H A D | textui_no_alloc.rs | 16 pub static TRUE_LINE_NUM: AtomicI32 = AtomicI32::new(0); 17 pub static CHAR_PER_LINE: AtomicI32 = AtomicI32::new(0); 19 pub static NO_ALLOC_OPERATIONS_LINE: AtomicI32 = AtomicI32::new(0); 20 pub static NO_ALLOC_OPERATIONS_INDEX: AtomicI32 = AtomicI32::new(0); 64 let char = TextuiCharChromatic::new(Some(' '), frcolor, bkcolor); in no_init_textui_putchar_window() 69 LineId::new(NO_ALLOC_OPERATIONS_LINE.load(Ordering::SeqCst)), in no_init_textui_putchar_window() 70 LineIndex::new(NO_ALLOC_OPERATIONS_INDEX.load(Ordering::SeqCst)), in no_init_textui_putchar_window() 81 let char = TextuiCharChromatic::new(Some(' '), frcolor, bkcolor); in no_init_textui_putchar_window() 83 LineId::new(NO_ALLOC_OPERATIONS_LINE.load(Ordering::SeqCst)), in no_init_textui_putchar_window() 84 LineIndex::new(NO_ALLOC_OPERATIONS_INDEX.load(Ordering::SeqCst)), in no_init_textui_putchar_window() [all …]
|
H A D | textui.rs | 43 static ENABLE_PUT_TO_WINDOW: AtomicBool = AtomicBool::new(false); 77 let metadata = ScmUiFrameworkMetadata::new("TextUI".to_string(), ScmFramworkType::Text); in textui_framwork_init() 84 let initial_window = TextuiWindow::new( in textui_framwork_init() 90 let current_window: Arc<SpinLock<TextuiWindow>> = Arc::new(SpinLock::new(initial_window)); in textui_framwork_init() 96 Arc::new(SpinLock::new(LinkedList::new())); in textui_framwork_init() 100 __TEXTUI_FRAMEWORK = Some(Arc::new(TextUiFramework::new( in textui_framwork_init() 137 pub fn new(num: i32) -> Self { in new() method 152 LineId::new(self.0 + rhs) in add() 159 LineId::new(self.0 - rhs) in sub() 193 pub fn new(num: i32) -> Self { in new() method [all …]
|
/DragonOS/tools/debugging/logmonitor/src/backend/ |
H A D | mod.rs | 27 pub fn new(command_line_args: CommandLineArgs, sender: mpsc::Sender<Event>) -> Arc<Self> { in new() method 28 let r = Arc::new(Self { in new() 31 data: Arc::new(Mutex::new(BackendData::new())), in new() 32 main_thread: RwLock::new(None), in new() 33 threads: Mutex::new(Vec::new()), in new() 44 let mut backend = BackendThread::new(cmdargs, sd, Arc::downgrade(&instance), dt); in new() 63 pub fn new() -> Self { in new() method 80 fn new( in new() method 107 let mm_monitor = monitor::mm::MMLogMonitor::new(self.shared_data.clone()); in run_mm_monitor()
|
/DragonOS/kernel/src/arch/x86_64/driver/apic/ |
H A D | x2apic.rs | 17 return x86::cpuid::CpuId::new() in support() 89 unsafe { ApicId::new(rdmsr(IA32_X2APIC_APICID) as u32) } in id() 100 unsafe { LVT::new(reg, (rdmsr(reg.into()) & 0xffff_ffff) as u32).unwrap() } in read_lvt() 105 let cpuid = raw_cpuid::CpuId::new(); in mask_all_lvt() 107 self.set_lvt(LVT::new(LVTRegister::Timer, LVT::MASKED).unwrap()); in mask_all_lvt() 110 self.set_lvt(LVT::new(LVTRegister::Thermal, LVT::MASKED).unwrap()); in mask_all_lvt() 114 self.set_lvt(LVT::new(LVTRegister::PerformanceMonitor, LVT::MASKED).unwrap()); in mask_all_lvt() 117 self.set_lvt(LVT::new(LVTRegister::LINT0, LVT::MASKED).unwrap()); in mask_all_lvt() 118 self.set_lvt(LVT::new(LVTRegister::LINT1, LVT::MASKED).unwrap()); in mask_all_lvt() 120 self.set_lvt(LVT::new(LVTRegister::ErrorReg, LVT::MASKED).unwrap()); in mask_all_lvt()
|
/DragonOS/kernel/src/driver/base/map/ |
H A D | mod.rs | 12 pub(crate) const DEV_MAJOR_MAX: Major = Major::new(512); 15 pub(crate) const DEV_MAJOR_DYN_END: Major = Major::new(234); 17 pub(crate) const DEV_MAJOR_DYN_EXT_START: Major = Major::new(511); 18 pub(crate) const DEV_MAJOR_DYN_EXT_END: Major = Major::new(384); 28 pub fn new(data: Arc<dyn KObject>) -> Self { in new() method 39 Self(SpinLock::new(KObjMap::default())) in default() 49 Self(vec![BTreeMap::new(); KOBJMAP_HASH_SIZE]) in default() 73 DeviceNumber::new(dev_t.major(), dev_t.minor() + i as u32), in kobj_map() 74 Probe::new(data.clone()), in kobj_map() 93 let rm_dev_t = &DeviceNumber::new(dev_t.major(), dev_t.minor() + i as u32); in kobj_unmap() [all …]
|
/DragonOS/kernel/crates/rust-slabmalloc/src/ |
H A D | zone.rs | 18 SCAllocator::new(1 << 3), // 8 19 SCAllocator::new(1 << 4), // 16 20 SCAllocator::new(1 << 5), // 32 21 SCAllocator::new(1 << 6), // 64 22 SCAllocator::new(1 << 7), // 128 23 SCAllocator::new(1 << 8), // 256 24 SCAllocator::new(1 << 9), // 512 25 SCAllocator::new(1 << 10), // 1024 26 SCAllocator::new(1 << 11), // 2048 ], 67 pub const fn new() -> ZoneAllocator<'a> { in new() method [all …]
|
/DragonOS/kernel/src/mm/allocator/ |
H A D | slab.rs | 11 pub(crate) static mut SLABINITSTATE: AtomicBool = AtomicBool::new(false); 21 pub fn new() -> SlabAllocator { in new() method 24 zone: ZoneAllocator::new(), in new() 33 let boxed_page = ObjectPage::new(); in allocate() 53 if let Some(nptr) = NonNull::new(ptr) { in deallocate() 67 SLABALLOCATOR = Some(SlabAllocator::new()); in slab_init() 80 SlabUsage::new(0, 0) in slab_usage()
|
/DragonOS/kernel/crates/unified-init/macros/src/ |
H A D | lib.rs | 65 let mut output = proc_macro2::TokenStream::new(); in do_unified_init() 84 return Err(syn::Error::new( in check_function_signature() 104 return Err(syn::Error::new( in check_function_signature() 115 return Err(syn::Error::new(tuple.span(), "Expected empty tuple")); in check_function_signature() 118 return Err(syn::Error::new(type_arg.span(), "Expected empty tuple")); in check_function_signature() 121 return Err(syn::Error::new( in check_function_signature() 137 return Err(syn::Error::new( in check_function_signature() 143 return Err(syn::Error::new( in check_function_signature() 154 Err(syn::Error::new( in check_function_signature() 174 let initializer_name_ident = syn::Ident::new(&initializer_name, function.sig.ident.span()); in generate_unified_initializer() [all …]
|
/DragonOS/tools/debugging/logmonitor/src/ |
H A D | logging.rs | 10 let mut builder = simple_logger::SimpleLogger::new().with_level(LevelFilter::Info); in init() 12 let mut result = LoggingInitResult::new(None); in init() 16 builder = builder.with_backend(Box::new(TUILoggingBackend::new(channel.0))); in init() 32 pub fn new(tui_receiver: Option<mpsc::Receiver<String>>) -> Self { in new() method 42 pub fn new(sender: mpsc::Sender<String>) -> Self { in new() method
|
H A D | main.rs | 41 let mut app = App::new("DragonOS Log Monitor"); in start_headless_app() 42 let events = EventHandler::new(250); in start_headless_app() 43 let _app_backend = logmonitor::backend::AppBackend::new(cmdargs.clone(), events.sender()); in start_headless_app() 66 let mut app = App::new("DragonOS Log Monitor"); in start_tui_app() 72 let backend = CrosstermBackend::new(io::stderr()); in start_tui_app() 73 let terminal = Terminal::new(backend)?; in start_tui_app() 74 let events = EventHandler::new(250); in start_tui_app() 75 let mut tui = Tui::new(terminal, events); in start_tui_app() 77 let _app_backend = logmonitor::backend::AppBackend::new(cmdargs.clone(), tui.events.sender()); in start_tui_app()
|
/DragonOS/kernel/src/driver/virtio/ |
H A D | virtio_impl.rs | 25 let page_num = PageFrameCount::new( in dma_alloc() 45 NonNull::new(MMArch::phys_2_virt(paddr).unwrap().data() as _).unwrap(), in dma_alloc() 57 let page_count = PageFrameCount::new( in dma_dealloc() 62 let vaddr = VirtAddr::new(vaddr.as_ptr() as usize); in dma_dealloc() 72 PhysPageFrame::new(PhysAddr::new(paddr)), in dma_dealloc() 83 NonNull::new((MMArch::phys_2_virt(PhysAddr::new(paddr))).unwrap().data() as _).unwrap() in mmio_phys_to_virt() 92 let vaddr = VirtAddr::new(buffer.as_ptr() as *mut u8 as usize); in share()
|
/DragonOS/kernel/src/driver/tty/pty/ |
H A D | mod.rs | 32 static PTM_DRIVER: Lazy<Arc<TtyDriver>> = Lazy::new(); 33 static PTS_DRIVER: Lazy<Arc<TtyDriver>> = Lazy::new(); 102 let other_tty = TtyCore::new(other_driver.clone(), core.index()); in pty_common_install() 105 let port0: Arc<dyn TtyPort> = Arc::new(DefaultTtyPort::new()); in pty_common_install() 106 let port1: Arc<dyn TtyPort> = Arc::new(DefaultTtyPort::new()); in pty_common_install() 175 UserBufferReader::new(arg.as_ptr::<i32>(), core::mem::size_of::<i32>(), true)?; in pty_set_lock() 188 UserBufferWriter::new(arg.as_ptr::<i32>(), core::mem::size_of::<i32>(), true)?; in pty_get_lock() 195 UserBufferReader::new(arg.as_ptr::<i32>(), core::mem::size_of::<i32>(), true)?; in pty_set_packet_mode() 212 UserBufferWriter::new(arg.as_ptr::<i32>(), core::mem::size_of::<i32>(), true)?; in pty_get_packet_mode() 223 let idt = IdTable::new( in unix98pty_init() [all …]
|
/DragonOS/kernel/src/time/ |
H A D | jiffies.rs | 16 pub static ref DEFAULT_CLOCK: Arc<ClocksourceJiffies> = ClocksourceJiffies::new(); 40 CycleNum::new(clock()) in read() 73 pub fn new() -> Arc<Self> { in new() method 77 mask: ClocksourceMask::new(0xffffffff), in new() 81 flags: ClocksourceFlags::new(0), in new() 82 watchdog_last: CycleNum::new(0), in new() 83 cs_last: CycleNum::new(0), in new() 86 cycle_last: CycleNum::new(0), in new() 88 let jiffies = Arc::new(ClocksourceJiffies(SpinLock::new(InnerJiffies { in new()
|
/DragonOS/kernel/src/driver/block/cache/ |
H A D | cached_block_device.rs | 44 CSPACE = Some(LockedCacheSpace::new(CacheSpace::new())); in init() 45 CMAPPER = Some(LockedCacheMapper::new(CacheMapper::new())); in init() 67 let block_iter = BlockIter::new(lba_id_start, count, BLOCK_SIZE); in read() 104 None => fail_ans.push(FailData::new(i.lba_id(), index)), in check_able_to_read() 187 let block_iter = BlockIter::new(lba_id_start, count, BLOCK_SIZE); in immediate_write() 198 pub fn new(space: CacheSpace) -> Self { in new() method 199 LockedCacheSpace(RwLock::new(space)) in new() 230 pub fn new() -> Self { in new() method 232 root: Vec::new(), in new() 234 frame_selector: Box::new(SimpleFrameSelector::new()), in new() [all …]
|
/DragonOS/tools/debugging/logmonitor/src/backend/monitor/ |
H A D | mm.rs | 33 pub(crate) fn new(shared_data: Arc<Mutex<BackendData>>) -> Arc<Self> { in new() method 56 threads: Mutex::new(Vec::new()), in new() 57 stop_child_threads: AtomicBool::new(false), in new() 58 self_ref: Weak::new(), in new() 59 mm_log_receiver: Mutex::new(mm_log_worker_mpsc.1), in new() 63 let r = Arc::new(r); in new() 79 LogSet::<usize, ObjectWrapper<AllocatorLog>>::new("mm_allocator_log".to_string(), None); in run() 125 let mut monitor_thread = MMMonitorThread::new(monitor_weak, PathBuf::from(km)); in create_threads() 146 pub fn new(mm_log_monitor: Weak<MMLogMonitor>, kmem_path: PathBuf) -> Self { in new() method 202 let mut logs = Vec::new(); in process_logs() [all …]
|
/DragonOS/kernel/src/arch/riscv64/mm/ |
H A D | init.rs | 27 pub(super) static mut INITIAL_PGTABLE_VALUE: PhysAddr = PhysAddr::new(0); 53 KERNEL_BEGIN_PA = PhysAddr::new(start_pa); in init_kernel_addr() 54 KERNEL_END_PA = PhysAddr::new(end_pa); in init_kernel_addr() 56 KERNEL_BEGIN_VA = VirtAddr::new(boot_text_start_pa as usize); in init_kernel_addr() 57 KERNEL_END_VA = VirtAddr::new(_end as usize); in init_kernel_addr() 75 let mut bump_allocator = BumpAllocator::<RiscV64MMArch>::new(0); in riscv_mm_init() 134 let buddy_allocator = unsafe { BuddyAllocator::<MMArch>::new(bump_allocator).unwrap() }; in riscv_mm_init() 147 let mapper = crate::mm::page::PageMapper::<MMArch, _>::new( in riscv_mm_init() 164 static FLAG: AtomicBool = AtomicBool::new(false); in set_inner_allocator() 184 let base = PhysAddr::new(info.paddr as usize); in remap_at_low_address() [all …]
|
/DragonOS/kernel/src/arch/x86_64/include/asm/ |
H A D | cmpxchg.h | 35 : [new] "q"(__new) \ 46 : [new] "q"(__new) \ 57 : [new] "q"(__new) \ 68 : [new] "q"(__new) \ 80 #define arch_try_cmpxchg(ptr, old_ptr, new) \ argument 81 __raw_try_cmpxchg((ptr), (old_ptr), (new), sizeof(*ptr))
|
/DragonOS/kernel/src/mm/ |
H A D | no_init.rs | 28 SpinLock::new(EarlyIoRemapPages::new()); 54 pub const fn new() -> Self { in new() method 59 bmp: StaticBitmap::new(), in new() 75 let vaddr = VirtAddr::new(p); in allocate_page() 101 pub const fn new() -> Self { in new() method 144 let flags: EntryFlags<MMArch> = EntryFlags::new().set_write(true); in pseudo_map_phys() 153 let flags: EntryFlags<MMArch> = EntryFlags::new().set_write(false).set_execute(true); in pseudo_map_phys_ro() 168 let mut pseudo_allocator = PseudoAllocator::<MMArch>::new(); in pseudo_map_phys_with_flags() 170 let mut mapper = crate::mm::page::PageMapper::<MMArch, _>::new( in pseudo_map_phys_with_flags() 196 let mut pseudo_allocator = PseudoAllocator::<MMArch>::new(); in pseudo_unmap_phys() [all …]
|
H A D | ucontext.rs | 57 static LOCKEDVMA_ID_ALLOCATOR: IdAllocator = IdAllocator::new(0, usize::MAX); 65 pub fn new(create_stack: bool) -> Result<Arc<Self>, SystemError> { in new() method 66 let inner = InnerAddressSpace::new(create_stack)?; in new() 68 inner: RwLock::new(inner), in new() 70 return Ok(Arc::new(result)); in new() 131 pub fn new(create_stack: bool) -> Result<Self, SystemError> { in new() method 134 mappings: UserMappings::new(), in new() 136 elf_brk_start: VirtAddr::new(0), in new() 137 elf_brk: VirtAddr::new(0), in new() 162 let new_addr_space = AddressSpace::new(false)?; in try_clone() [all …]
|
/DragonOS/kernel/src/syscall/ |
H A D | mod.rs | 67 static INIT_FLAG: AtomicBool = AtomicBool::new(false); in init() 150 UserBufferWriter::new(buf_vaddr as *mut u8, len, from_user)?; in handle() 161 UserBufferReader::new(buf_vaddr as *const u8, len, from_user)?; in handle() 182 UserBufferWriter::new(buf_vaddr as *mut u8, len, frame.is_from_user())?; in handle() 194 UserBufferReader::new(buf_vaddr as *const u8, len, frame.is_from_user())?; in handle() 213 let new_brk = VirtAddr::new(args[0]); in handle() 235 let virt_addr: VirtAddr = VirtAddr::new(buf_vaddr); in handle() 256 let virt_path_ptr = VirtAddr::new(path_ptr); in handle() 257 let virt_argv_ptr = VirtAddr::new(argv_ptr); in handle() 258 let virt_env_ptr = VirtAddr::new(env_ptr); in handle() [all …]
|
/DragonOS/kernel/src/driver/timers/hpet/ |
H A D | mod.rs | 22 let p = NonNull::new(self as *const HpetRegisters as *mut HpetRegisters).unwrap(); in timers_num() 29 let p = NonNull::new(self as *const HpetRegisters as *mut HpetRegisters).unwrap(); in counter_clock_period() 40 let p = NonNull::new(self as *const HpetRegisters as *mut HpetRegisters).unwrap(); in main_counter_value() 46 let p = NonNull::new(self as *const HpetRegisters as *mut HpetRegisters).unwrap(); in write_main_counter_value() 52 let p = NonNull::new(self as *const HpetRegisters as *mut HpetRegisters).unwrap(); in general_config() 57 let p = NonNull::new(self as *const HpetRegisters as *mut HpetRegisters).unwrap(); in write_general_config() 63 let p = NonNull::new(self as *const HpetRegisters as *mut HpetRegisters).unwrap(); in general_intr_status()
|