Subversion Repositories HelenOS

Rev

Show changed files | Details | Compare with Previous | Blame | RSS feed

Filtering Options

Rev Age Author Path Log message Diff
4605 5603 d 6 h decky /branches/snapshot/ add task snapshoting branch  
4490 5632 d 0 h decky /trunk/kernel/ remove redundant index_t and count_t types (which were always quite ambiguous and not actually needed)  
4452 5632 d 14 h decky /trunk/kernel/generic/ send notification also during task creation
(the intention is to be able to pair task creation and destruction to avoid missed waits)
 
4448 5633 d 2 h decky /trunk/kernel/generic/ add very simple implementation of task destruction notification
(which will be later used for waiting on a task)
 
4407 5646 d 22 h jermar /trunk/ Add IPC_M_CONNECTION_CLONE and IPC_M_CONNECT_ME.  
4252 5690 d 0 h decky /trunk/kernel/ move event notification to the ipc directory (where it probably belogs to, side-by-side to IRQ notifications)
cleanup the notification code a little bit (there is probably no need to allocate two structured dynamically)
 
3947 5734 d 2 h jermar /trunk/ This is the evil commit. In particular, it does:

- introduces more powerful pseudo code for userspace IRQ top-half handlers
- changes the internals of IRQ dispatching
- simplifies the kernel's i8042 driver
- adapts the uspace i8042 driver to make use of the new pseudocode
- breaks all other architectures except ia32
- breaks almost all existing drivers
- breaks switching between uspace and kernel drivers
 
3819 5760 d 23 h jermar /trunk/ Introduce a new syscall: SYS_IPC_FORWARD_SLOW.  
3761 5787 d 0 h decky /trunk/ send notification to uspace console when switching from kernel console  
3620 5824 d 8 h svoboda /trunk/kernel/generic/ Move stuff related to kbox to a separate struct.  
3446 5890 d 12 h svoboda /trunk/kernel/generic/include/ipc/ Fix: Rename ipc_kbox.h to kbox.h  
3438 5891 d 7 h svoboda /trunk/ Merge syscall tracer (trace) and relevant part of udebug interface from tracing to trunk.  
3395 5899 d 0 h jermar /trunk/kernel/generic/ Kernel's ipc_data_t and uspace's ipc_call_t must be in sync.

This commit fixes a problem introduced in revision 3362, when
ipc_data_t was enlarged by the caller_phone member. This resulted
in sys_ipc_wait_for_call() passing larger structure to uspace
than requested, leading to a random damage of userspace memory.
 
3370 5911 d 22 h jermar /trunk/kernel/generic/ Synchronous IPC must be interruptible.  
3362 5915 d 1 h jermar /trunk/kernel/generic/ Fix processing of answers to forwarded masqueraded calls.  
3020 6002 d 23 h jermar /trunk/kernel/generic/ Turn phone->lock into mutex.  
2802 6056 d 8 h jermar /trunk/kernel/generic/ Fix initialization of answerbox->task in ipc_answerbox_init.
Contributed by Jiri Svoboda.
 
2677 6152 d 3 h jermar /trunk/ Rename IPC_M_AS_AREA_SEND to IPC_M_SHARE_OUT. Rename IPC_M_AS_AREA_RECV to
IPC_M_SHARE_IN. Provide user-friendly wrappers for these methods so that even
dummies can get it right. Some applications using simpler protocols still use
these methods directly.
 
2676 6152 d 9 h jermar /trunk/ Simplify the IPC_M_DATA_WRITE protocol. Do not pass the source address space
virtual address to the recipient. This feature was not used anyway. Now
IPC_M_DATA_WRITE and IPC_M_DATA_READ are feature-aligned.
 
2662 6159 d 22 h jermar /trunk/ Add support for IPC_M_DATA_READ calls.  
2660 6160 d 0 h jermar /trunk/ Rename IPC_M_DATA_SEND to IPC_M_DATA_WRITE. Now, when we also add
IPC_M_DATA_READ, it will not clash and cause confusion with userspace wrappers
such as ipc_data_receive(). Rename the forementioned wrappers to
ipc_data_write_send(), ipc_data_write_receive() and ipc_data_write_deliver().
 
2638 6178 d 23 h jermar /trunk/ Sync IPC comments with IPC code.  
2637 6179 d 0 h cejka /trunk/ Extended IPC_M_CONNECT_TO_ME to use 3 user defined parameters.
Phone identifier is passed in ARG5.
 
2635 6180 d 23 h cejka /trunk/ Function ipc_connect_me_to sends 3 user defined arguments now.
One argument added also to ipc_forward_fast.
Fixed devmap and improved its test.
 
2626 6188 d 9 h jermar /trunk/kernel/generic/ Support for 5 payload arguments for IPC irq notifications and the pseudo code.  
2623 6189 d 5 h jermar /trunk/kernel/generic/ Introduce the IPC_FF_ROUTE_FROM_ME forwarding flag.  
2622 6189 d 5 h jermar /trunk/ Add mode argument to IPC forward.
This argument can be used to modify the way forward behaves.
 
2619 6192 d 22 h jermar /trunk/ Modify ipc_answer_*() to make use of all six syscall arguments. The recommended
means of answering calls is via the ipc_answer_m() macros (where m denotes the
number of return arguments) that automatically decide between the fast register
version or the slow universal version of ipc_answer().
 
2618 6193 d 10 h jermar /trunk/ Modify asynchronous IPC to make use of all six syscall arguments. The preferred
means of asynchronous communication is now via the set of ipc_call_async_m()
macros, where m is the number of payload arguments passed to the kernel. These
macros will automatically decide between the fast and the universal slow version
of ipc_call_async.
 
2615 6194 d 7 h jermar /trunk/ Modify synchronous IPC to make use of all six syscall arguments. The preferred
means of synchronous communication is now via the set of ipc_call_sync_m_n()
macros, where m is the number of payload arguments passed to the kernel and n is
the number of return values. These macros will automatically decide between the
fast and the universal slow version of ipc_call_sync.
 
2614 6195 d 5 h jermar /trunk/kernel/generic/include/ipc/ Grow the IPC data structures from 3 to 5 payload arguments.
No IPC API changes so far.
 
2550 6246 d 3 h cejka /trunk/ Fixed naming convention in IPC.  
2527 6258 d 8 h jermar /trunk/ VFS work.

Added mandatory VFS_LOOKUP

Handling of VFS_REGISTER request should be now more or less complete.
Added code that inserts the new fs_info structure into the list of registered
filesystems and creates a callback connection to the client FS.
 
2523 6259 d 11 h jermar /trunk/ VFS work.

Now, each VFS connection fibril will accept requests in a loop. The idea is that
each connection will be potentially reused for multiple requests before it is
closed by the server.

More VFS_REGISTER bits. Make use of the IPC_M_DATA_SEND wrappers introduced in
the previous commit.

Add enum members for more VFS operations.
 
2494 6324 d 23 h jermar /trunk/kernel/generic/ Implement a new mechanism for copying data between two address spaces based on
IPC. New system method IPC_M_DATA_SEND is introduced. The implementation is
generic and does not make use of any possible architecture optimizations such as
direct copy from one address space to another.
 
2493 6325 d 3 h jermar /trunk/kernel/generic/include/ipc/ Collapse IPC method numbers.  
2471 6349 d 0 h jermar /trunk/ Greatly improve comments in the IPC layer.
Now I think I finally start to understand our IPC internals :-)
 
2106 6483 d 6 h jermar /trunk/kernel/ Merge as_t structure into one and leave the differring parts in as_genarch_t.

Indentation and formatting changes in header files.
 
2105 6487 d 7 h decky /trunk/kernel/ move ipc structures to ipc.h  
2098 6488 d 1 h decky /trunk/kernel/generic/ avoid conflict with potential keyword