From owner-svn-src-head@freebsd.org Tue Nov 21 20:46:22 2017 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 67A44D9426E; Tue, 21 Nov 2017 20:46:22 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2BDB87F47C; Tue, 21 Nov 2017 20:46:22 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id vALKkLH7068901; Tue, 21 Nov 2017 20:46:21 GMT (envelope-from ed@FreeBSD.org) Received: (from ed@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id vALKkLXi068899; Tue, 21 Nov 2017 20:46:21 GMT (envelope-from ed@FreeBSD.org) Message-Id: <201711212046.vALKkLXi068899@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ed set sender to ed@FreeBSD.org using -f From: Ed Schouten Date: Tue, 21 Nov 2017 20:46:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r326075 - head/sys/contrib/cloudabi X-SVN-Group: head X-SVN-Commit-Author: ed X-SVN-Commit-Paths: head/sys/contrib/cloudabi X-SVN-Commit-Revision: 326075 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Nov 2017 20:46:22 -0000 Author: ed Date: Tue Nov 21 20:46:21 2017 New Revision: 326075 URL: https://svnweb.freebsd.org/changeset/base/326075 Log: Import the latest CloudABI definitions, v0.18. In addition to some small style fixes to the ARMv6 vDSO, this release includes a new vDSO that can be used for the execution of ARMv6/ARMv7 code on 64-bit platforms. Just like for i686 on x86-64, this new vDSO is responsible for padding arguments and return values to 64-bit values, so that the kernel can easily forward system calls to the native system calls. Obtained from: https://github.com/NuxiNL/cloudabi Added: head/sys/contrib/cloudabi/cloudabi_vdso_armv6_on_64bit.S (contents, props changed) Modified: head/sys/contrib/cloudabi/cloudabi_vdso_armv6.S Modified: head/sys/contrib/cloudabi/cloudabi_vdso_armv6.S ============================================================================== --- head/sys/contrib/cloudabi/cloudabi_vdso_armv6.S Tue Nov 21 20:31:54 2017 (r326074) +++ head/sys/contrib/cloudabi/cloudabi_vdso_armv6.S Tue Nov 21 20:46:21 2017 (r326075) @@ -39,9 +39,9 @@ ENTRY(cloudabi_sys_clock_res_get) mov ip, #0 swi 0 ldrcc r2, [sp, #-4] - strcc r0, [r2, 0] - strcc r1, [r2, 4] - movcc r0, $0 + strcc r0, [r2, #0] + strcc r1, [r2, #4] + movcc r0, #0 bx lr END(cloudabi_sys_clock_res_get) @@ -49,9 +49,9 @@ ENTRY(cloudabi_sys_clock_time_get) mov ip, #1 swi 0 ldrcc r2, [sp, #0] - strcc r0, [r2, 0] - strcc r1, [r2, 4] - movcc r0, $0 + strcc r0, [r2, #0] + strcc r1, [r2, #4] + movcc r0, #0 bx lr END(cloudabi_sys_clock_time_get) @@ -73,7 +73,7 @@ ENTRY(cloudabi_sys_fd_create1) swi 0 ldrcc r2, [sp, #-4] strcc r0, [r2] - movcc r0, $0 + movcc r0, #0 bx lr END(cloudabi_sys_fd_create1) @@ -86,7 +86,7 @@ ENTRY(cloudabi_sys_fd_create2) ldrcc r3, [sp, #-8] strcc r0, [r2] strcc r1, [r3] - movcc r0, $0 + movcc r0, #0 bx lr END(cloudabi_sys_fd_create2) @@ -102,7 +102,7 @@ ENTRY(cloudabi_sys_fd_dup) swi 0 ldrcc r2, [sp, #-4] strcc r0, [r2] - movcc r0, $0 + movcc r0, #0 bx lr END(cloudabi_sys_fd_dup) @@ -111,7 +111,7 @@ ENTRY(cloudabi_sys_fd_pread) swi 0 ldrcc r2, [sp, #8] strcc r0, [r2] - movcc r0, $0 + movcc r0, #0 bx lr END(cloudabi_sys_fd_pread) @@ -120,7 +120,7 @@ ENTRY(cloudabi_sys_fd_pwrite) swi 0 ldrcc r2, [sp, #8] strcc r0, [r2] - movcc r0, $0 + movcc r0, #0 bx lr END(cloudabi_sys_fd_pwrite) @@ -130,7 +130,7 @@ ENTRY(cloudabi_sys_fd_read) swi 0 ldrcc r2, [sp, #-4] strcc r0, [r2] - movcc r0, $0 + movcc r0, #0 bx lr END(cloudabi_sys_fd_read) @@ -144,9 +144,9 @@ ENTRY(cloudabi_sys_fd_seek) mov ip, #12 swi 0 ldrcc r2, [sp, #4] - strcc r0, [r2, 0] - strcc r1, [r2, 4] - movcc r0, $0 + strcc r0, [r2, #0] + strcc r1, [r2, #4] + movcc r0, #0 bx lr END(cloudabi_sys_fd_seek) @@ -174,7 +174,7 @@ ENTRY(cloudabi_sys_fd_write) swi 0 ldrcc r2, [sp, #-4] strcc r0, [r2] - movcc r0, $0 + movcc r0, #0 bx lr END(cloudabi_sys_fd_write) @@ -207,7 +207,7 @@ ENTRY(cloudabi_sys_file_open) swi 0 ldrcc r2, [sp, #8] strcc r0, [r2] - movcc r0, $0 + movcc r0, #0 bx lr END(cloudabi_sys_file_open) @@ -216,7 +216,7 @@ ENTRY(cloudabi_sys_file_readdir) swi 0 ldrcc r2, [sp, #8] strcc r0, [r2] - movcc r0, $0 + movcc r0, #0 bx lr END(cloudabi_sys_file_readdir) @@ -225,7 +225,7 @@ ENTRY(cloudabi_sys_file_readlink) swi 0 ldrcc r2, [sp, #4] strcc r0, [r2] - movcc r0, $0 + movcc r0, #0 bx lr END(cloudabi_sys_file_readlink) @@ -288,7 +288,7 @@ ENTRY(cloudabi_sys_mem_map) swi 0 ldrcc r2, [sp, #16] strcc r0, [r2] - movcc r0, $0 + movcc r0, #0 bx lr END(cloudabi_sys_mem_map) @@ -316,7 +316,7 @@ ENTRY(cloudabi_sys_poll) swi 0 ldrcc r2, [sp, #-4] strcc r0, [r2] - movcc r0, $0 + movcc r0, #0 bx lr END(cloudabi_sys_poll) @@ -340,7 +340,7 @@ ENTRY(cloudabi_sys_proc_fork) ldrcc r3, [sp, #-8] strcc r0, [r2] strcc r1, [r3] - movcc r0, $0 + movcc r0, #0 bx lr END(cloudabi_sys_proc_fork) @@ -380,7 +380,7 @@ ENTRY(cloudabi_sys_thread_create) swi 0 ldrcc r2, [sp, #-4] strcc r0, [r2] - movcc r0, $0 + movcc r0, #0 bx lr END(cloudabi_sys_thread_create) Added: head/sys/contrib/cloudabi/cloudabi_vdso_armv6_on_64bit.S ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/contrib/cloudabi/cloudabi_vdso_armv6_on_64bit.S Tue Nov 21 20:46:21 2017 (r326075) @@ -0,0 +1,732 @@ +// Copyright (c) 2016 Nuxi (https://nuxi.nl/) and contributors. +// +// 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 AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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 automatically generated. Do not edit. +// +// Source: https://github.com/NuxiNL/cloudabi + +#define ENTRY(name) \ + .text; \ + .p2align 2; \ + .global name; \ + .type name, %function; \ +name: + +#define END(name) .size name, . - name + +ENTRY(cloudabi_sys_clock_res_get) + str r0, [sp, #-16] + str r1, [sp, #-20] + mov r0, #0 + sub r2, sp, #16 + swi 0 + ldrcc r1, [sp, #-20] + ldrcc r2, [sp, #-16] + strcc r2, [r1, #0] + ldrcc r2, [sp, #-12] + strcc r2, [r1, #4] + bx lr +END(cloudabi_sys_clock_res_get) + +ENTRY(cloudabi_sys_clock_time_get) + str r0, [sp, #-16] + str r2, [sp, #-8] + str r3, [sp, #-4] + mov r0, #1 + sub r2, sp, #16 + swi 0 + ldrcc r1, [sp, #0] + ldrcc r2, [sp, #-16] + strcc r2, [r1, #0] + ldrcc r2, [sp, #-12] + strcc r2, [r1, #4] + bx lr +END(cloudabi_sys_clock_time_get) + +ENTRY(cloudabi_sys_condvar_signal) + str r0, [sp, #-24] + mov r0, #0 + str r0, [sp, #-20] + str r1, [sp, #-16] + str r2, [sp, #-8] + mov r0, #2 + sub r2, sp, #24 + swi 0 + bx lr +END(cloudabi_sys_condvar_signal) + +ENTRY(cloudabi_sys_fd_close) + str r0, [sp, #-16] + mov r0, #3 + sub r2, sp, #16 + swi 0 + bx lr +END(cloudabi_sys_fd_close) + +ENTRY(cloudabi_sys_fd_create1) + str r0, [sp, #-16] + str r1, [sp, #-20] + mov r0, #4 + sub r2, sp, #16 + swi 0 + ldrcc r1, [sp, #-20] + ldrcc r2, [sp, #-16] + strcc r2, [r1, #0] + bx lr +END(cloudabi_sys_fd_create1) + +ENTRY(cloudabi_sys_fd_create2) + str r0, [sp, #-16] + str r1, [sp, #-20] + str r2, [sp, #-24] + mov r0, #5 + sub r2, sp, #16 + swi 0 + ldrcc r1, [sp, #-20] + ldrcc r2, [sp, #-16] + strcc r2, [r1, #0] + ldrcc r1, [sp, #-24] + ldrcc r2, [sp, #-8] + strcc r2, [r1, #0] + bx lr +END(cloudabi_sys_fd_create2) + +ENTRY(cloudabi_sys_fd_datasync) + str r0, [sp, #-16] + mov r0, #6 + sub r2, sp, #16 + swi 0 + bx lr +END(cloudabi_sys_fd_datasync) + +ENTRY(cloudabi_sys_fd_dup) + str r0, [sp, #-16] + str r1, [sp, #-20] + mov r0, #7 + sub r2, sp, #16 + swi 0 + ldrcc r1, [sp, #-20] + ldrcc r2, [sp, #-16] + strcc r2, [r1, #0] + bx lr +END(cloudabi_sys_fd_dup) + +ENTRY(cloudabi_sys_fd_pread) + str r0, [sp, #-32] + str r1, [sp, #-24] + mov r0, #0 + str r0, [sp, #-20] + str r2, [sp, #-16] + str r0, [sp, #-12] + ldr r1, [sp, #0] + str r1, [sp, #-8] + ldr r1, [sp, #4] + str r1, [sp, #-4] + mov r0, #8 + sub r2, sp, #32 + swi 0 + ldrcc r1, [sp, #8] + ldrcc r2, [sp, #-32] + strcc r2, [r1, #0] + bx lr +END(cloudabi_sys_fd_pread) + +ENTRY(cloudabi_sys_fd_pwrite) + str r0, [sp, #-32] + str r1, [sp, #-24] + mov r0, #0 + str r0, [sp, #-20] + str r2, [sp, #-16] + str r0, [sp, #-12] + ldr r1, [sp, #0] + str r1, [sp, #-8] + ldr r1, [sp, #4] + str r1, [sp, #-4] + mov r0, #9 + sub r2, sp, #32 + swi 0 + ldrcc r1, [sp, #8] + ldrcc r2, [sp, #-32] + strcc r2, [r1, #0] + bx lr +END(cloudabi_sys_fd_pwrite) + +ENTRY(cloudabi_sys_fd_read) + str r0, [sp, #-24] + str r1, [sp, #-16] + mov r0, #0 + str r0, [sp, #-12] + str r2, [sp, #-8] + str r0, [sp, #-4] + str r3, [sp, #-28] + mov r0, #10 + sub r2, sp, #24 + swi 0 + ldrcc r1, [sp, #-28] + ldrcc r2, [sp, #-24] + strcc r2, [r1, #0] + bx lr +END(cloudabi_sys_fd_read) + +ENTRY(cloudabi_sys_fd_replace) + str r0, [sp, #-16] + str r1, [sp, #-8] + mov r0, #11 + sub r2, sp, #16 + swi 0 + bx lr +END(cloudabi_sys_fd_replace) + +ENTRY(cloudabi_sys_fd_seek) + str r0, [sp, #-24] + str r2, [sp, #-16] + str r3, [sp, #-12] + ldr r1, [sp, #0] + str r1, [sp, #-8] + mov r0, #12 + sub r2, sp, #24 + swi 0 + ldrcc r1, [sp, #4] + ldrcc r2, [sp, #-24] + strcc r2, [r1, #0] + ldrcc r2, [sp, #-20] + strcc r2, [r1, #4] + bx lr +END(cloudabi_sys_fd_seek) + +ENTRY(cloudabi_sys_fd_stat_get) + str r0, [sp, #-16] + str r1, [sp, #-8] + mov r0, #0 + str r0, [sp, #-4] + mov r0, #13 + sub r2, sp, #16 + swi 0 + bx lr +END(cloudabi_sys_fd_stat_get) + +ENTRY(cloudabi_sys_fd_stat_put) + str r0, [sp, #-24] + str r1, [sp, #-16] + mov r0, #0 + str r0, [sp, #-12] + str r2, [sp, #-8] + mov r0, #14 + sub r2, sp, #24 + swi 0 + bx lr +END(cloudabi_sys_fd_stat_put) + +ENTRY(cloudabi_sys_fd_sync) + str r0, [sp, #-16] + mov r0, #15 + sub r2, sp, #16 + swi 0 + bx lr +END(cloudabi_sys_fd_sync) + +ENTRY(cloudabi_sys_fd_write) + str r0, [sp, #-24] + str r1, [sp, #-16] + mov r0, #0 + str r0, [sp, #-12] + str r2, [sp, #-8] + str r0, [sp, #-4] + str r3, [sp, #-28] + mov r0, #16 + sub r2, sp, #24 + swi 0 + ldrcc r1, [sp, #-28] + ldrcc r2, [sp, #-24] + strcc r2, [r1, #0] + bx lr +END(cloudabi_sys_fd_write) + +ENTRY(cloudabi_sys_file_advise) + str r0, [sp, #-32] + str r2, [sp, #-24] + str r3, [sp, #-20] + ldr r1, [sp, #0] + str r1, [sp, #-16] + ldr r1, [sp, #4] + str r1, [sp, #-12] + ldr r1, [sp, #8] + str r1, [sp, #-8] + mov r0, #17 + sub r2, sp, #32 + swi 0 + bx lr +END(cloudabi_sys_file_advise) + +ENTRY(cloudabi_sys_file_allocate) + str r0, [sp, #-24] + str r2, [sp, #-16] + str r3, [sp, #-12] + ldr r1, [sp, #0] + str r1, [sp, #-8] + ldr r1, [sp, #4] + str r1, [sp, #-4] + mov r0, #18 + sub r2, sp, #24 + swi 0 + bx lr +END(cloudabi_sys_file_allocate) + +ENTRY(cloudabi_sys_file_create) + str r0, [sp, #-32] + str r1, [sp, #-24] + mov r0, #0 + str r0, [sp, #-20] + str r2, [sp, #-16] + str r0, [sp, #-12] + str r3, [sp, #-8] + mov r0, #19 + sub r2, sp, #32 + swi 0 + bx lr +END(cloudabi_sys_file_create) + +ENTRY(cloudabi_sys_file_link) + str r0, [sp, #-48] + str r1, [sp, #-44] + str r2, [sp, #-40] + mov r0, #0 + str r0, [sp, #-36] + str r3, [sp, #-32] + str r0, [sp, #-28] + ldr r1, [sp, #0] + str r1, [sp, #-24] + ldr r1, [sp, #4] + str r1, [sp, #-16] + str r0, [sp, #-12] + ldr r1, [sp, #8] + str r1, [sp, #-8] + str r0, [sp, #-4] + mov r0, #20 + sub r2, sp, #48 + swi 0 + bx lr +END(cloudabi_sys_file_link) + +ENTRY(cloudabi_sys_file_open) + str r0, [sp, #-40] + str r1, [sp, #-36] + str r2, [sp, #-32] + mov r0, #0 + str r0, [sp, #-28] + str r3, [sp, #-24] + str r0, [sp, #-20] + ldr r1, [sp, #0] + str r1, [sp, #-16] + ldr r1, [sp, #4] + str r1, [sp, #-8] + str r0, [sp, #-4] + mov r0, #21 + sub r2, sp, #40 + swi 0 + ldrcc r1, [sp, #8] + ldrcc r2, [sp, #-40] + strcc r2, [r1, #0] + bx lr +END(cloudabi_sys_file_open) + +ENTRY(cloudabi_sys_file_readdir) + str r0, [sp, #-32] + str r1, [sp, #-24] + mov r0, #0 + str r0, [sp, #-20] + str r2, [sp, #-16] + str r0, [sp, #-12] + ldr r1, [sp, #0] + str r1, [sp, #-8] + ldr r1, [sp, #4] + str r1, [sp, #-4] + mov r0, #22 + sub r2, sp, #32 + swi 0 + ldrcc r1, [sp, #8] + ldrcc r2, [sp, #-32] + strcc r2, [r1, #0] + bx lr +END(cloudabi_sys_file_readdir) + +ENTRY(cloudabi_sys_file_readlink) + str r0, [sp, #-40] + str r1, [sp, #-32] + mov r0, #0 + str r0, [sp, #-28] + str r2, [sp, #-24] + str r0, [sp, #-20] + str r3, [sp, #-16] + str r0, [sp, #-12] + ldr r1, [sp, #0] + str r1, [sp, #-8] + str r0, [sp, #-4] + mov r0, #23 + sub r2, sp, #40 + swi 0 + ldrcc r1, [sp, #4] + ldrcc r2, [sp, #-40] + strcc r2, [r1, #0] + bx lr +END(cloudabi_sys_file_readlink) + +ENTRY(cloudabi_sys_file_rename) + str r0, [sp, #-48] + str r1, [sp, #-40] + mov r0, #0 + str r0, [sp, #-36] + str r2, [sp, #-32] + str r0, [sp, #-28] + str r3, [sp, #-24] + ldr r1, [sp, #0] + str r1, [sp, #-16] + str r0, [sp, #-12] + ldr r1, [sp, #4] + str r1, [sp, #-8] + str r0, [sp, #-4] + mov r0, #24 + sub r2, sp, #48 + swi 0 + bx lr +END(cloudabi_sys_file_rename) + +ENTRY(cloudabi_sys_file_stat_fget) + str r0, [sp, #-16] + str r1, [sp, #-8] + mov r0, #0 + str r0, [sp, #-4] + mov r0, #25 + sub r2, sp, #16 + swi 0 + bx lr +END(cloudabi_sys_file_stat_fget) + +ENTRY(cloudabi_sys_file_stat_fput) + str r0, [sp, #-24] + str r1, [sp, #-16] + mov r0, #0 + str r0, [sp, #-12] + str r2, [sp, #-8] + mov r0, #26 + sub r2, sp, #24 + swi 0 + bx lr +END(cloudabi_sys_file_stat_fput) + +ENTRY(cloudabi_sys_file_stat_get) + str r0, [sp, #-32] + str r1, [sp, #-28] + str r2, [sp, #-24] + mov r0, #0 + str r0, [sp, #-20] + str r3, [sp, #-16] + str r0, [sp, #-12] + ldr r1, [sp, #0] + str r1, [sp, #-8] + str r0, [sp, #-4] + mov r0, #27 + sub r2, sp, #32 + swi 0 + bx lr +END(cloudabi_sys_file_stat_get) + +ENTRY(cloudabi_sys_file_stat_put) + str r0, [sp, #-40] + str r1, [sp, #-36] + str r2, [sp, #-32] + mov r0, #0 + str r0, [sp, #-28] + str r3, [sp, #-24] + str r0, [sp, #-20] + ldr r1, [sp, #0] + str r1, [sp, #-16] + str r0, [sp, #-12] + ldr r1, [sp, #4] + str r1, [sp, #-8] + mov r0, #28 + sub r2, sp, #40 + swi 0 + bx lr +END(cloudabi_sys_file_stat_put) + +ENTRY(cloudabi_sys_file_symlink) + str r0, [sp, #-40] + mov r0, #0 + str r0, [sp, #-36] + str r1, [sp, #-32] + str r0, [sp, #-28] + str r2, [sp, #-24] + str r3, [sp, #-16] + str r0, [sp, #-12] + ldr r1, [sp, #0] + str r1, [sp, #-8] + str r0, [sp, #-4] + mov r0, #29 + sub r2, sp, #40 + swi 0 + bx lr +END(cloudabi_sys_file_symlink) + +ENTRY(cloudabi_sys_file_unlink) + str r0, [sp, #-32] + str r1, [sp, #-24] + mov r0, #0 + str r0, [sp, #-20] + str r2, [sp, #-16] + str r0, [sp, #-12] + str r3, [sp, #-8] + mov r0, #30 + sub r2, sp, #32 + swi 0 + bx lr +END(cloudabi_sys_file_unlink) + +ENTRY(cloudabi_sys_lock_unlock) + str r0, [sp, #-16] + mov r0, #0 + str r0, [sp, #-12] + str r1, [sp, #-8] + mov r0, #31 + sub r2, sp, #16 + swi 0 + bx lr +END(cloudabi_sys_lock_unlock) + +ENTRY(cloudabi_sys_mem_advise) + str r0, [sp, #-24] + mov r0, #0 + str r0, [sp, #-20] + str r1, [sp, #-16] + str r0, [sp, #-12] + str r2, [sp, #-8] + mov r0, #32 + sub r2, sp, #24 + swi 0 + bx lr +END(cloudabi_sys_mem_advise) + +ENTRY(cloudabi_sys_mem_map) + str r0, [sp, #-48] + mov r0, #0 + str r0, [sp, #-44] + str r1, [sp, #-40] + str r0, [sp, #-36] + str r2, [sp, #-32] + str r3, [sp, #-24] + ldr r1, [sp, #0] + str r1, [sp, #-16] + ldr r1, [sp, #8] + str r1, [sp, #-8] + ldr r1, [sp, #12] + str r1, [sp, #-4] + mov r0, #33 + sub r2, sp, #48 + swi 0 + ldrcc r1, [sp, #16] + ldrcc r2, [sp, #-48] + strcc r2, [r1, #0] + bx lr +END(cloudabi_sys_mem_map) + +ENTRY(cloudabi_sys_mem_protect) + str r0, [sp, #-24] + mov r0, #0 + str r0, [sp, #-20] + str r1, [sp, #-16] + str r0, [sp, #-12] + str r2, [sp, #-8] + mov r0, #34 + sub r2, sp, #24 + swi 0 + bx lr +END(cloudabi_sys_mem_protect) + +ENTRY(cloudabi_sys_mem_sync) + str r0, [sp, #-24] + mov r0, #0 + str r0, [sp, #-20] + str r1, [sp, #-16] + str r0, [sp, #-12] + str r2, [sp, #-8] + mov r0, #35 + sub r2, sp, #24 + swi 0 + bx lr +END(cloudabi_sys_mem_sync) + +ENTRY(cloudabi_sys_mem_unmap) + str r0, [sp, #-16] + mov r0, #0 + str r0, [sp, #-12] + str r1, [sp, #-8] + str r0, [sp, #-4] + mov r0, #36 + sub r2, sp, #16 + swi 0 + bx lr +END(cloudabi_sys_mem_unmap) + +ENTRY(cloudabi_sys_poll) + str r0, [sp, #-24] + mov r0, #0 + str r0, [sp, #-20] + str r1, [sp, #-16] + str r0, [sp, #-12] + str r2, [sp, #-8] + str r0, [sp, #-4] + str r3, [sp, #-28] + mov r0, #37 + sub r2, sp, #24 + swi 0 + ldrcc r1, [sp, #-28] + ldrcc r2, [sp, #-24] + strcc r2, [r1, #0] + bx lr +END(cloudabi_sys_poll) + +ENTRY(cloudabi_sys_proc_exec) + str r0, [sp, #-40] + str r1, [sp, #-32] + mov r0, #0 + str r0, [sp, #-28] + str r2, [sp, #-24] + str r0, [sp, #-20] + str r3, [sp, #-16] + str r0, [sp, #-12] + ldr r1, [sp, #0] + str r1, [sp, #-8] + str r0, [sp, #-4] + mov r0, #38 + sub r2, sp, #40 + swi 0 + bx lr +END(cloudabi_sys_proc_exec) + +ENTRY(cloudabi_sys_proc_exit) + str r0, [sp, #-16] + mov r0, #39 + sub r2, sp, #16 + swi 0 +END(cloudabi_sys_proc_exit) + +ENTRY(cloudabi_sys_proc_fork) + str r0, [sp, #-20] + str r1, [sp, #-24] + mov r0, #40 + sub r2, sp, #16 + swi 0 + ldrcc r1, [sp, #-20] + ldrcc r2, [sp, #-16] + strcc r2, [r1, #0] + ldrcc r1, [sp, #-24] + ldrcc r2, [sp, #-8] + strcc r2, [r1, #0] + bx lr +END(cloudabi_sys_proc_fork) + +ENTRY(cloudabi_sys_proc_raise) + str r0, [sp, #-16] + mov r0, #41 + sub r2, sp, #16 + swi 0 + bx lr +END(cloudabi_sys_proc_raise) + +ENTRY(cloudabi_sys_random_get) + str r0, [sp, #-16] + mov r0, #0 + str r0, [sp, #-12] + str r1, [sp, #-8] + str r0, [sp, #-4] + mov r0, #42 + sub r2, sp, #16 + swi 0 + bx lr +END(cloudabi_sys_random_get) + +ENTRY(cloudabi_sys_sock_recv) + str r0, [sp, #-24] + str r1, [sp, #-16] + mov r0, #0 + str r0, [sp, #-12] + str r2, [sp, #-8] + str r0, [sp, #-4] + mov r0, #43 + sub r2, sp, #24 + swi 0 + bx lr +END(cloudabi_sys_sock_recv) + +ENTRY(cloudabi_sys_sock_send) + str r0, [sp, #-24] + str r1, [sp, #-16] + mov r0, #0 + str r0, [sp, #-12] + str r2, [sp, #-8] + str r0, [sp, #-4] + mov r0, #44 + sub r2, sp, #24 + swi 0 + bx lr +END(cloudabi_sys_sock_send) + +ENTRY(cloudabi_sys_sock_shutdown) + str r0, [sp, #-16] + str r1, [sp, #-8] + mov r0, #45 + sub r2, sp, #16 + swi 0 + bx lr +END(cloudabi_sys_sock_shutdown) + +ENTRY(cloudabi_sys_thread_create) + str r0, [sp, #-16] + mov r0, #0 + str r0, [sp, #-12] + str r1, [sp, #-20] + mov r0, #46 + sub r2, sp, #16 + swi 0 + ldrcc r1, [sp, #-20] + ldrcc r2, [sp, #-16] + strcc r2, [r1, #0] + bx lr +END(cloudabi_sys_thread_create) + +ENTRY(cloudabi_sys_thread_exit) + str r0, [sp, #-16] + mov r0, #0 + str r0, [sp, #-12] + str r1, [sp, #-8] + mov r0, #47 + sub r2, sp, #16 + swi 0 +END(cloudabi_sys_thread_exit) + +ENTRY(cloudabi_sys_thread_yield) + mov r0, #48 + sub r2, sp, #16 + swi 0 + bx lr +END(cloudabi_sys_thread_yield)