Commit Graph

23 Commits

Author SHA1 Message Date
Amit Mahajan
2b340c9f2f 1. Old pending files cleaned from public repo. 2. Thread_create routines removed from timer_service and kmi_service. 3. Sconstruct of libdev updated. 2010-03-30 16:17:22 +05:30
Bahadir Balban
74b5963fcb Kernel updates since December 2009 2010-03-25 01:12:40 +02:00
Bahadir Balban
d85ccdb3fe Fixed few more anomalies with threaded irqs.
There is a bug that causes the sleeping irq
thread to never wake up. Investigating.
2009-12-13 20:35:04 +02:00
Bahadir Balban
0c4bd69357 Reimplemented atomic destructive read. Revised irq control capabilities. 2009-12-13 18:49:35 +02:00
Bahadir Balban
c7069a8e8e Fixed minor issues on capability list sharing. 2009-12-13 18:02:47 +02:00
Bahadir Balban
8fe15ba811 Fixed all compilation errors with timer service 2009-12-12 15:31:01 +02:00
Bahadir Balban
32c0bb3a76 Converted all wait/wakeup runqueue lock/unlock paths to irq versions.
Irqs can now touch runqueues and do async wakeups. This necessitated
that we implement all wake up wait and runqueue locking work with irqs.

All this, assumes that in an SMP setup we may have cross-cpu wake ups,
runqueue manipulation. If we later decide that we only wake up threads
in the current container, (and lock containers to cpus) we won't really
need spinlocks, or irq disabling anymore. The current set up might be
trivially less responsive, but is more flexible.
2009-12-12 01:20:14 +02:00
Amit Mahajan
57f157c4a5 And now we have working thread demo container. 2009-12-09 12:05:06 +05:30
Amit Mahajan
b106aa902f test and thread_demo container compiling, but crashing at runtime 2009-12-08 14:01:06 +05:30
Amit Mahajan
8d2571cd1f Capability print functions shifted to l4lib and various capability.h
cleaned
2009-12-08 13:02:48 +05:30
Bahadir Balban
2c93de65bf Removed 2 arguments from l4_capability_control
l4_capability_control works well for almost all system calls
using a buffer pointer to the capability that it operates on.

Only for sharing/granting of capability lists, it is yet to be
decided how to provide a grant target id.
2009-12-02 16:47:05 +02:00
Bahadir Balban
b12349f2e4 Moved all threading functions to libl4/include/l4lib/thread/* 2009-12-02 16:15:47 +02:00
Amit Mahajan
41a64fcd23 Independent compilation of libl4 and libmem working fine. 2009-11-29 11:45:48 +05:30
Amit Mahajan
b53cc73747 Testing Inter container IPC for UART service 2009-11-29 11:45:47 +05:30
Bahadir Balban
e0c40ece5d Added a new irq_control system call
This is currently an empty call. It will be used for registering,
receiving and releasing irqs.
2009-11-23 16:46:51 +02:00
Bahadir Balban
328040e98a Renamed all thread symbols in l4lib with l4lib_ prefix. They were clasing with mm0
The threading work will be revised and prefixes changed to a more meaningful name
later on.
2009-11-23 13:18:58 +02:00
Bahadir Balban
e690949b3b tcb_alloc_init of l4lib was clashing with mm0 definitions. 2009-11-23 12:59:33 +02:00
Bahadir Balban
877b2cedc7 Integrated libl4thread with libl4. Added device number to device caps.
A 16-bit device number or id further distinguishes a device on the
system in addition to the device type. This is meant to be used for
the very first identification of the device for further probing. Any
further info is available by userspace mapping and probing.
2009-11-22 21:34:18 +02:00
Bahadir Balban
e8f002f879 Fixed most of userspace (mm0) for capability manipulation 2009-11-07 19:43:05 +02:00
Bahadir Balban
d306d6b451 posix: Fixing mm0 mapping task pages incorrectly
Modifying task_virt_to_page() so that it takes into account page
protections. If mm0 writes to a task page that is meant to be
read-only, (e.g. the zero page) the design is broken.

Every access to a task's page will take the page fault route,
and the page fault handler will return the page instead of 0.
2009-11-05 18:25:26 +02:00
Bahadir Balban
35a5dc4c92 Added userland support for exregs/read, mm0 slightly more graceful for illegal access 2009-11-05 15:56:01 +02:00
Bahadir Balban
7ba7a2e796 Added a simplified ascii_to_int() implementation.
Removed dependency on hard-coded pager id. Pager id is now passed
as an environment string `pagerid' to tasks. Alternatively, this
could take space in the utcb of each task.
2009-10-17 18:48:30 +03:00
Bahadir Balban
ece106e591 Removed posix container files, moved libl4 to conts, moving linux module to conts as well 2009-09-04 13:59:07 +03:00