Fix typo.
[cacao.git] / src / vm / os.hpp
index e1aa4c458ab10b73589720f07a7e5fa7becd9f1b..1f924680d4aefa6917e4f69f2f59f21dc3a0b471 100644 (file)
@@ -1,6 +1,6 @@
 /* src/vm/os.hpp - system (OS) functions
 
-   Copyright (C) 2007, 2008, 2009
+   Copyright (C) 2007, 2008, 2009, 2010, 2011
    CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
    Copyright (C) 2008 Theobroma Systems Ltd.
 
 # include <unistd.h>
 #endif
 
+#if defined(__DARWIN__)
+# if defined(HAVE_MACH_MACH_H)
+#  include <mach/mach.h>
+# endif
+#endif
+
 #if defined(HAVE_SYS_LOADAVG_H)
 # include <sys/loadavg.h>
 #endif
@@ -138,7 +144,7 @@ public:
        static inline void*   dlsym(void* handle, const char* symbol);
        static inline int     fclose(FILE* fp);
        static inline FILE*   fopen(const char* path, const char* mode);
-       static inline int     fprintf(FILE* stream, const char* format, ...);
+       static inline int     vfprintf ( FILE * stream, const char * format, va_list arg );
        static inline size_t  fread(void* ptr, size_t size, size_t nmemb, FILE* stream);
        static inline void    free(void* ptr);
        static inline char*   getcwd(char* buf, size_t size);
@@ -181,8 +187,8 @@ public:
        static int   processors_online();
 
        // Template helper
-       template<class F1, class F2>
-       static int call_scandir(int (*scandir)(const char *, struct dirent ***, F1, F2), const char *dir, struct dirent ***namelist, int(*filter)(const struct dirent *), int(*compar)(const void *, const void *));
+       template<class _F1, class _F2>
+       static int call_scandir(int (*scandir)(const char *, struct dirent ***, _F1, _F2), const char *dir, struct dirent ***namelist, int(*filter)(const struct dirent *), int(*compar)(const void *, const void *));
 };
 
 
@@ -336,16 +342,18 @@ inline FILE* os::fopen(const char* path, const char* mode)
 #endif
 }
 
-inline int os::fprintf(FILE* stream, const char* format, ...)
+//fprintf is mandatory and can't be replaced with an equivalent fast wrapper
+#if !defined (HAVE_FPRINTF) 
+#error fprintf not available
+#endif
+
+inline int os::vfprintf ( FILE * stream, const char * format, va_list arg )
 {
-#if defined(HAVE_FPRINTF)
-       va_list ap;
-       va_start(ap, format);
-       int result = ::vfprintf(stream, format, ap);
-       va_end(ap);
+#if defined(HAVE_VFPRINTF)
+       int result = ::vfprintf(stream, format, arg);
        return result;
 #else
-# error fprintf not available
+# error vfprintf not available
 #endif
 }
 
@@ -547,10 +555,10 @@ inline static void *system_realloc(void *ptr, size_t size)
 #endif
 }
 
-template<class F1, class F2>
-inline int os::call_scandir(int (*scandir)(const char *, struct dirent ***, F1, F2), const char *dir, struct dirent ***namelist, int(*filter)(const struct dirent *), int(*compar)(const void *, const void *))
+template<class _F1, class _F2>
+inline int os::call_scandir(int (*scandir)(const char *, struct dirent ***, _F1, _F2), const char *dir, struct dirent ***namelist, int(*filter)(const struct dirent *), int(*compar)(const void *, const void *))
 {
-       return scandir(dir, namelist, (F1) filter, (F2) compar);
+       return scandir(dir, namelist, (_F1) filter, (_F2) compar);
 }
 
 inline int os::scandir(const char *dir, struct dirent ***namelist, int(*filter)(const struct dirent *), int(*compar)(const void *, const void *))