1
0
Fork 0
mirror of https://github.com/hermitcore/libhermit.git synced 2025-03-30 00:00:15 +01:00
Commit graph

47 commits

Author SHA1 Message Date
Stefan Lankes
e1bf63d863 disable IPIs to wakeup cores
because the halt state is only used to shutdown the system
2016-03-06 13:22:48 +01:00
Stefan Lankes
c577d5bebb reduce the number of FPU restoring 2016-02-15 08:54:49 +01:00
Stefan Lankes
513cc6576e check the FPU owner before restoring the FPU registers 2016-02-15 01:14:55 +01:00
Stefan Lankes
4e04aeecc8 cores goes into the halt state after the termination of the application 2016-02-01 02:29:23 +01:00
Stefan Lankes
26e2d6caa6 use different stack sizes for idle and application tasks 2016-01-29 15:45:35 +01:00
Stefan Lankes
6181cf01e8 remove typo 2016-01-27 23:45:12 +01:00
Stefan Lankes
f9058f51e5 increase the interoperability between LwIP and newlib
- create own socket functions for newlib
- exchange error numbers between newlib and LwIP
- add LWIP_FD_BIT to mark a file descriptor as LwIP file descriptor
- add netio example
2016-01-10 03:13:31 +01:00
Stefan Lankes
dccbccbbd6 on a shutdown request, we shutdown the network und flush the cache 2016-01-05 23:17:27 +01:00
Stefan Lankes
c6878be07a remove duplication of the page tables 2016-01-04 17:28:51 +01:00
Stefan Lankes
a7cb623747 remove IPI for a TLB shootdown
HermitCore is an single address space operating system
=> a TLB shootdown isn't required
=> we have only to check if the page tables have an valid entry
=> if yes, flush TLB and return
=> if no, create a new page frame and map it into the address space
2016-01-04 16:27:19 +01:00
Stefan Lankes
ba28643e3e add implementation of sys_sem_cancelablewait
- add nicer debug messages
- add current version of our pthread_library
2016-01-04 01:33:37 +01:00
Stefan Lankes
1c58494785 remove typos 2016-01-01 20:50:34 +01:00
Stefan Lankes
f33f4e1047 some cleanups, add some debug messages 2016-01-01 17:48:03 +01:00
Stefan Lankes
a8661c1fb8 add a platform independent function to manage the TLS 2015-12-30 09:51:03 +01:00
Stefan Lankes
1dce82e27d add TLS and rudimental pthread support into the libos version 2015-12-30 02:17:23 +01:00
Stefan Lankes
4a549ead41 add first draft of HermitCore as libOS 2015-12-29 02:22:41 +01:00
Stefan Lankes
1c436520b3 remove obsolete file system 2015-11-15 22:24:58 +01:00
Stefan Lankes
d13e3a4432 add helper function to determine the next free core
- we start with the second core, because the first is used by the LwIP thread
2015-11-09 23:54:03 +01:00
Stefan Lankes
cacd070d24 enable the support of dynamic ticks
- a dynamic oneshoot timer is used to wakeup the system instead of
  a periodic timer
2015-10-06 13:48:25 +02:00
Stefan Lankes
e7cddc3e7e add support of proxy processes 2015-10-03 01:43:17 +02:00
Stefan Lankes
cde3d9dfba start the integration of LwIP 2015-09-13 21:28:30 +02:00
Stefan Lankes
be9ed3064d preliminary works to use the gs register in user space 2015-09-13 14:51:25 +02:00
Stefan Lankes
034098048b add initialization of tls_file_size and tls_mem_size 2015-09-08 08:48:52 +02:00
Stefan Lankes
b4e5bfef75 start new threads in round-robin manner over all cores
we assume OpenMP applications
=> number of threads is (normaly) equal to the number of
cores
=> search next available core
2015-09-06 10:41:51 +02:00
Stefan Lankes
7b54dca40f set task to invalid after freeing of all allocated data 2015-08-28 08:00:54 +02:00
Stefan Lankes
213e4518d1 frees the memory of a finished task after the switch to the next task 2015-08-17 12:51:39 +02:00
Stefan Lankes
221d90f02d add initial support of threads 2015-08-09 14:34:36 +02:00
Stefan Lankes
ebeba4c6f0 allocate memory outside the critical section 2015-07-26 18:50:32 +02:00
Stefan Lankes
8aa55a90dc prepare kernel to run on one core (without SMP suppor) 2015-07-24 21:12:05 +02:00
Stefan Lankes
45cae3f991 replace create_stack by a call of kmalloc 2015-07-24 06:45:43 +02:00
Stefan Lankes
fce8249caf code cleanups, increasing the readability, add some comments 2015-07-24 06:27:46 +02:00
Stefan Lankes
8289b76cf9 rename function per_core_set into set_per_core 2015-07-21 18:44:13 +02:00
Stefan Lankes
fed1d028a2 useage of GS selector to determine "per core data"
=> redesign of the system call interface
=> set RSP0 in TSS by a context switch
2015-07-19 11:12:05 +02:00
Stefan Lankes
cce69cfe44 add support of sys_times (=> clock()) 2015-07-16 22:33:29 +02:00
Stefan Lankes
8db1094ce4 move cleanup code to correct position (do_exit) 2015-07-13 06:49:46 +02:00
Stefan Lankes
6ba3252012 stores the FPU registers not before another task want to use them 2015-07-12 16:39:27 +02:00
Stefan Lankes
b254df8afa some code cleanups 2015-07-11 17:04:07 +02:00
Stefan Lankes
2f97bcfecb remove some debug messages 2015-07-11 09:58:38 +02:00
Stefan Lankes
4db6d86ad4 fix calculation of the kernel stack, remove some typos 2015-07-11 00:56:15 +02:00
Stefan Lankes
19fed0bd87 add the support of user-level tasks 2015-07-11 00:16:27 +02:00
Stefan Lankes
11ae987bae define create_task as static function, some code cleanups 2015-07-08 22:16:00 +02:00
Stefan Lankes
6b0c6145d2 remove obsolete debug message 2015-06-27 20:13:49 +02:00
Stefan Lankes
2eddb0bb89 integrate lwIP into HermitCore
- add timer support, which is required for lwIP
2015-06-11 09:20:34 +02:00
Stefan Lankes
1a256ada95 add helper function to run a task on a specific core 2015-05-31 07:58:05 +02:00
Stefan Lankes
047951bafd enable SMP support 2015-05-31 00:30:13 +02:00
Stefan Lankes
f781f4923b prepare kernel to support SMP
- only startup code is missing
2015-05-27 00:04:01 +02:00
Stefan Lankes
d7ec3d4f14 HermitCore is independent to the Linux kernel => move to an own subdirectory 2015-05-23 14:35:45 +02:00