#include <fcntl.h>
#include <unistd.h>
+#include "sbcl.h"
+
#ifndef LISP_FEATURE_WIN32
#ifdef LISP_FEATURE_LINUX
/* For madvise */
#include <sys/mman.h>
#endif
-#include "sbcl.h"
#include "os.h"
#include "runtime.h"
#include "globals.h"
#include "validate.h"
#include "gc-internal.h"
-
-/* lutex stuff */
-#if defined(LISP_FEATURE_SB_THREAD) && defined(LISP_FEATURE_SB_LUTEX)
-#include "genesis/sap.h"
-#include "pthread-lutex.h"
-#endif
+#include "runtime-options.h"
#include <errno.h>
static struct runtime_options *
read_runtime_options(int fd)
{
- size_t optarray[RUNTIME_OPTIONS_WORDS];
+ os_vm_size_t optarray[RUNTIME_OPTIONS_WORDS];
struct runtime_options *options = NULL;
- if (read(fd, optarray, RUNTIME_OPTIONS_WORDS * sizeof(size_t)) !=
+ if (read(fd, optarray, RUNTIME_OPTIONS_WORDS * sizeof(os_vm_size_t)) !=
RUNTIME_OPTIONS_WORDS * sizeof(size_t)) {
return NULL;
}
initial_function = (lispobj)*ptr;
break;
-#if defined(LISP_FEATURE_SB_THREAD) && defined(LISP_FEATURE_SB_LUTEX)
- case LUTEX_TABLE_CORE_ENTRY_TYPE_CODE:
- SHOW("LUTEX_TABLE_CORE_ENTRY_TYPE_CODE case");
- {
- size_t n_lutexes = *ptr;
- size_t fdoffset = (*(ptr + 1) + 1) * (os_vm_page_size);
- size_t data_length = n_lutexes * sizeof(struct sap *);
- struct lutex **lutexes_to_resurrect = malloc(data_length);
- long bytes_read;
-
- lseek(fd, fdoffset + file_offset, SEEK_SET);
-
- FSHOW((stderr, "attempting to read %ld lutexes from core\n", n_lutexes));
- bytes_read = read(fd, lutexes_to_resurrect, data_length);
-
- /* XXX */
- if (bytes_read != data_length) {
- lose("Could not read the lutex table");
- }
- else {
- int i;
-
- for (i=0; i<n_lutexes; ++i) {
- struct lutex *lutex = lutexes_to_resurrect[i];
-
- FSHOW((stderr, "re-init'ing lutex @ %p\n", lutex));
- lutex_init((tagged_lutex_t) lutex);
- }
-
- free(lutexes_to_resurrect);
- }
- break;
- }
-#endif
-
#ifdef LISP_FEATURE_GENCGC
case PAGE_TABLE_CORE_ENTRY_TYPE_CODE:
{
size_t size = *ptr;
size_t fdoffset = (*(ptr+1) + 1) * (os_vm_page_size);
- size_t offset = 0;
+ page_index_t offset = 0;
long bytes_read;
unsigned long data[4096];
unsigned long word;