Working backdoor filesystem implementation.
[pintos-anon] / src / lib / backdoor.h
index 8205aa32313b9c8687968bc07ccfbb0733a70ed1..e9996792f4e07fa2ee373f158abbe3b8eaf10261 100644 (file)
@@ -4,23 +4,31 @@
 #include <stdint.h>
 #include <stdarg.h>
 #include <stdbool.h>
+#include <stddef.h>
 
-enum backdoor_error 
-  {
-    BACKDOOR_OK = 0,
-    BACKDOOR_NOMEM = -100,
-    BACKDOOR_BAD_TYPE,
-    BACKDOOR_TYPE_MISMATCH,
-    BACKDOOR_STRING_MISMATCH,
-    BACKDOOR_NEGATIVE_SIZE,
-    BACKDOOR_UNEXPECTED_EOF
-  };
-
-enum backdoor_error
-backdoor_vmarshal (const char *types, va_list args,
-                   void (*) (uint8_t, void *aux), void *aux);
-enum backdoor_error
-backdoor_vunmarshal (const char *types, va_list args,
-                     bool (*) (uint8_t *, void *aux), void *aux);
+#ifdef __cplusplus
+extern "C" {
+#endif
+  
+void backdoor_put_int32 (int32_t value,
+                         void (*out) (uint8_t, void *aux), void *aux);
+void backdoor_put_uint32 (uint32_t value,
+                          void (*out) (uint8_t, void *aux), void *aux);
+void backdoor_put_bytes (const void *buffer, size_t cnt,
+                         void (*out) (uint8_t, void *aux), void *aux);
+void backdoor_put_string (const char *string,
+                          void (*out) (uint8_t, void *aux), void *aux);
+void backdoor_put_bool (bool b,
+                        void (*out) (uint8_t, void *aux), void *aux);
+int32_t backdoor_get_int32 (uint8_t (*in) (void *aux), void *aux);
+uint32_t backdoor_get_uint32 (uint8_t (*in) (void *aux), void *aux);
+char *backdoor_get_string (uint8_t (*in) (void *aux), void *aux);
+void backdoor_get_bytes (void *buffer, size_t cnt,
+                         uint8_t (*in) (void *aux), void *aux);
+bool backdoor_get_bool (uint8_t (*in) (void *aux), void *aux);
+  
+#ifdef __cplusplus
+};
+#endif
 
 #endif /* backdoor.h */