[Openmcl-cvs-notifications] r14295 - /trunk/source/lisp-kernel/
rme at clozure.com
rme at clozure.com
Tue Sep 21 20:10:30 CDT 2010
Author: rme
Date: Tue Sep 21 20:10:30 2010
New Revision: 14295
Log:
Eliminate some (but not all) warnings produced when building with
"-Wall -Wno-format". Also a couple of minor changes that enable
clang to build the lisp kernel (at least on x8632 and x8664).
Modified:
trunk/source/lisp-kernel/area.h
trunk/source/lisp-kernel/bits.h
trunk/source/lisp-kernel/gc-common.c
trunk/source/lisp-kernel/gc.h
trunk/source/lisp-kernel/image.c
trunk/source/lisp-kernel/image.h
trunk/source/lisp-kernel/lisp-debug.c
trunk/source/lisp-kernel/lisp-exceptions.h
trunk/source/lisp-kernel/memory.c
trunk/source/lisp-kernel/memprotect.h
trunk/source/lisp-kernel/platform-darwinx8632.h
trunk/source/lisp-kernel/platform-darwinx8664.h
trunk/source/lisp-kernel/pmcl-kernel.c
trunk/source/lisp-kernel/threads.h
trunk/source/lisp-kernel/unix-calls.c
trunk/source/lisp-kernel/x86-constants32.h
trunk/source/lisp-kernel/x86-exceptions.c
trunk/source/lisp-kernel/x86-exceptions.h
trunk/source/lisp-kernel/x86-gc.c
trunk/source/lisp-kernel/x86_print.c
Modified: trunk/source/lisp-kernel/area.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/lisp-kernel/area.h (original)
+++ trunk/source/lisp-kernel/area.h Tue Sep 21 20:10:30 2010
@@ -104,6 +104,9 @@
void tenure_to_area(area *);
void untenure_from_area(area *);
=
+Boolean grow_dynamic_area(natural);
+Boolean shrink_dynamic_area(natural);
+
/* serialize add_area/remove_area, and also the tcr queue */
void *tcr_area_lock;
=
Modified: trunk/source/lisp-kernel/bits.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/lisp-kernel/bits.h (original)
+++ trunk/source/lisp-kernel/bits.h Tue Sep 21 20:10:30 2010
@@ -114,7 +114,7 @@
{ BITPvar =3D bits_word_ptr(BITVvar,BITNUMvar); BITIDXvar =3D bits_bit_ind=
ex(BITNUMvar); \
BITWvar =3D (*BITPvar << BITIDXvar) >> BITIDXvar; }
=
-#ifdef __GNUC__
+#if defined(__GNUC__) && !defined(__clang__)
static __inline__ natural
current_stack_pointer(void) __attribute__((always_inline));
=
Modified: trunk/source/lisp-kernel/gc-common.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/lisp-kernel/gc-common.c (original)
+++ trunk/source/lisp-kernel/gc-common.c Tue Sep 21 20:10:30 2010
@@ -741,7 +741,7 @@
{
void *p, *next, *addr;
struct xmacptr *x, *xnext;
- int i, flags;
+ int flags;
xmacptr_dispose_fn dfn;
=
for (p =3D postGCptrs; p; p =3D next) {
@@ -751,7 +751,7 @@
postGCptrs =3D NULL;
=
for (x =3D user_postGC_macptrs; x; x =3D xnext) {
- xnext =3D (xmacptr *) (x->class);;
+ xnext =3D (xmacptr *) (x->class);
flags =3D x->flags - xmacptr_flag_user_first;
dfn =3D xmacptr_dispose_functions[flags];
addr =3D (void *) x->address;
@@ -1027,7 +1027,7 @@
{
LispObj *ptr =3D &(lisp_global(WEAKVLL)), this, new, old;
=
- while (this =3D *ptr) {
+ while ((this =3D *ptr)) {
old =3D this + fulltag_misc;
new =3D node_forwarding_address(old);
if (old !=3D new) {
@@ -1100,7 +1100,7 @@
prev =3D &(((xmacptr *)ptr_from_lispobj(untag(next)))->link);
}
xprev =3D &user_postGC_macptrs;
- while (xnext =3D *xprev) {
+ while ((xnext =3D *xprev)) {
xnew =3D (struct xmacptr *)locative_forwarding_address((LispObj)xnext);
if (xnew !=3D xnext) {
*xprev =3D xnew;
@@ -1113,7 +1113,10 @@
forward_memoized_area(area *a, natural num_memo_dnodes)
{
bitvector refbits =3D a->refbits;
- LispObj *p =3D (LispObj *) a->low, *p0 =3D p, x1, x2, new;
+ LispObj *p =3D (LispObj *) a->low, x1, x2, new;
+#ifdef ARM
+ LispObj *p0 =3D p;
+#endif
natural bits, bitidx, *bitsp, nextbit, diff, memo_dnode =3D 0, hash_dnod=
e_limit =3D 0;
int tag_x1;
hash_table_vector_header *hashp =3D NULL;
Modified: trunk/source/lisp-kernel/gc.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/lisp-kernel/gc.h (original)
+++ trunk/source/lisp-kernel/gc.h Tue Sep 21 20:10:30 2010
@@ -80,6 +80,7 @@
LispObj locative_forwarding_address(LispObj);
LispObj node_forwarding_address(LispObj);
void forward_range(LispObj *, LispObj *);
+void forward_tcr_xframes(TCR *);
void note_memoized_references(ExceptionInformation *,LogicalAddress, Logic=
alAddress, BytePtr *, BytePtr *);
void gc(TCR *, signed_natural);
int change_hons_area_size(TCR *, signed_natural);
Modified: trunk/source/lisp-kernel/image.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/lisp-kernel/image.c (original)
+++ trunk/source/lisp-kernel/image.c Tue Sep 21 20:10:30 2010
@@ -26,7 +26,7 @@
#endif
#include <stdio.h>
#include <limits.h>
-
+#include <time.h>
=
=
#if defined(PPC64) || defined(X8632)
Modified: trunk/source/lisp-kernel/image.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/lisp-kernel/image.h (original)
+++ trunk/source/lisp-kernel/image.h Tue Sep 21 20:10:30 2010
@@ -86,6 +86,7 @@
LispObj
load_openmcl_image(int, openmcl_image_file_header*);
=
+Boolean find_openmcl_image_file_header(int fd, openmcl_image_file_header *=
h);
=
=
=
Modified: trunk/source/lisp-kernel/lisp-debug.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/lisp-kernel/lisp-debug.c (original)
+++ trunk/source/lisp-kernel/lisp-debug.c Tue Sep 21 20:10:30 2010
@@ -639,7 +639,6 @@
debug_command_return
debug_memory_areas(ExceptionInformation *xp, siginfo_t *info, int arg)
{
- int i;
area *a, *header =3D all_areas;
char label[100];
=
@@ -814,7 +813,6 @@
debug_get_natural_value(char *prompt)
{
char s[32], *res, *endptr;
- int n;
natural val;
=
do {
@@ -1306,6 +1304,7 @@
}
}
=
+void
debug_identify_function(ExceptionInformation *xp, siginfo_t *info) =
{
#ifdef PPC
Modified: trunk/source/lisp-kernel/lisp-exceptions.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/lisp-kernel/lisp-exceptions.h (original)
+++ trunk/source/lisp-kernel/lisp-exceptions.h Tue Sep 21 20:10:30 2010
@@ -107,6 +107,8 @@
void
Fatal(StringPtr, StringPtr);
=
+void fatal_oserr(StringPtr, OSErr);
+
void
non_fatal_error( char * );
=
@@ -142,9 +144,16 @@
#include "arm-exceptions.h"
#endif
=
+#ifdef DARWIN
+void darwin_exception_init(TCR *tcr);
+void darwin_exception_cleanup(TCR *tcr);
+#endif
+
+void thread_signal_setup(void);
void suspend_other_threads(Boolean);
void resume_other_threads(Boolean);
-
+void reset_lisp_process(ExceptionInformation *);
+void terminate_lisp(void);
=
#endif /* __lisp_exceptions_h__ */
=
Modified: trunk/source/lisp-kernel/memory.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/lisp-kernel/memory.c (original)
+++ trunk/source/lisp-kernel/memory.c Tue Sep 21 20:10:30 2010
@@ -46,14 +46,6 @@
Fatal(": Kernel memory allocation failure. ", buf);
}
=
-void
-fatal_oserr(StringPtr param, OSErr err)
-{
- char buf[64];
- sprintf(buf," - operating system error %d.", err);
- Fatal(param, buf);
-}
-
void *
lisp_malloc(size_t size)
{
@@ -113,6 +105,7 @@
return vm_addr >=3D (vm_address_t)(addr+len);
}
#endif
+
=
=
/*
@@ -205,11 +198,12 @@
int
CommitMemory (LogicalAddress start, natural len) =
{
- LogicalAddress rc;
#if DEBUG_MEMORY
fprintf(dbgout, "Committing memory at 0x" LISP ", size 0x" LISP "\n", st=
art, len);
#endif
#ifdef WINDOWS
+ LogicalAddress rc;
+
if ((start < ((LogicalAddress)nil_value)) &&
(((LogicalAddress)nil_value) < (start+len))) {
/* nil area is in the executable on Windows; ensure range is
@@ -227,7 +221,7 @@
}
return true;
#else
- int i, err;
+ int i;
void *addr;
=
for (i =3D 0; i < 3; i++) {
@@ -503,10 +497,9 @@
resize_dynamic_heap(BytePtr newfree, =
natural free_space_size)
{
- extern int page_size;
area *a =3D active_dynamic_area;
- BytePtr newlimit, protptr, zptr;
- int psize =3D page_size;
+ BytePtr newlimit;
+
if (free_space_size) {
BytePtr lowptr =3D a->active;
newlimit =3D lowptr + align_to_power_of_2(newfree-lowptr+free_space_si=
ze,
@@ -518,6 +511,7 @@
return true;
}
}
+ return false;
}
=
void
@@ -717,11 +711,8 @@
area *a =3D active_dynamic_area, *child;
BytePtr =
curfree =3D a->active,
- target_low =3D target->low,
- tenured_low =3D tenured_area->low;
- natural =
- dynamic_dnodes =3D area_dnode(curfree, a->low),
- new_tenured_dnodes =3D area_dnode(curfree, tenured_area->low);
+ target_low =3D target->low;
+ natural new_tenured_dnodes =3D area_dnode(curfree, tenured_area->low);
bitvector =
refbits =3D tenured_area->refbits,
markbits =3D a->markbits,
Modified: trunk/source/lisp-kernel/memprotect.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/lisp-kernel/memprotect.h (original)
+++ trunk/source/lisp-kernel/memprotect.h Tue Sep 21 20:10:30 2010
@@ -75,6 +75,10 @@
=
int
MapFile(LogicalAddress addr, natural pos, natural nbytes, int permissions,=
int fd);
+void allocation_failure(Boolean pointerp, natural size);
+
+void protect_watched_areas(void);
+void unprotect_watched_areas(void);
=
typedef enum {
kNotProtected, /* At least not at the moment. */
@@ -100,6 +104,7 @@
lisp_protection_kind why;
} protected_area, *protected_area_ptr;
=
+void unprotect_area(protected_area_ptr);
=
/* Various functions that try to respond to a protection violation */
typedef =
Modified: trunk/source/lisp-kernel/platform-darwinx8632.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/lisp-kernel/platform-darwinx8632.h (original)
+++ trunk/source/lisp-kernel/platform-darwinx8632.h Tue Sep 21 20:10:30 2010
@@ -39,6 +39,7 @@
=
/* xp accessors, sigreturn stuff */
#define DARWIN_USE_PSEUDO_SIGRETURN 1
+extern int darwin_sigreturn(ExceptionInformation *context);
#define DarwinSigReturn(context) do {\
darwin_sigreturn(context);\
Bug(context,"sigreturn returned");\
Modified: trunk/source/lisp-kernel/platform-darwinx8664.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/lisp-kernel/platform-darwinx8664.h (original)
+++ trunk/source/lisp-kernel/platform-darwinx8664.h Tue Sep 21 20:10:30 2010
@@ -39,6 +39,7 @@
=
/* xp accessors, sigreturn stuff */
#define DARWIN_USE_PSEUDO_SIGRETURN 1
+extern int darwin_sigreturn(ExceptionInformation *context);
#define DarwinSigReturn(context) do {\
darwin_sigreturn(context);\
Bug(context,"sigreturn returned");\
Modified: trunk/source/lisp-kernel/pmcl-kernel.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/lisp-kernel/pmcl-kernel.c (original)
+++ trunk/source/lisp-kernel/pmcl-kernel.c Tue Sep 21 20:10:30 2010
@@ -600,7 +600,7 @@
void
map_initial_reloctab(BytePtr low, BytePtr high) =
{
- natural ndnodes, reloctab_size, n;
+ natural ndnodes, reloctab_size;
=
low_relocatable_address =3D low; /* will never change */
high_relocatable_address =3D high;
@@ -854,6 +854,14 @@
}
fprintf(dbgout, "Fatal error: %s\n%s\n", param0, param1);
_exit(-1);
+}
+
+void
+fatal_oserr(StringPtr param, OSErr err)
+{
+ char buf[64];
+ sprintf(buf," - operating system error %d.", err);
+ Fatal(param, buf);
}
=
OSErr application_load_err =3D noErr;
@@ -1445,20 +1453,17 @@
struct utsname uts;
long got, want;
char *got_end,*want_end;
-#ifdef X8632
- extern Boolean rcontext_readonly;
-#endif
=
want =3D strtoul(min_os_version,&want_end,10);
=
uname(&uts);
got =3D strtoul(uts.release,&got_end,10);
-#ifdef X8632
-#ifdef FREEBSD
+#if defined(X8632) && defined(FREEBSD)
if (!strcmp(uts.machine,"amd64")) {
+ extern Boolean rcontext_readonly;
+
rcontext_readonly =3D true;
}
-#endif
#endif
while (got =3D=3D want) {
if (*want_end =3D=3D '.') {
@@ -1649,7 +1654,7 @@
=
int
main(int argc, char *argv[]
-#ifndef WINDOWS
+#if defined(PPC) && defined(LINUX)
, char *envp[], void *aux
#endif
)
Modified: trunk/source/lisp-kernel/threads.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/lisp-kernel/threads.h (original)
+++ trunk/source/lisp-kernel/threads.h Tue Sep 21 20:10:30 2010
@@ -135,6 +135,8 @@
#define SEM_TIMEDWAIT(s,t) semaphore_timedwait((SEMAPHORE)(natural)s,t)
#endif
=
+void signal_semaphore(SEMAPHORE s);
+int wait_on_semaphore(void *s, int seconds, int millis);
void sem_wait_forever(SEMAPHORE s);
=
#ifdef USE_POSIX_SEMAPHORES
@@ -178,6 +180,7 @@
void tsd_set(LispObj, void *);
void *tsd_get(LispObj);
TCR *new_tcr(natural, natural);
+void thread_init_tcr(TCR *tcr, void *stack_base, natural stack_size);
TCR *initial_thread_tcr;
=
#define DEFAULT_THREAD_STACK_SIZE ((size_t) -1)
@@ -196,8 +199,17 @@
=
TCR *get_tcr(Boolean);
TCR *get_interrupt_tcr(Boolean);
+
Boolean suspend_tcr(TCR *);
Boolean resume_tcr(TCR *);
+Boolean kill_tcr(TCR *);
+
+int raise_thread_interrupt(TCR *target);
+
+Boolean lisp_suspend_tcr(TCR *);
+Boolean lisp_resume_tcr(TCR *);
+void lisp_suspend_other_threads(void);
+void lisp_resume_other_threads(void);
=
typedef struct
{
Modified: trunk/source/lisp-kernel/unix-calls.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/lisp-kernel/unix-calls.c (original)
+++ trunk/source/lisp-kernel/unix-calls.c Tue Sep 21 20:10:30 2010
@@ -36,6 +36,7 @@
#include <sys/time.h>
#include <stdint.h>
#include <signal.h>
+#include <fcntl.h>
=
ssize_t
lisp_read(int fd, void *buf, size_t count)
Modified: trunk/source/lisp-kernel/x86-constants32.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/lisp-kernel/x86-constants32.h (original)
+++ trunk/source/lisp-kernel/x86-constants32.h Tue Sep 21 20:10:30 2010
@@ -381,3 +381,4 @@
#ifndef EFL_DF
#define EFL_DF 1024
#endif
+
Modified: trunk/source/lisp-kernel/x86-exceptions.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/lisp-kernel/x86-exceptions.c (original)
+++ trunk/source/lisp-kernel/x86-exceptions.c Tue Sep 21 20:10:30 2010
@@ -580,7 +580,6 @@
natural cur_allocptr, bytes_needed;
unsigned allocptr_tag;
signed_natural disp;
- Boolean notify_pending_gc =3D false;
=
cur_allocptr =3D xpGPR(xp,Iallocptr);
allocptr_tag =3D fulltag_of(cur_allocptr);
@@ -3882,6 +3881,7 @@
LispObj *oldnode =3D (LispObj *)untag(old);
LispObj *newnode =3D (LispObj *)untag(new);
area *a =3D area_containing((BytePtr)old);
+ extern void update_managed_refs(area *, BytePtr, natural);
=
if (a && a->code =3D=3D AREA_WATCHED) {
natural size;
Modified: trunk/source/lisp-kernel/x86-exceptions.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/lisp-kernel/x86-exceptions.h (original)
+++ trunk/source/lisp-kernel/x86-exceptions.h Tue Sep 21 20:10:30 2010
@@ -44,6 +44,11 @@
#define XUUO_RESUME_ALL 8
#define XUUO_KILL 9
#define XUUO_ALLOCATE_LIST 10
+
+int callback_to_lisp (TCR *tcr, LispObj callback_macptr, ExceptionInformat=
ion *xp,
+ natural arg1, natural arg2, natural arg3, natural arg4,
+ natural arg5);
+
=
void
pc_luser_xp(ExceptionInformation*, TCR*, signed_natural*);
@@ -96,6 +101,7 @@
=
extern natural get_mxcsr();
extern void set_mxcsr(natural);
+void enable_fp_exceptions(void);
=
#ifdef X8632
/* The 32-bit immediate value in the instruction
@@ -106,5 +112,7 @@
#define RECOVER_FN_LENGTH 5
#endif
=
+void callback_for_gc_notification(ExceptionInformation *xp, TCR *tcr);
+
#endif /* X86_EXCEPTIONS_H */
=
Modified: trunk/source/lisp-kernel/x86-gc.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/lisp-kernel/x86-gc.c (original)
+++ trunk/source/lisp-kernel/x86-gc.c Tue Sep 21 20:10:30 2010
@@ -27,7 +27,7 @@
#include <sys/time.h>
=
#ifdef X8632
-inline natural
+natural
imm_word_count(LispObj fn)
{
natural w =3D ((unsigned short *)fn)[-1];
@@ -250,7 +250,7 @@
void
check_xp(ExceptionInformation *xp, natural node_regs_mask)
{
- natural *regs =3D (natural *) xpGPRvector(xp), dnode;
+ natural *regs =3D (natural *) xpGPRvector(xp);
=
if (node_regs_mask & (1<<0)) check_node(regs[REG_EAX]);
if (node_regs_mask & (1<<1)) check_node(regs[REG_ECX]);
@@ -270,7 +270,7 @@
void
check_xp(ExceptionInformation *xp)
{
- natural *regs =3D (natural *) xpGPRvector(xp), dnode;
+ natural *regs =3D (natural *) xpGPRvector(xp);
=
check_node(regs[Iarg_z]);
check_node(regs[Iarg_y]);
@@ -1524,7 +1524,6 @@
{
natural *regs =3D (natural *) xpGPRvector(xp), dnode;
LispObj eip;
- int i;
=
if (node_regs_mask & (1<<0)) mark_root(regs[REG_EAX]);
if (node_regs_mask & (1<<1)) mark_root(regs[REG_ECX]);
Modified: trunk/source/lisp-kernel/x86_print.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/lisp-kernel/x86_print.c (original)
+++ trunk/source/lisp-kernel/x86_print.c Tue Sep 21 20:10:30 2010
@@ -315,16 +315,16 @@
sprint_specializers_list(method_specializers, depth);
add_char(' ');
} else if (lfbits & lfbits_gfn_mask) {
- LispObj gf_slots;
- LispObj gf_name;
-
add_c_string("Generic Function ");
=
#ifdef X8632
- gf_slots =3D nth_immediate(o, 2);
- gf_name =3D deref(gf_slots, 2);
- sprint_lisp_object(gf_name, depth);
- add_char(' ');
+ {
+ LispObj gf_slots =3D nth_immediate(o, 2);
+ LispObj gf_name =3D deref(gf_slots, 2);
+
+ sprint_lisp_object(gf_name, depth);
+ add_char(' ');
+ }
#endif
} else {
add_c_string("Function ");
More information about the Openmcl-cvs-notifications
mailing list