linux-syscalls 0.4.0

A library to easily invoke linux system calls.
Documentation
# Syscall registers
# +-------+------+------+------+------+------+------+--------+
# | sysno | arg0 | arg1 | arg2 | arg3 | arg4 | arg5 | return |
# +-------+------+------+------+------+------+------+--------+
# |  r1   |  r2  |  r3  |  r4  |  r5  |  r6  |  r7  |   r2   |
# +-------+------+------+------+------+------+------+--------+
#
# sysv calling convention
# +----------+--------------------+-------------------+
# |  return  |       params       | additional params |
# +----------+--------------------+-------------------+
# |  r2, r3  | r2, r3, r4, r5, r6 |    stack RTL      |
# +----------+--------------------+-------------------+
#
# r2-r6 are the same of sysv calling convention so we can reuse them.

  .text

  .globl linux_syscalls_rs_syscall0
  .type  linux_syscalls_rs_syscall0,%function
linux_syscalls_rs_syscall0:
  lgr   %r1, %r2
  svc   0
  br    %r14

  .globl linux_syscalls_rs_syscall1
  .type  linux_syscalls_rs_syscall1,%function
linux_syscalls_rs_syscall1:
  lgr   %r1, %r3
  svc   0
  br    %r14

  .globl linux_syscalls_rs_syscall1_noreturn
  .type  linux_syscalls_rs_syscall1_noreturn,%function
linux_syscalls_rs_syscall1_noreturn:
  lgr   %r1, %r3
  svc   0
  trap2

  .globl linux_syscalls_rs_syscall2
  .type  linux_syscalls_rs_syscall2,%function
linux_syscalls_rs_syscall2:
  lgr   %r1, %r4
  svc   0
  br    %r14

  .globl linux_syscalls_rs_syscall3
  .type  linux_syscalls_rs_syscall3,%function
linux_syscalls_rs_syscall3:
  lgr   %r1, %r5
  svc   0
  br    %r14

  .globl linux_syscalls_rs_syscall4
  .type  linux_syscalls_rs_syscall4,%function
linux_syscalls_rs_syscall4:
  lgr   %r1, %r6
  svc   0
  br    %r14

  .globl linux_syscalls_rs_syscall5
  .type  linux_syscalls_rs_syscall5,%function
linux_syscalls_rs_syscall5:
  lg    %r1, 160(%r6)
  svc   0
  br    %r14

  .globl linux_syscalls_rs_syscall6
  .type  linux_syscalls_rs_syscall6,%function
linux_syscalls_rs_syscall6:
  stmg  %r7, %r15, 56(%r15)
  lg    %r1, 168(%r15)
  lg    %r7, 160(%r15)
  svc   0
  lmg   %r7, %r15, 56(%r15)
  br    %r14