Frans Kaashoek
8ca56e9e0b
memmove(dst, src, 0) leads to overflow in while(n-- > 0)
as n
is uint64 (thanks
...
Matúš Jókay <matus.jokay@stuba.sk>)
2021-09-01 07:29:12 -04:00
yzhu
a103113db0
fix ld warning: undefined symbol _entry
2021-08-31 20:58:58 -04:00
Pavan Maddamsetti
e07ca66145
comment
2021-08-31 14:27:33 -04:00
l0stman
19ff379661
exec() only accepts MAXARG arguments
...
The terminating NULL string is already included (see sys_exec()).
2021-08-31 14:26:43 -04:00
l0stman
9195142959
Assert that the size in mappages() is always positive
...
If va % PGSIZE == 0 and size == 0, we have last < a at the start of
the loop so we might never terminate. That being said, this
particular case couldn't be triggered for now.
2021-08-31 14:20:32 -04:00
kimjungwow
f55def8a64
Change inode cache
in main.c to inode table
2021-08-31 14:17:39 -04:00
amane-uehara
dd6d5d0a41
I fixed a typo in the comment.
2021-08-31 14:16:59 -04:00
OptimisticSide
1226b09dc4
Remove setproc prototype
2021-08-31 14:14:38 -04:00
Vadim Kolontsov
f524198792
fix comment for 'sepc'
2021-08-31 14:12:36 -04:00
FIXED-TERM Chen Ian (BT-CO/QMM5)
8d4ff0bc1e
fix typos in user/usertest.c & kernel/log.c
2021-08-31 14:10:14 -04:00
Jonathan Behrens
9655f71758
Configure PMP at boot
2021-08-30 16:27:52 -04:00
Robert Morris
6de0381d61
check for alignment just once
2021-08-10 07:12:41 -04:00
Frans Kaashoek
077323a8f0
Rename icache to itable
...
The inode cache isn't really a cache. The main purpose of it is to
allow for synchronization (locking individual inodes), providing
long-lived references to inodes, and ensuring that there is only inode
in memory.
2020-11-23 19:30:15 -05:00
Frans Kaashoek
b4c2851bb3
Be principled: acquire lock first
2020-11-05 19:50:46 -05:00
Robert Morris
38084bcea8
proc_tree_lock -> wait_lock
2020-11-05 19:50:46 -05:00
Robert Morris
ba8d9f4808
don't over-lock in exit()
2020-11-05 19:50:46 -05:00
Robert Morris
47323c97cf
oops
2020-11-05 06:56:51 -05:00
Robert Morris
2875069973
Frans' proc_lock.
2020-11-05 06:56:51 -05:00
Robert Morris
b48ea5d220
free proc if kalloc fails
2020-11-05 06:56:51 -05:00
Robert Morris
5e392531c0
hopefully make writei more correct
2020-11-05 06:56:51 -05:00
Robert Morris
e1bb4c7434
test for closed pipe or killed on every char, not just if pipe full
2020-11-05 06:56:51 -05:00
Robert Morris
329935eca8
fix uart.c to work with UART_TX_BUF_SIZE == 1
2020-11-05 06:56:51 -05:00
Robert Morris
13dccb0380
consolewrite does not need cons.lock -- can lead to sleep() with lock held
2020-11-05 06:56:51 -05:00
Frans Kaashoek
d4cecb269f
kvmmake() makes a complete kernel page table, matching Figure 3.3
2020-10-14 20:28:16 -04:00
Fumiya Shigemitsu
93378618df
Fix minor typos
2020-10-14 20:28:14 -04:00
Robert Morris
bebecfd6fd
more explicable scratch area size for machine-mode timer interrupts
2020-10-05 19:30:27 -04:00
Frans Kaashoek
c199afe4c8
Don't map the CLINT, since it never used in the kernel in supervisor mode
2020-10-05 19:30:27 -04:00
Robert Morris
c61cc69413
eliminate virtio DMA into kernel stacks.
2020-10-05 19:30:27 -04:00
Robert Morris
3092fe2c9e
improve virtio_disk comments; bring it closer to wording in the spec
2020-10-05 19:30:27 -04:00
Robert Morris
548ffc97e1
don't unpin if recovering -- the resulting negative refcnt suppresses next unpin
2020-10-05 19:30:27 -04:00
Robert Morris
aeaf610c67
avoid deadlock by disk intr acking interrupt first, then processing ring
2020-10-05 19:30:27 -04:00
Fumiya Shigemitsu
9c8d1e2909
Fix minor typos
2020-10-03 16:36:20 -04:00
Frans Kaashoek
f2827b2c7b
Clarify CLINT and PLIC acronym
2020-10-03 16:36:20 -04:00
Frans Kaashoek
6750608824
When either_copyin/out fails, return an error from write/read
...
Add a test to check that read/write return an error
2020-10-03 16:36:20 -04:00
Matt Harvey
6781ac0036
Corrects order of UART RX/TX interrupt enable bits
...
(per http://byterunner.com/16550.html and manually tested in qemu bare metal echo)
2020-09-14 14:49:57 -07:00
Robert Morris
490f91ab53
move panicked check to uart.c
2020-08-28 09:00:41 -04:00
Robert Morris
748809e1b3
suppress write() output after panic()
2020-08-28 09:00:41 -04:00
Frans Kaashoek
0bb2533f73
Adjust a few prototypes to be explicit that they don't take arguments
2020-08-21 11:00:45 -04:00
Robert Morris
5860dcd07d
usertest for exec() out of memory recovery
...
and fix a few exec() bugs
2020-08-21 11:00:45 -04:00
Robert Morris
95dad4c061
x
2020-08-17 08:18:23 -04:00
Robert Morris
f2ec6777bd
fix a bug in the out-of-memory handling code in exec
2020-08-17 08:18:23 -04:00
Robert Morris
8dc71a257d
handle another out-of-memory in fork(). the policy here is not consistent,
...
since other calls (e.g. exec()) panic on out of memory.
2020-08-17 08:18:23 -04:00
Robert Morris
bc51626aab
try to handle a few of the possible out-of-memory errors in fork()
2020-08-17 08:18:23 -04:00
Robert Morris
a8dd44cf59
modify uvmunmap() to be in aligned pages
...
fix a bug in fork() recovering from out of memory
2020-08-17 08:18:23 -04:00
Robert Morris
e283514ad0
pa isn't needed in the uvmunmap() loop
2020-08-17 08:18:23 -04:00
Frans Kaashoek
5dace67371
Typo (thanks yt <jaichenhengjie@qq.com>)
2020-08-10 16:43:33 -04:00
Frans Kaashoek
0502342335
Merge pull request #9 from d0iasm/riscv
...
update initcode to avoid using the compressed extension
2020-08-10 13:54:58 -04:00
Frans Kaashoek
93ca5550b8
Merge pull request #10 from takahirox/VirtioInterruptAck
...
Write virtio interrupt ack register in virtio_disk_intr()
2020-08-10 13:24:57 -04:00
Frans Kaashoek
d28c5d9837
Merge pull request #6 from jrrk2/riscv
...
Update ramdisk.c
2020-08-10 13:14:14 -04:00
Frans Kaashoek
c31d35d803
Merge branch 'riscv' into riscv
2020-08-10 13:05:17 -04:00