On 19 Dec 2013, at 23:55, Adam Lackorzynski <[email protected]> wrote:
> Hi, Hi Adam, > > On Thu Dec 19, 2013 at 02:03:33 +0100, cem akpolat wrote: >> On 19 Dec 2013, at 01:04, cem akpolat <[email protected]> wrote: >>> On 19 Dec 2013, at 00:36, Adam Lackorzynski <[email protected]> >>> wrote: >>>> On Wed Dec 18, 2013 at 12:08:39 +0100, cem akpolat wrote: >>>>> I am quite new to the microkernel concept and I am trying to somehow >>>>> build an IRQ mechanism between client and server. There are two >>>>> questions that I want to ask: >>>>> >>>>> 1- Is it possible to receive an IRQ message being sent by Server on >>>>> the client and handle it? I tried to apply that on the shared_ds >>>>> examples. However what I see is the IRQ registration could be done >>>>> only on the server side. How can a client, in a shared memory >>>>> case,receive an IRQ request from server and how can a server send an >>>>> IRQ request (in other words trigger an IRQ) to the client. >>>> >>>> For something such as shared memory, typically two IRQs are used, one >>>> for each direction. So both sides can trigger the other and also receive >>>> notifications. >> >> I have forgotten to mention on your explanation, you mean actually >> that I should also use a server_object on the client side for >> receiving IRQ. >> >>> This is actually the point that I have attempted to figure out until >>> now. We see an example for server side for the registration of IRQ >>> object. However there is no such a thing on the client side. If >>> there is, I couldn’t find it which means that I have to keep reading >>> the code. The simple question is actually how we can listen IRQ >>> request on the cline side, especially in which source code should I >>> search the response? > > Shared memory is typically between partners of the same type, so both > typically have, abstractly, some event reception facility. Contrary for > a typical client+server setup, the server does not request anything from > the client. > Now you could use a predefined server-loop for implementing the shared > memory but you might also want to look at the shmc library > (+ examples/libs/shmc) which wraps shared memory handling for easier > use. Other location to look at could be the l4shmnet driver in L4Linux > that implements network via shared memory. I habe already tried to run the example locating under examples/lib/shmc, however, somehow the compiled code could’n be loaded by ned. It is printed out Ned: loading file: ‘rom/shmc.lua’ and stays there. I have thought that it might be possible that I don’t give the right parameter in the lua script, but there is actually one parameter to given is the name of the compiled file which is “rom/ex_shmc”. Should I add some other parameters or the problem could be related to other things? > >>>>> 2- How can we remove or disable the server.loop mechanism? What is the >>>>> role of this function? >>>> >>>> This function implements the receiving part of a server and dispatches >>>> incoming messages into the server functions that you're probably seen in >>>> the examples. If you do not want to use that server-loop functionality, >>>> for example, because it does not fit your needs, you just do something >>>> different replacing the server.loop() call. Is that your intention? >>>> >>> >>> I have seen the loop code and its working mechanism as well as have >>> noticed how to manipulate it. Honestly, the code is in a >>> considerable manner huge and it is quite easy to muddle the whole >>> thing. Probably, I would change this server loop according to my >>> conditions. > > It's built with some hooks that can be used to adapt it to specific > requirements if wanted. > > > > Adam > -- > Adam [email protected] > Lackorzynski http://os.inf.tu-dresden.de/~adam/ _______________________________________________ l4-hackers mailing list [email protected] http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
