--- Cannot embed stylesheet: [Errno 2] No such file or directory: '../../../aros.css' --->
VOID ClearRexxMsg(
struct RexxMsg * msgptr,
ULONG count );
This function will clear a specified number of arguments by calling DeleteArgstring on them.
msgptr - RexxMsg to clear the arguments from count - The number of arguments in the message to clear
void
UBYTE * CreateArgstring(
CONST UBYTE * string,
ULONG length );
This function will create a RexxArg structure and copy the supplied string into it.
string - String to copy into the RexxArg structure length - Length of the string to copy.
A pointer to the string part of the allocated RexxArg structure.
Pointer to the string returned by this function may be used as a null terminated C string but should be considered read-only.
struct RexxMsg * CreateRexxMsg(
struct MsgPort * port,
UBYTE * extension,
UBYTE * host );
Creation and initialization of a RexxMsg structure
port - ReplyPort where the message is replied when it has been
handled
extension - The filename extension to use when searching for macros
host - Name of the port to use as the initial command host
(e.g. as used in the ADDRESS Rexx statement). When NULL
is given "REXX" will be used.
Pointer to the freshly allocated RexxMsg.
LONG CVa2i(
UBYTE * buffer );
This function converts an ASCII string to a signed 32-bit integer. The string scanning is stopped when a non-digit character is found or the integer value would overflow. The function returns both the number of bytes scanned and the integer value.
buffer (A0) - A pointer to the first character of the ASCII string.
value (D0) - The signed integer obtained from the string.
digits (D1) - The number of digits scanned from the string, plus one
if there was a leading + or -.
This function is excluded from the C headers and is only implemented for m68k CPUs. The ARexx User's Reference Manual (1987) is incorrect. The result registers listed above are the correct ones. Registers A2-A7 and D2-D7 are preserved across the call.
LONG CVi2a(
UBYTE * buffer,
LONG value,
UWORD digits );
This function writes the digits of the signed 32-bit integer value to the buffer given, including the terminating NUL character. The function returns both the number of bytes written and a pointer to the NUL character in the buffer.
buffer (A0) - A pointer to the destination buffer.
value (D0) - A signed 32-bit integer to generate the characters from.
digits (D1) - The max number of digits to write, including any sign
but excluding the terminating NUL character.
Zero means no limit.
length (D0) - The number of bytes written, excluding the terminating
NUL character.
pointer (A0) - A pointer to the terminating NUL character.
Setting value=-2000 and digits=3 will yield the string "-00".
If digits is less than the number of characters needed, the least significant digits that fit will be written. Any sign needed will be included. This function is excluded from the C headers and is only implemented for m68k CPUs. Registers A2-A7 and D2-D7 are preserved across the call.
UBYTE * CVi2arg(
LONG value );
This function creates an argstring containing a string representation of the signed 32-bit integer value given. The argstring can be freed with DeleteArgstring().
value (D0) - A signed 32-bit integer to generate the characters from.
pointer (D0, A0) - A pointer on the same format that CreateArgstring() returns.
This function is excluded from the C headers and is only implemented for m68k CPUs. The ARexx User's Reference Manual (1987) is incorrect. There is no "digits" argument. Registers A2-A7 and D2-D7 are preserved across the call.
VOID DeleteArgstring(
UBYTE * argstring );
Deletes a RexxArg structure previously created with CreateArgstring
Pointer to the string part of the RexxArg structure returned from CreateArgstring
void
VOID DeleteRexxMsg(
struct RexxMsg * packet );
Deletes a RexxMsg structure
packet - The RexxMsg to delete.
void
BOOL FillRexxMsg(
struct RexxMsg * msgptr,
ULONG count,
ULONG mask );
This function will convert the value(s) provided in rm_Args of the RexxMsg. The input can be either a string or a number.
msgptr - RexxMsg to create the RexxArgs for.
count - The number of ARGs in the rm_Args structure field that is
filled with a value and has to be converted.
mask - Bits 0 to 'count' from this mask indicate whether the
corresponding value in rm_Args is a string or a number. When
the bit is cleared the value is a pointer to a string. When
it is set it is treated as a signed integer.
Returns TRUE if succeeded, FALSE otherwise. When FALSE is returned all memory already allocated will be freed before returning.
This code will convert a string and a number to RexxArgs: struct RexxMsg *rm; ... rm->rm_Args[0] = "Test"; rm->rm_Args[1] = (UBYTE *)5; if (!FillRexxMsg(rm, 2, 1<<1)) ...
BOOL IsRexxMsg(
struct RexxMsg * msgptr );
Test to see if given Message is a RexxMsg
msgptr - Message to test
TRUE if it is one, FALSE otherwise
ULONG LengthArgstring(
UBYTE * argstring );
This will return the length of a string created with CreateArgstring
argstring - Pointer to the string part of a RexxArg structure returned
from CreateArgstring
length of the argstring
VOID LockRexxBase(
ULONG resource );
ULONG StrcmpN(
UBYTE * string1,
UBYTE * string2,
ULONG length );
This function compares the strings for the specified number of characters.
string1 (A0) - A pointer to the first character of the first string. string2 (A1) - Likewise for the second string. length (D0) - The number of characters to compare.
test (D0) - -1 if the second string is less, 0 if equal, 1 if greater. If one string ends it is considered less than a string that continues. The CCR flags are updated according to the result.
This function is excluded from the C headers and is only implemented for m68k CPUs. The ARexx User's Reference Manual (1987) incorrectly says that 1 is returned if the first string is greater. Registers A2-A7 and D2-D7 are preserved across the call.
ULONG Strlen(
UBYTE * string );
This function returns the length of the provided ASCII string, and sets the Z flag of the m68k CCR if the string is empty.
string (A0) - A pointer to the first character of the ASCII string.
length (D0) - The length of the ASCII string. The CCR Z flag is set if the length is zero.
This function is excluded from the C headers and is only implemented for m68k CPUs. Registers A0, A2-A7, and D2-D7 are preserved across the call.
VOID UnlockRexxBase(
ULONG resource );