[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Minios-devel] [PATCH 1/2] lib/vfscore: Implemented stdin fop



Added the stdin operation inside stdio.c. The sdtdio
is mapped by default to fd 0.

Signed-off-by: Vlad-Andrei Badoiu <vlad_andrei.badoiu@xxxxxxxxxxxxxxx>
---
 lib/vfscore/stdio.c | 26 +++++++++++++++++++++++---
 1 file changed, 23 insertions(+), 3 deletions(-)

diff --git a/lib/vfscore/stdio.c b/lib/vfscore/stdio.c
index c631f5f..6acbb32 100644
--- a/lib/vfscore/stdio.c
+++ b/lib/vfscore/stdio.c
@@ -35,19 +35,38 @@
 
 #include <vfscore/file.h>
 #include <uk/plat/console.h>
+#include <uk/essentials.h>
+
+static ssize_t stdin_read(struct vfscore_file *vfscore_file __unused,
+                         void *buf, size_t count)
+{
+       int read_count;
+
+       read_count = ukplat_cink(buf, count);
+
+       return read_count;
+}
 
 /* One function for stderr and stdout */
-static ssize_t stdout_write(struct vfscore_file *vfscore_file, const void *buf,
-                            size_t count)
+static ssize_t stdout_write(struct vfscore_file *vfscore_file __unused,
+                           const void *buf, size_t count)
 {
-       (void) vfscore_file;
        return ukplat_coutk(buf, count);
 }
 
+static struct vfscore_fops stdin_fops = {
+       .read = stdin_read,
+};
+
 static struct vfscore_fops stdout_fops = {
        .write = stdout_write,
 };
 
+static struct vfscore_file  stdin_file = {
+       .fd = 0,
+       .fops = &stdin_fops,
+};
+
 static struct vfscore_file  stdout_file = {
        .fd = 1,
        .fops = &stdout_fops,
@@ -61,6 +80,7 @@ static struct vfscore_file  stderr_file = {
 
 void init_stdio(void)
 {
+       vfscore_install_fd(0, &stdin_file);
        vfscore_install_fd(1, &stdout_file);
        vfscore_install_fd(2, &stderr_file);
 }
-- 
2.19.1


_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.