Commit Graph

327 Commits

Author SHA1 Message Date
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
bdc945cb34 mcexec: wait for the signal to be received
The mcexec may send a signal to itself in order that the mcexec
terminates abnormally.
Generally, the signal is delivered to the thread which sent the signal.
In this case, the signal terminates the mcexec immediately.

However, if the signal is delivered to another thread,
the thread which sent the signal can call exit(3)
before the signal terminates the mcexec.
2014-01-24 20:22:54 +09:00
069bb10a02 make mcexec ignore garbage request
When a signal is forwarded from McKernel,
ioctl(MCEXEC_UP_WAIT_SYSCALL) may return EINTR error.
In this case, though no syscall request has been received,
the mcexec starts to process the syscall requst that is garbage.
2014-01-24 20:20:45 +09:00
f5b4057074 add vsyscall
- getcpu() is not implemented. It will cause SIGILL.
- gettimeofday() and time() are implemented with syscall.
2014-01-24 20:18:36 +09:00
26d68d391d signal part 4 (sigsuspend etc) 2014-01-24 10:14:49 +09:00
c421965542 relocate a program interpreter to the map_start
This commit makes a system call that dereferences a NULL pointer fail.
2014-01-14 18:55:16 +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
afc38718a0 add MCEXEC_UP_STRNCPY_FROM_USER
It allows a mcexec to execute the strncpy_from_user().
2014-01-14 18:50:19 +09:00
e86ffb0b57 do write back only MAP_SHARED pages
Fix a problem that cause write reference to a MAP_PRIVATE mapping to
change the underlying file.
2014-01-14 18:48:43 +09:00
8411f353fe signal part 3 (EFAULT) 2014-01-13 10:52:29 +09:00
2a55f3d718 install manual 2014-01-08 17:13:49 +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
9926d469d8 remove debug print 2013-12-18 15:33:37 +09:00
96576aaee7 fix general protection fault caused by SIGALARM 2013-12-16 13:45:45 +09:00
8e4cbfeea1 print exit code or signal, if stderr is a tty 2013-12-10 14:45:37 +09:00
52e818c3ec Merge branch 'master' of postpeta.pccluster.org:mckernel 2013-12-10 14:41:56 +09:00
daec3b2f32 propagate exit code and signal 2013-12-10 14:40:22 +09:00
c01cccd1b2 Add "ihkosctl 0 shutdown" to mcreboot.sh 2013-12-10 14:17:55 +09:00
6d9bf6ad84 Added the full path of mcreboot.1 in configure 2013-11-26 17:06:54 +09:00
dc9f282d58 adding the mcshutdown command 2013-11-19 06:08:43 +09:00
eff0b92c25 1) DATA --> DATE
2) version and date variables are visible in makefile and documents
    		AC_SUBST
2013-11-18 08:09:28 +09:00
2f89e26ac0 add modification history entry to the following files,
mckernel/lib/include/*.h
  mckernel/arch/x86/elfboot/*
  mckernel/arch/x86/kboot/main.c
  mckernel/arch/x86/kernel/*
  mckernel/lib/page_alloc.c
  mckernel/lib/string.c
  mckernel/lib/include/ihk/*
except
  mckernel/arch/x86/kernel/include/signal.h
  mckernel/arch/x86/tools/mcreboot-attached-mic.sh.in
  mckernel/arch/x86/kernel/include/syscall_list.h
  mckernel/arch/x86/kernel/syscall.c
.
2013-11-14 18:30:06 +09:00
0551fb26dd affinity.h, waitq.h copyright 2013-11-14 17:40:59 +09:00
506caa7e7f page.h, process.h, rlimit.h, syscall.h, time.h, timer.h copyright 2013-11-14 17:34:30 +09:00
821396be7b amemcpy.c, cls.h, init.h, kmalloc.h, kmsg.hcopoyright 2013-11-14 17:30:43 +09:00
611d14da67 Merge branch 'master' of postpeta.pccluster.org:mckernel 2013-11-14 17:26:14 +09:00
d10416cb04 for release 2013-11-14 17:26:03 +09:00
6bcec77d51 Merge branch 'master' of postpeta.pccluster.org:mckernel 2013-11-14 17:21:54 +09:00
2f63b7ed95 futex.h copyright 2013-11-14 17:21:47 +09:00
384328c6bc add copyright notice to the following files,
mckernel/lib/include/*.h
  mckernel/arch/x86/elfboot/*
  mckernel/arch/x86/kboot/main.c
  mckernel/arch/x86/kernel/*
  mckernel/lib/page_alloc.c
  mckernel/lib/string.c
  mckernel/lib/include/ihk/*
except
  mckernel/arch/x86/kernel/include/signal.h
  mckernel/arch/x86/tools/mcreboot-attached-mic.sh.in
  mckernel/arch/x86/kernel/include/syscall_list.h
  mckernel/arch/x86/kernel/syscall.c
.
2013-11-14 17:09:58 +09:00
cd04de3131 cls.c, copy.c, debug.c, listeners.c, mikc.c copyright 2013-11-14 17:00:37 +09:00
03521e9c2c add copyrights 2013-11-14 16:49:40 +09:00
d126a35d48 Merge branch 'master' of postpeta.pccluster.org:mckernel 2013-11-14 16:27:39 +09:00
e5890aa949 typo fix 2013-11-14 16:27:11 +09:00
dcea4fefb3 ap.c, futex.c, jhash.h, timer.c, waitq.c copyrights 2013-11-14 16:20:08 +09:00
3f60324d4e add copyright 2013-11-14 15:55:00 +09:00
334fe81cdb remove rbtree 2013-11-14 13:07:00 +09:00
98fb5bf091 check cpu_local_var initialized 2013-11-13 23:06:11 +09:00
392357e9d2 catch signal when before kernel init 2013-11-13 15:43:49 +09:00
2f5be14425 manifest software version 2013-11-12 17:15:19 +09:00
04cef6f073 Merge branch 'master' of postpeta.pccluster.org:mckernel 2013-11-12 10:43:05 +09:00
3f2db99057 move boot-attached-mic.sh.in to arch/x86/tools 2013-11-12 10:41:51 +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
d35140ab0b Merge branch 'master' of postpeta.pccluster.org:mckernel 2013-11-07 00:30:46 -08:00
3c490dcfab Added <sys/resource.h> which is required by getrlimit(2).
modified:   executer/user/mcexec.c
2013-11-07 00:29:17 -08:00