added stix-mac.h and made related changes
This commit is contained in:
parent
6544340db4
commit
f40b5fb0c1
@ -1369,7 +1369,6 @@ static stix_uint8_t ooch_val_tab[] =
|
|||||||
|
|
||||||
stix_oop_t stix_strtoint (stix_t* stix, const stix_ooch_t* str, stix_oow_t len, int radix)
|
stix_oop_t stix_strtoint (stix_t* stix, const stix_ooch_t* str, stix_oow_t len, int radix)
|
||||||
{
|
{
|
||||||
//int neg = 0;
|
|
||||||
int sign = 1;
|
int sign = 1;
|
||||||
const stix_ooch_t* ptr, * start, * end;
|
const stix_ooch_t* ptr, * start, * end;
|
||||||
stix_lidw_t w, v;
|
stix_lidw_t w, v;
|
||||||
|
@ -126,7 +126,7 @@ void print_object (stix_t* stix, stix_oop_t oop)
|
|||||||
STIX_ASSERT (STIX_OOP_IS_POINTER(oop));
|
STIX_ASSERT (STIX_OOP_IS_POINTER(oop));
|
||||||
c = (stix_oop_class_t)STIX_OBJ_GET_CLASS(oop); /*STIX_CLASSOF(stix, oop);*/
|
c = (stix_oop_class_t)STIX_OBJ_GET_CLASS(oop); /*STIX_CLASSOF(stix, oop);*/
|
||||||
|
|
||||||
if (c == stix->_large_negative_integer)
|
if ((stix_oop_t)c == stix->_large_negative_integer)
|
||||||
{
|
{
|
||||||
stix_oow_t i;
|
stix_oow_t i;
|
||||||
printf ("-16r");
|
printf ("-16r");
|
||||||
@ -135,7 +135,7 @@ void print_object (stix_t* stix, stix_oop_t oop)
|
|||||||
printf ("%0*lX", (int)(STIX_SIZEOF(stix_liw_t) * 2), (unsigned long)((stix_oop_liword_t)oop)->slot[--i]);
|
printf ("%0*lX", (int)(STIX_SIZEOF(stix_liw_t) * 2), (unsigned long)((stix_oop_liword_t)oop)->slot[--i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (c == stix->_large_positive_integer)
|
else if ((stix_oop_t)c == stix->_large_positive_integer)
|
||||||
{
|
{
|
||||||
stix_oow_t i;
|
stix_oow_t i;
|
||||||
printf ("16r");
|
printf ("16r");
|
||||||
|
@ -1021,7 +1021,7 @@ static int prim_block_new_process (stix_t* stix, stix_ooi_t nargs)
|
|||||||
|
|
||||||
if (nargs == 1)
|
if (nargs == 1)
|
||||||
{
|
{
|
||||||
stix_oop_oop_t xarg;
|
stix_oop_t xarg;
|
||||||
|
|
||||||
xarg = ACTIVE_STACK_GETTOP(stix);
|
xarg = ACTIVE_STACK_GETTOP(stix);
|
||||||
if (!STIX_ISTYPEOF(stix,xarg,STIX_OBJ_TYPE_OOP))
|
if (!STIX_ISTYPEOF(stix,xarg,STIX_OBJ_TYPE_OOP))
|
||||||
@ -1438,7 +1438,7 @@ static int prim_ffi_open (stix_t* stix, stix_ooi_t nargs)
|
|||||||
}
|
}
|
||||||
|
|
||||||
ACTIVE_STACK_POP (stix);
|
ACTIVE_STACK_POP (stix);
|
||||||
/* TODO: how to hold an address? as an integer???? or a byte array? */
|
/* TODO: how to hold an address? as an integer???? or a byte array? fix this not to loose accuracy*/
|
||||||
ACTIVE_STACK_SETTOP (stix, STIX_SMOOI_TO_OOP(handle));
|
ACTIVE_STACK_SETTOP (stix, STIX_SMOOI_TO_OOP(handle));
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
@ -1464,7 +1464,7 @@ static int prim_ffi_close (stix_t* stix, stix_ooi_t nargs)
|
|||||||
|
|
||||||
ACTIVE_STACK_POP (stix);
|
ACTIVE_STACK_POP (stix);
|
||||||
|
|
||||||
handle = STIX_OOP_TO_SMOOI(arg); /* TODO: how to store void* ??? */
|
handle = (void*)STIX_OOP_TO_SMOOI(arg); /* TODO: how to store void* ???. fix this not to loose accuracy */
|
||||||
if (stix->vmprim.mod_close) stix->vmprim.mod_close (stix, handle);
|
if (stix->vmprim.mod_close) stix->vmprim.mod_close (stix, handle);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -1677,7 +1677,7 @@ printf ("wrong function name...\n");
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
sym = stix->vmprim.mod_getsym (stix, STIX_OOP_TO_SMOOI(hnd), ((stix_oop_char_t)fun)->slot);
|
sym = stix->vmprim.mod_getsym (stix, (void*)STIX_OOP_TO_SMOOI(hnd), ((stix_oop_char_t)fun)->slot);
|
||||||
if (!sym)
|
if (!sym)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
@ -1876,7 +1876,7 @@ static stix_prim_impl_t query_prim_module (stix_t* stix, const stix_ooch_t* name
|
|||||||
|
|
||||||
/* i copy-insert 'md' into the table before calling 'load'.
|
/* i copy-insert 'md' into the table before calling 'load'.
|
||||||
* to pass the same address to load(), query(), etc */
|
* to pass the same address to load(), query(), etc */
|
||||||
pair = stix_rbt_insert (&stix->pmtable, name, mod_name_len, &md, STIX_SIZEOF(md));
|
pair = stix_rbt_insert (&stix->pmtable, (void*)name, mod_name_len, &md, STIX_SIZEOF(md));
|
||||||
if (pair == STIX_NULL)
|
if (pair == STIX_NULL)
|
||||||
{
|
{
|
||||||
stix->errnum = STIX_ENOMEM;
|
stix->errnum = STIX_ENOMEM;
|
||||||
@ -2534,6 +2534,7 @@ printf ("]\n");
|
|||||||
stix_ooi_t prim_name_index;
|
stix_ooi_t prim_name_index;
|
||||||
stix_oop_t name;
|
stix_oop_t name;
|
||||||
stix_prim_impl_t handler;
|
stix_prim_impl_t handler;
|
||||||
|
register stix_oow_t w;
|
||||||
|
|
||||||
prim_name_index = STIX_METHOD_GET_PREAMBLE_INDEX(preamble);
|
prim_name_index = STIX_METHOD_GET_PREAMBLE_INDEX(preamble);
|
||||||
DBGOUT_EXEC_1 ("METHOD_PREAMBLE_NAMED_PRIMITIVE %d", (int)prim_name_index);
|
DBGOUT_EXEC_1 ("METHOD_PREAMBLE_NAMED_PRIMITIVE %d", (int)prim_name_index);
|
||||||
@ -2545,8 +2546,9 @@ printf ("]\n");
|
|||||||
STIX_ASSERT (STIX_CLASSOF(stix,name) == stix->_symbol);
|
STIX_ASSERT (STIX_CLASSOF(stix,name) == stix->_symbol);
|
||||||
|
|
||||||
/* merge two SmallIntegers to get a full pointer */
|
/* merge two SmallIntegers to get a full pointer */
|
||||||
handler = (stix_oow_t)STIX_OOP_TO_SMOOI(newmth->preamble_data[0]) << (STIX_OOW_BITS / 2) |
|
w = (stix_oow_t)STIX_OOP_TO_SMOOI(newmth->preamble_data[0]) << (STIX_OOW_BITS / 2) |
|
||||||
(stix_oow_t)STIX_OOP_TO_SMOOI(newmth->preamble_data[1]);
|
(stix_oow_t)STIX_OOP_TO_SMOOI(newmth->preamble_data[1]);
|
||||||
|
handler = (stix_prim_impl_t)w;
|
||||||
if (!handler) handler = query_prim_module (stix, ((stix_oop_char_t)name)->slot, STIX_OBJ_GET_SIZE(name));
|
if (!handler) handler = query_prim_module (stix, ((stix_oop_char_t)name)->slot, STIX_OBJ_GET_SIZE(name));
|
||||||
|
|
||||||
if (handler)
|
if (handler)
|
||||||
|
@ -46,6 +46,8 @@
|
|||||||
# include <os2.h>
|
# include <os2.h>
|
||||||
#elif defined(__DOS__)
|
#elif defined(__DOS__)
|
||||||
/* nothing to include */
|
/* nothing to include */
|
||||||
|
#elif defined(macintosh)
|
||||||
|
/* nothing to include */
|
||||||
#else
|
#else
|
||||||
# include <unistd.h>
|
# include <unistd.h>
|
||||||
# include <ltdl.h>
|
# include <ltdl.h>
|
||||||
|
@ -35,6 +35,8 @@
|
|||||||
# include "stix-cfg.h"
|
# include "stix-cfg.h"
|
||||||
#elif defined(_WIN32)
|
#elif defined(_WIN32)
|
||||||
# include "stix-msw.h"
|
# include "stix-msw.h"
|
||||||
|
#elif defined(macintosh)
|
||||||
|
# include "stix-mac.h" /* class mac os */
|
||||||
#else
|
#else
|
||||||
# error UNSUPPORTED SYSTEM
|
# error UNSUPPORTED SYSTEM
|
||||||
#endif
|
#endif
|
||||||
|
63
stix/lib/stix-mac.h
Normal file
63
stix/lib/stix-mac.h
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
Copyright (c) 2014-2015 Chung, Hyung-Hwan. All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions
|
||||||
|
are met:
|
||||||
|
1. Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in the
|
||||||
|
documentation and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
|
||||||
|
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||||
|
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||||
|
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||||
|
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||||
|
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
/* This file is for class Mac OS */
|
||||||
|
|
||||||
|
/* Mac OS on PPC and m68k uses the big endian mode */
|
||||||
|
#define STIX_ENDIAN_BIG
|
||||||
|
|
||||||
|
#if defined(__MWERKS__)
|
||||||
|
# define STIX_SIZEOF_CHAR 1
|
||||||
|
# define STIX_SIZEOF_SHORT 2
|
||||||
|
# define STIX_SIZEOF_INT 4
|
||||||
|
# define STIX_SIZEOF_LONG 4
|
||||||
|
# define STIX_SIZEOF_LONG_LONG 8
|
||||||
|
# define STIX_SIZEOF_VOID_P 4
|
||||||
|
# define STIX_SIZEOF_FLOAT 4
|
||||||
|
# define STIX_SIZEOF_DOUBLE 8
|
||||||
|
# define STIX_SIZEOF_LONG_DOUBLE 8
|
||||||
|
# define STIX_SIZEOF_WCHAR_T 2
|
||||||
|
|
||||||
|
# define STIX_SIZEOF___INT8 1
|
||||||
|
# define STIX_SIZEOF___INT16 2
|
||||||
|
# define STIX_SIZEOF___INT32 4
|
||||||
|
# define STIX_SIZEOF___INT64 8
|
||||||
|
# define STIX_SIZEOF___INT128 0
|
||||||
|
|
||||||
|
# define STIX_SIZEOF_OFF64_T 0
|
||||||
|
# define STIX_SIZEOF_OFF_T 8
|
||||||
|
|
||||||
|
# define STIX_SIZEOF_MBSTATE_T STIX_SIZEOF_LONG
|
||||||
|
# define STIX_MBLEN_MAX 16
|
||||||
|
|
||||||
|
/* these two have only to be large enough */
|
||||||
|
# define STIX_SIZEOF_STRUCT_SOCKADDR_IN 32
|
||||||
|
# define STIX_SIZEOF_STRUCT_SOCKADDR_IN6 64
|
||||||
|
# define STIX_SIZEOF_SOCKLEN_T 4
|
||||||
|
|
||||||
|
#else
|
||||||
|
# error Define the size of various data types.
|
||||||
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue
Block a user