1. 02 Dec, 2024 1 commit
  2. 29 Nov, 2024 2 commits
    • greatbridf's avatar
      Merge branch 'fix' · 4602c4d7
      greatbridf authored
      Fixed the problem that there might be two processes handling page fault
      on the same page that is set copy on write. If they see that the
      `refcount` is greater than `1`, they might each clone the page and
      decrease the `refcount` of the old page. That will leave the old page
      unfreed with a `refcount == 0`, which will cause bug in buddy allocator
      when it tries to merge adjacent free pages.
      4602c4d7
    • greatbridf's avatar
  3. 28 Nov, 2024 2 commits
  4. 27 Nov, 2024 10 commits
  5. 26 Nov, 2024 2 commits
  6. 25 Nov, 2024 2 commits
  7. 23 Nov, 2024 2 commits
  8. 22 Nov, 2024 3 commits
    • greatbridf's avatar
      fix(UserString): register should be marked inout · d873af30
      greatbridf authored
      We actually modified the given register. So we need to mark it as
      clobbered to inform the compiler of that.
      d873af30
    • greatbridf's avatar
      fix(tty): some abnormal behavior in tty job control ops. · 1977d04c
      greatbridf authored
      Previous tty job control implementations are totally wrong. Rewrite
      these parts and have some changes in `init_script` to correctly assign
      a controlling terminal to the shell launched.
      1977d04c
    • greatbridf's avatar
      fix: deadlocks that happens on task switches · 6612cf8b
      greatbridf authored
      We might lock the `MMListInner` in some operation when we do a
      task switch. Then in the idle task, we try to switch page table.
      But that's impossible because we shouldn't do anything that could
      possibly put us in a sleeping state.
      
      Also, when we return from `schedule()` in `CondVar::wait()`, we might
      be waken up from some signals. We should clean ourselves from the
      waiters queue. Otherwise, we might be accidentally waken up by some
      other tasks and ends up in some inconsistent task scheduler state.
      6612cf8b
  9. 21 Nov, 2024 4 commits
  10. 20 Nov, 2024 1 commit
  11. 18 Nov, 2024 2 commits
  12. 08 Nov, 2024 1 commit
  13. 02 Nov, 2024 1 commit
  14. 30 Oct, 2024 1 commit
    • greatbridf's avatar
      [partial] feat: add sync stuffs · ae698248
      greatbridf authored
      feat: add sync primitives like CondVar Mutex Spin Semaphore to rust
      
      change: make Inode a trait again
      change: replace some of the Spin's with Mutex's or Semaphore's
      change: make kernel stacks 512KB in size
      change: save all file references as Dentry
      change: enable interrupts for ahci devices
      
      style: update clang-format and rustfmt
      ae698248
  15. 18 Oct, 2024 1 commit
  16. 16 Oct, 2024 2 commits
  17. 15 Oct, 2024 1 commit
  18. 01 Oct, 2024 1 commit
  19. 25 Sep, 2024 1 commit