b2ca24d013
remap_file_pages: reject special ranges
...
special ranges are:
- VR_REMOTE
- VR_IO_NOCACHE
- VR_RESERVED
2014-07-02 15:30:54 +09:00
11bb334bd4
support mremap(2)
...
fixes #22
2014-07-02 15:30:52 +09:00
90aaf9dc9c
support remap_file_pages(2)
...
fixes #21
2014-06-30 17:33:51 +09:00
770eae0186
support sigaltstack
2014-06-25 13:45:33 +09:00
bbb7f77706
interrupt syscall of signal recieved process
2014-06-11 21:06:52 +09:00
19fc50ee05
Merge branch 'master' of postpeta.pccluster.org:mckernel
2014-06-10 10:42:55 +09:00
2f4f3628f9
support tgkill
2014-06-10 10:42:29 +09:00
3f13862a98
ptrace: add error stub to prevent mcexec from waiting
...
In LTP's ptrace03 test,
there is a exit() preceded by ptrace(PTRACE_TRACEME).
In this case, processes will be usually finished immediately.
But mcexec will fall into waiting for parent's ptrace(PTRACE_CONT),
because mcexec sends itself a signal in processing of exit().
2014-06-09 19:03:59 +09:00
4f32042c5f
getrlimit: delegate inquiries about fs resource
...
This commit corrects following system/library calls.
* getdtablesize()
* getrlimit(RLIMIT_FSIZE/RLIMIT_LOCKS/RLIMIT_NOFILE)
* sysconf(_SC_OPEN_MAX)
* ulimit(UL_GETFSIZE)
refs #31
refs #32
2014-05-26 16:47:56 +09:00
514d75b685
execve(): supporting syscall and mcexec modifications
2014-05-22 17:39:13 +09:00
2fead93f10
negative error code for ECHILD
2014-05-19 13:04:09 +09:00
81a78be20a
clean up per process structure in exit_group() and fix wait4() on self bug
2014-05-19 12:49:36 +09:00
3e830521c1
move rt_sigaction to device dependent
...
fix call kill(getpid(), ) after sigaction aborted
2014-05-16 09:50:06 +09:00
ac65e6c869
wait4(): support for ECHILD error check
2014-05-13 10:28:27 +09:00
39b336ca2f
wait4(): save exit status only if requested
2014-05-12 10:29:58 +09:00
c15c2a2024
fix process refcount so that process structure is still valid when final release() is called in schedule()
2014-04-24 17:09:14 +09:00
0e348e6295
SIGCHLD and wait4(), i.e. wait()/waitpid() implementation
2014-04-23 13:33:18 +09:00
d6c0ea7627
assign the same TID and PID to the new process after fork()
2014-04-15 20:40:40 +09:00
d090e3f28d
Merge branch 'master' of postpeta.pccluster.org:mckernel
2014-04-13 14:13:46 +09:00
b93db2411c
check CLONE_VM in clone_flags for determining whether clone()/fork() is requested
2014-04-11 15:41:17 +09:00
7eeafb0d85
change parameter types of arch-regs to "void *"
2014-04-03 15:33:34 +09:00
583c9355cd
fix argument of set_tid_address()
2014-04-02 18:02:04 +09:00
cf442e6a14
fork(): preliminary version (no wait()/waitpid() support yet)
2014-04-02 14:07:38 +09:00
dabca28e4b
Merge branch 'master' of postpeta.pccluster.org:mckernel
2014-03-30 16:14:43 +09:00
e112aa8b06
remove DMA call
2014-03-30 16:14:19 +09:00
ccd770ba24
use per-process wait queues for system call request processing in mcexec so that multiple processes can share the per-core system call channels
2014-03-27 19:31:42 +09:00
dca831b94f
add error check codes for madvise()
...
The advice will be ignored even if this madvise() succeed.
2014-02-05 11:31:03 +09:00
b2b9b566c8
implement munlock()
2014-02-05 11:31:01 +09:00
f2a6515448
implement mlock()
2014-02-05 11:30:59 +09:00
fcbaa9726c
correct the syscall return type
...
Long size syscall return values such as shmat()'s and lseek()'s are
broken, because lower 32 bits are only returned.
2014-02-05 11:30:57 +09:00
93c5385f65
implement mmap(MAP_LOCKED)
2014-01-27 18:59:36 +09:00
f0a52d4519
implement mmap(MAP_POPULATE)
...
populate_process_memory() function is not efficient,
because whether every small page is present is checked.
2014-01-27 18:50:38 +09:00
26d68d391d
signal part 4 (sigsuspend etc)
2014-01-24 10:14:49 +09:00
6992b829a0
delegate the open(2) with the generic forwarding.
...
This commit solves a problem that causes getpwnam()/getpwuid() to return
NULL.
2014-01-14 18:50:20 +09:00
8411f353fe
signal part 3 (EFAULT)
2014-01-13 10:52:29 +09:00
0465cc16b9
signal (part 2) sigpending
2014-01-07 19:52:06 +09:00
a8c249ddaf
signal (part 1)
2014-01-07 11:57:57 +09:00
9e00275120
fork & execve return EOPNOTSUPP (temporary hack)
2013-12-18 16:10:13 +09:00
96576aaee7
fix general protection fault caused by SIGALARM
2013-12-16 13:45:45 +09:00
03521e9c2c
add copyrights
2013-11-14 16:49:40 +09:00
bbbc6e1570
add shared mapped file (in progress)
...
implemented:
- Pages can be shared between maps.
- A change made to a map is written to the file, at munmap().
not yet implemented:
- VM operation during page IO execution.
Because page IO is executed with VM's lock.
- Page IO, which does not change a file size with any case.
When munmap() races with truncate(), the file size may be changed
illegally.
2013-11-11 18:18:33 +09:00
bdc02bb687
refuse the write to a read-only memory
...
It was able to change a read-only memory using a system call that
forwarded to host.
To fix this, when read-only mmap(), it places read-only vm_area in the
mcexec's space.
2013-11-06 16:06:58 +09:00
89be2af09a
sys_mprotect: remove blocking of free_pages()
...
Because mprotect() does not release physical page, this is unnecessary.
2013-11-06 16:06:01 +09:00
27172ad413
support private mapped file
2013-10-15 12:30:41 +09:00
4fb6620f3a
sys_getrlimit: modified to return mcexec's RLIMIT_STACK
2013-10-11 22:36:16 +09:00
47722baf2e
add mcexec's PTE cleaning to munmap()/mmap(MAP_FIXED)
...
The correction of the problem that MKL application does not start
2013-09-05 13:19:54 +09:00
0e0684cd1c
support shared anonymous mapping
...
mmap(..., MAP_SHARED|MAP_ANONYMOUS, ...) is possible now.
shared mapped file is still not implemented.
2013-09-04 19:03:31 +09:00
877f1be797
fix error message
...
- ekprintf("sys_mmap(%lx,%lx,%x,%x,%x,%lx):unknown flags %lx\n",
+ ekprintf("sys_mmap(%lx,%lx,%x,%x,%x,%lx):unknown flags %x\n",
^^
2013-09-04 19:03:31 +09:00
fe05e1107c
fix alignment of struct syscall_request variable
...
since used with DMA, it must be IHK_DMA_ALIGN
2013-09-03 19:37:37 +09:00
040fb64b22
add terminate thread
2013-09-02 00:39:22 +09:00