A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
| inline |
side by side
Implement file open read and stat in simix.
[simgrid.git]
/
src
/
simix
/
smx_user.c
diff --git
a/src/simix/smx_user.c
b/src/simix/smx_user.c
index
667fb0b
..
e26d97f
100644
(file)
--- a/
src/simix/smx_user.c
+++ b/
src/simix/smx_user.c
@@
-1195,7
+1195,7
@@
size_t simcall_file_write(const void* ptr, size_t size, size_t nmemb, smx_file_t
{
smx_simcall_t simcall = SIMIX_simcall_mine();
- simcall->call = SIMCALL_FILE_
READ
;
+ simcall->call = SIMCALL_FILE_
WRITE
;
simcall->file_write.ptr = ptr;
simcall->file_write.size = size;
simcall->file_write.nmemb = nmemb;
@@
-1205,6
+1205,41
@@
size_t simcall_file_write(const void* ptr, size_t size, size_t nmemb, smx_file_t
return simcall->file_write.result;
}
+smx_file_t* simcall_file_open(const char* path, const char* mode)
+{
+ smx_simcall_t simcall = SIMIX_simcall_mine();
+
+ simcall->call = SIMCALL_FILE_OPEN;
+ simcall->file_open.path = path;
+ simcall->file_open.mode = mode;
+ SIMIX_simcall_push(simcall->issuer);
+
+ return simcall->file_open.result;
+}
+
+int simcall_file_close(smx_file_t* fp)
+{
+ smx_simcall_t simcall = SIMIX_simcall_mine();
+
+ simcall->call = SIMCALL_FILE_CLOSE;
+ simcall->file_close.fp = fp;
+ SIMIX_simcall_push(simcall->issuer);
+
+ return simcall->file_close.result;
+}
+
+int simcall_file_stat(int fd, void* buf)
+{
+ smx_simcall_t simcall = SIMIX_simcall_mine();
+
+ simcall->call = SIMCALL_FILE_STAT;
+ simcall->file_stat.fd = fd;
+ simcall->file_stat.buf = buf;
+ SIMIX_simcall_push(simcall->issuer);
+
+ return simcall->file_stat.result;
+}
+
/* ************************************************************************** */
/** @brief returns a printable string representing a simcall */