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

[tyndur-devel] [PATCH 2/3] libc: lio_compat_eof()



* libc: Den von FILE unabhängigen Teil von feof() in eine eigene
  Funktion lio_compat_eof() herausgesplittet

Signed-off-by: Kevin Wolf <kevin@xxxxxxxxxx>
---
 src/modules/include/lostio.h         |    3 +++
 src/modules/lib/lostio/client/file.c |    7 +++++++
 src/modules/lib/stdlibc/file.c       |    8 ++------
 3 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/src/modules/include/lostio.h b/src/modules/include/lostio.h
index e5b90f2..f67e7ab 100644
--- a/src/modules/include/lostio.h
+++ b/src/modules/include/lostio.h
@@ -203,6 +203,9 @@ size_t lio_compat_read(void* dest, size_t blocksize, size_t blockcount,
 size_t lio_compat_write(const void* src, size_t blocksize, size_t blockcount,
     io_resource_t* io_res);
 
+/// Prueft, ob das Ende des Streams erreicht ist
+int lio_compat_eof(io_resource_t* io_res);
+
 /// Stream-Position setzen
 bool lio_seek(io_resource_t* io_res, uint64_t offset, int origin);
 
diff --git a/src/modules/lib/lostio/client/file.c b/src/modules/lib/lostio/client/file.c
index 6140f6a..3b789b4 100644
--- a/src/modules/lib/lostio/client/file.c
+++ b/src/modules/lib/lostio/client/file.c
@@ -187,4 +187,11 @@ size_t lio_compat_write(const void* src, size_t blocksize, size_t blockcount,
     return resp;
 }
 
+int lio_compat_eof(io_resource_t* io_res)
+{
+    io_eof_request_t eof_request;
+    eof_request.id = io_res->id;
 
+    return rpc_get_dword(io_res->pid, "IO_EOF  ", sizeof(io_eof_request_t),
+        (char*) &eof_request);
+}
diff --git a/src/modules/lib/stdlibc/file.c b/src/modules/lib/stdlibc/file.c
index 1a99417..8a50f0f 100644
--- a/src/modules/lib/stdlibc/file.c
+++ b/src/modules/lib/stdlibc/file.c
@@ -544,15 +544,11 @@ int feof(FILE* io_res)
     if (io_res->ungetc_count != 0) {
         return 0;
     }
-    
-    io_eof_request_t eof_request;
-    eof_request.id = io_res->res->id;
-    
+
     //Auch hier könnte mit Daten im Buffer ein falsches Ergebnis rauskommen
     fflush(io_res);
 
-    return rpc_get_dword(io_res->res->pid, "IO_EOF  ", sizeof(io_eof_request_t),
-        (char*) &eof_request);
+    return lio_compat_eof(io_res->res);
 }
 
 
-- 
1.6.0.2