; pexl_rtl_pxstring.h.asm

%define PXSTRING_SIZE 12
%define PXSTRING_OFFSET_BUFFER   0
%define PXSTRING_OFFSET_BUFFSIZE 4
%define PXSTRING_OFFSET_STRLEN   8

%macro PXSTRING_DEFINE_VARIABLE 2
	PUBLIC_OBJECT
%1:
	%strlen last_strlen %2
	dd $ + PXSTRING_SIZE
	dd last_strlen ; buffsize
	dd last_strlen ; strlen
	dd %2
	%undef last_strlen
%endmacro

; Public function prototypes
%ifndef PEXL_RTL_PXSTRING_ASM
	
	FUNCTION_PROTOTYPE pxo_string_new, 0
	FUNCTION_PROTOTYPE pxo_string_dup, 4
	FUNCTION_PROTOTYPE pxo_string_cmp, 8
	FUNCTION_PROTOTYPE pxo_string_substr, 12
	FUNCTION_PROTOTYPE pxo_string_concat, 8
	
%endif
