import stdlib.sl word alloc 0 # addr hint (NULL) swap # size 3 # prot (PROT_READ | PROT_WRITE) 34 # flags (MAP_PRIVATE | MAP_ANON) -1 # fd 0 # offset mmap swap drop end word free munmap drop end word memcpy #(dst_addr src_addr len -- dst_addr len) dup >r swap dup c@ 3 pick swap c! swap for 1 + dup c@ swap -rot swap 1 + dup rot c! swap end swap nip r> dup -rot - swap end word memset #( value len addr -- ) swap 0 swap for -rot swap 2 pick + 2dup swap ! 1 + -rot swap end 2drop drop end word memdump #( len addr -- addr ) for dup c@ puti cr 1 + end end word realloc #( addr old_len new_len -- new_addr ) 2 pick swap alloc rot rot swap memcpy swap -rot free end