31 |
Installation on ia32 |
Installation on ia32 |
32 |
-------------------- |
-------------------- |
33 |
|
|
34 |
Prerequisites: Pistachio-0.4. You can find information about how to |
Prerequisites: Pistachio-0.4 with the patch below. You can find |
35 |
download the Pistachio source distribution (which includes the kernel |
information about how to download the Pistachio source distribution |
36 |
and sigma0) at the following URL: |
(which includes the kernel and sigma0) at the following URL: |
37 |
|
|
38 |
http://www.l4ka.org/projects/pistachio/download.php |
http://www.l4ka.org/projects/pistachio/download.php |
39 |
|
|
69 |
module /boot/task |
module /boot/task |
70 |
module /boot/task |
module /boot/task |
71 |
module /boot/task |
module /boot/task |
72 |
|
|
73 |
|
|
74 |
|
Pistachio Patch |
75 |
|
--------------- |
76 |
|
|
77 |
|
The following patch fixes a problem with IPC propagation. |
78 |
|
|
79 |
|
2004-10-08 Marcus Brinkmann <marcus@gnu.org> |
80 |
|
|
81 |
|
* src/api/v4/ipc.cc (SYS_IPC): If propagating, modify the |
82 |
|
originator's partner to wait for the new receiver if the |
83 |
|
originator is in a closed wait for the sender. |
84 |
|
|
85 |
|
Index: ipc.cc |
86 |
|
=================================================================== |
87 |
|
RCS file: /public-cvs/pistachio/kernel/src/api/v4/ipc.cc,v |
88 |
|
retrieving revision 1.57.4.6 |
89 |
|
diff -u -p -r1.57.4.6 ipc.cc |
90 |
|
--- ipc.cc 3 Jun 2004 13:58:57 -0000 1.57.4.6 |
91 |
|
+++ ipc.cc 7 Oct 2004 22:36:12 -0000 |
92 |
|
@@ -292,6 +292,9 @@ SYS_IPC (threadid_t to_tid, threadid_t f |
93 |
|
&& (current->get_space() == virt_sender->get_space() || |
94 |
|
current->get_space() == to_tcb->get_space())) |
95 |
|
{ |
96 |
|
+ if (virt_sender->get_state().is_waiting() && |
97 |
|
+ virt_sender->get_partner() == sender_id) |
98 |
|
+ virt_sender->set_partner(to_tid); |
99 |
|
sender_id = current->get_virtual_sender(); |
100 |
|
} |
101 |
|
else |
102 |
|
|