<div dir="ltr">Hello everyone,<div><br></div><div style>This week I've studied how to implement a virtual driver that will be used for communication between the userspace daemon and clients. After a talk on irc with Markus and Swildner, it was decided to write the code in sys/dev/misc.</div>
<div style><br></div><div style>One of the driver's purpose is to initiate the communication between daemon and clients. I have studied a similar scenario in Android, where a driver called Binder is used for IPC purposes. Using it, two unrelated processes can communicate using unnamed pipes. The server makes pipe() call and announces the driver <span style="font-family:arial,sans-serif;font-size:13px">that it want to establish a connection with a client using that pipe. The driver installs for the client a file descriptor which points to the specified pipe.</span></div>
<div style><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div style><span style="font-family:arial,sans-serif;font-size:13px">The daemon use poll in order to accept requestes from new clients (data from driver) and messages from old clients (data from pipes).</span></div>
<div style><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div style><div style="font-family:arial,sans-serif;font-size:13px">Here [1] is my repo where I have created a new branch.</div><div style="font-family:arial,sans-serif;font-size:13px">
<br></div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">[1] <a href="http://gitweb.dragonflybsd.org/~larisagrigore/dragonfly.git">http://gitweb.dragonflybsd.org/~larisagrigore/dragonfly.git</a></div>
</div><div style><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div style><span style="font-family:arial,sans-serif;font-size:13px">Larisa</span></div></div>