1
0
mirror of https://github.com/adtools/clib2.git synced 2025-12-08 14:59:05 +00:00

- Added 68k stubs to amiga_rexxvars.c for the OS4 build to use. The new code now

works just about exactly like the amiga.lib RVI code used to do, which means
  that there is no artificial length limit for the number of characters a string
  retrieved may have, and the code is largely reentrant.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15191 87f5fb63-7c3d-0410-a384-fd976d0f7a62
This commit is contained in:
Olaf Barthel
2008-04-18 10:11:59 +00:00
parent bbc98790fe
commit e3bde26409
3 changed files with 16 additions and 13 deletions

View File

@ -1,5 +1,5 @@
#
# $Id: GNUmakefile.os4,v 1.111 2007-01-06 10:09:48 obarthel Exp $
# $Id: GNUmakefile.os4,v 1.112 2008-04-18 10:11:59 obarthel Exp $
#
# :ts=8
#
@ -212,19 +212,19 @@ lib.threadsafe/baserel/%.o : %.c
##############################################################################
define COMPILE
$(MAKEDIR) $(@D)
-$(MAKEDIR) $(@D)
echo "Compiling $< [$(@D)]"
$(CC) -o $@ -c $(CFLAGS) $< $(LOG_COMMAND)
endef
define ASSEMBLE
$(MAKEDIR) $(@D)
-$(MAKEDIR) $(@D)
echo "Assembling $< [$(@D)]"
$(CC) -o $@ -c $(AFLAGS) $< $(LOG_COMMAND)
endef
define MAKELIB
$(MAKEDIR) $@
-$(MAKEDIR) $@
$(DELETE) $@
echo "Making $@"
$(AR) $@ $^ $(LOG_COMMAND)

View File

@ -1,5 +1,5 @@
/*
* $Id: amiga_rexxvars.c,v 1.18 2008-04-18 10:06:07 obarthel Exp $
* $Id: amiga_rexxvars.c,v 1.19 2008-04-18 10:11:59 obarthel Exp $
*
* :ts=4
*
@ -212,7 +212,7 @@ _IsSymbol(STRPTR name,LONG * symbol_length_ptr)
}
STATIC VOID
_CurrentEnv(struct RexxTask *task,struct Environment ** environment_ptr);
_CurrentEnv(struct RexxTask *task,struct Environment ** environment_ptr)
{
STATIC CONST UWORD code[] = { 0x4EAE,0xFF94,0x2488,0x4E75 }; /* jsr -108(a6) ; move.l a0,(a2) ; rts */
@ -224,7 +224,7 @@ _CurrentEnv(struct RexxTask *task,struct Environment ** environment_ptr);
}
STATIC struct Node *
_FetchValue(struct Environment * env,struct NexxStr * stem,struct NexxStr * compound,struct Node *symbol_table_node,LONG * is_literal_ptr,struct NexxStr ** value_ptr);
_FetchValue(struct Environment * env,struct NexxStr * stem,struct NexxStr * compound,struct Node *symbol_table_node,LONG * is_literal_ptr,struct NexxStr ** value_ptr)
{
STATIC CONST UWORD code[] = { 0x4EAE,0xFFB8,0x2488,0x2681,0x4E75 }; /* jsr -72(a6) ; move.l a0,(a2) ; move.l d1,(a3) ; rts */
struct Node * result;
@ -233,7 +233,7 @@ _FetchValue(struct Environment * env,struct NexxStr * stem,struct NexxStr * comp
ET_RegisterA0,env,
ET_RegisterA1,stem,
ET_RegisterD0,compound,
ET_RegisterD1,symbol_table,
ET_RegisterD1,symbol_table_node,
ET_RegisterA2,is_literal_ptr,
ET_RegisterA3,value_ptr,
ET_RegisterA6,RexxSysBase,
@ -243,7 +243,7 @@ _FetchValue(struct Environment * env,struct NexxStr * stem,struct NexxStr * comp
}
STATIC struct Node *
_EnterSymbol(struct Environment * env,struct NexxStr * stem,struct NexxStr * compound);
_EnterSymbol(struct Environment * env,struct NexxStr * stem,struct NexxStr * compound)
{
STATIC CONST UWORD code[] = { 0x4EAE,0xFFBE,0x4E75 }; /* jsr -66(a6) ; rts */
struct Node * result;
@ -259,7 +259,7 @@ _EnterSymbol(struct Environment * env,struct NexxStr * stem,struct NexxStr * com
}
STATIC VOID
_SetValue(struct Environment * env,struct NexxStr * value,struct Node * symbol_table_node);
_SetValue(struct Environment * env,struct NexxStr * value,struct Node * symbol_table_node)
{
STATIC CONST UWORD code[] = { 0x4EAE,0xFFAC,0x4E75 }; /* jsr -84(a6) ; rts */
struct Node * result;
@ -270,11 +270,9 @@ _SetValue(struct Environment * env,struct NexxStr * value,struct Node * symbol_t
ET_RegisterD0,symbol_table_node,
ET_RegisterA6,RexxSysBase,
TAG_END);
return(result);
}
STATIC VOID
STATIC ULONG
_StrcpyN(STRPTR destination,STRPTR source,LONG length)
{
STATIC CONST UWORD code[] = { 0x4EAE,0xFEF2,0x4E75 }; /* jsr -270(a6) ; rts */

View File

@ -1,3 +1,8 @@
- Added 68k stubs to amiga_rexxvars.c for the OS4 build to use. The new code now
works just about exactly like the amiga.lib RVI code used to do, which means
that there is no artificial length limit for the number of characters a string
retrieved may have, and the code is largely reentrant.
- To work around a bug in the Roadshow TCP/IP stack (since fixed), the waitselect()
function now substitutes a 10 microsecond timeout for a zero length timeout.