-void init_c_io(void);
-void io_error(void);
-DLLEXPORT int err_no(void);
-DLLEXPORT void clear_err_no(void);
+namespace factor {
-void primitive_fopen(void);
-void primitive_fgetc(void);
-void primitive_fread(void);
-void primitive_fputc(void);
-void primitive_fwrite(void);
-void primitive_fflush(void);
-void primitive_fseek(void);
-void primitive_fclose(void);
+// Safe IO functions that does not throw Factor errors.
+int raw_fclose(FILE* stream);
+size_t raw_fread(void* ptr, size_t size, size_t nitems, FILE* stream);
-/* Platform specific primitives */
-void primitive_open_file(void);
-void primitive_existsp(void);
-void primitive_read_dir(void);
+// Platform specific primitives
+
+VM_C_API int err_no();
+VM_C_API void set_err_no(int err);
+
+}