#include <sys/param.h>
#include <sys/file.h>
#include <unistd.h>
+#include <utime.h>
#include <assert.h>
#include <errno.h>
#include "sbcl.h"
void
os_init(char *argv[], char *envp[])
{
- os_vm_page_size = getpagesize();
+ os_vm_page_size = BACKEND_PAGE_BYTES;
#ifdef __NetBSD__
netbsd_init();
freebsd_init();
#elif defined(__OpenBSD__)
openbsd_init();
+#elif defined(LISP_FEATURE_DARWIN)
+ darwin_init();
#endif
}
memory_fault_handler);
#endif
-#ifdef LISP_FEATURE_SB_THREAD
+#ifdef THREADS_USING_GCSIGNAL
undoably_install_low_level_interrupt_handler(SIG_STOP_FOR_GC,
sig_stop_for_gc_handler);
#endif
return readdir(dirp);
}
+int
+_utime(const char *file, const struct utimbuf *timep)
+{
+ return utime(file, timep);
+}
+
/* Used in sb-bsd-sockets. */
int
_socket(int domain, int type, int protocol)
#endif /* LISP_FEATURE_X86 */
}
-#if defined(LISP_FEATURE_SB_THREAD) && !defined(LISP_FEATURE_SB_PTHREAD_FUTEX) \
- && !defined(LISP_FEATURE_SB_LUTEX)
+#if defined(LISP_FEATURE_SB_THREAD) && defined(LISP_FEATURE_SB_FUTEX) \
+ && !defined(LISP_FEATURE_SB_PTHREAD_FUTEX)
int
futex_wait(int *lock_word, long oldval, long sec, unsigned long usec)
{
#endif
char *
-os_get_runtime_executable_path()
+os_get_runtime_executable_path(int external)
{
char path[PATH_MAX + 1];
}
#elif defined(LISP_FEATURE_NETBSD) || defined(LISP_FEATURE_OPENBSD)
char *
-os_get_runtime_executable_path()
+os_get_runtime_executable_path(int external)
{
struct stat sb;
- char *path = strdup("/proc/curproc/file");
- if (path && ((stat(path, &sb)) == 0))
- return path;
- else {
- fprintf(stderr, "Couldn't stat /proc/curproc/file; is /proc mounted?\n");
- return NULL;
- }
+ if (!external && stat("/proc/curproc/file", &sb) == 0)
+ return copied_string("/proc/curproc/file");
+ return NULL;
}
#else /* Not DARWIN or FREEBSD or NETBSD or OPENBSD */
char *
-os_get_runtime_executable_path()
+os_get_runtime_executable_path(int external)
{
return NULL;
}