aboutsummaryrefslogtreecommitdiffstats
path: root/src/examples/pfs.c
diff options
context:
space:
mode:
authorklaar36 <klas.arvidsson@liu.se>2015-03-20 17:30:24 +0100
committerklaar36 <klas.arvidsson@liu.se>2015-03-20 17:30:24 +0100
commite7bc50ca8ffcaa6ed68ebd2315f78b0f5a7d10ad (patch)
tree4de97af7207676b69cb6a9aba8cb443cc134855d /src/examples/pfs.c
parentb0418a24e709f0632d2ede5b0f327c422931939b (diff)
downloadpintos-rs-e7bc50ca8ffcaa6ed68ebd2315f78b0f5a7d10ad.tar.gz
Initial Pintos
Diffstat (limited to 'src/examples/pfs.c')
-rw-r--r--src/examples/pfs.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/examples/pfs.c b/src/examples/pfs.c
new file mode 100644
index 0000000..a633e24
--- /dev/null
+++ b/src/examples/pfs.c
@@ -0,0 +1,32 @@
+/* klaar@ida (cleanup of previous code by various IDA-employees)
+
+ pintos -v -k -T 120 --fs-disk=2 --qemu -p ../examples/pfs -a pfs -p ../examples/pfs_writer -a pfs_writer -p ../examples/pfs_reader -a pfs_reader -g messages -- -f -q run pfs
+
+ Tests that read and write are properly synchronized. Also stresses
+ the filesystem somewhat.
+
+ pfs_reader and pfs_writer are needed child processes.
+*/
+
+#include "syscall.h"
+
+int main(void)
+{
+ int i;
+ int pid[5];
+
+ create("file.1", 50000);
+ create("messages", 5000);
+
+ pid[0] = exec("pfs_writer a z");
+ pid[1] = exec("pfs_writer A Z");
+ pid[2] = exec("pfs_reader");
+ pid[3] = exec("pfs_reader");
+ pid[4] = exec("pfs_reader");
+
+ for (i = 0; i < 5; i++)
+ {
+ wait(pid[i]);
+ }
+ exit(0);
+}