mirror of
https://github.com/fosslinux/live-bootstrap.git
synced 2026-03-23 11:36:32 +01:00
port to riscv{32,64}
This commit is contained in:
parent
c487ab80c2
commit
f3cf29ed11
1 changed files with 94 additions and 0 deletions
94
sysa/wrap.c
94
sysa/wrap.c
|
|
@ -126,6 +126,100 @@ int chroot(char *path) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#elif __riscv && __riscv_xlen==32
|
||||||
|
|
||||||
|
int unshare(int flags) {
|
||||||
|
asm (
|
||||||
|
"rd_a0 rs1_fp !-4 lw"
|
||||||
|
"rd_a7 !97 addi"
|
||||||
|
"ecall"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
int geteuid() {
|
||||||
|
asm (
|
||||||
|
"rd_a7 !175 addi"
|
||||||
|
"ecall"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
int getegid() {
|
||||||
|
asm (
|
||||||
|
"rd_a7 !177 addi"
|
||||||
|
"ecall"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
int mount (
|
||||||
|
char *source, char *target, char *filesystemtype,
|
||||||
|
unsigned mountflags, void *data
|
||||||
|
) {
|
||||||
|
asm (
|
||||||
|
"rd_a0 rs1_fp !-4 lw"
|
||||||
|
"rd_a1 rs1_fp !-8 lw"
|
||||||
|
"rd_a2 rs1_fp !-12 lw"
|
||||||
|
"rd_a3 rs1_fp !-16 lw"
|
||||||
|
"rd_a4 rs1_fp !-20 lw"
|
||||||
|
"rd_a7 !40 addi"
|
||||||
|
"ecall"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
int chroot(char *path) {
|
||||||
|
asm (
|
||||||
|
"rd_a0 rs1_fp !-4 lw"
|
||||||
|
"rd_a7 !51 addi"
|
||||||
|
"ecall"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#elif __riscv && __riscv_xlen==64
|
||||||
|
|
||||||
|
int unshare(int flags) {
|
||||||
|
asm (
|
||||||
|
"rd_a0 rs1_fp !-8 ld"
|
||||||
|
"rd_a7 !97 addi"
|
||||||
|
"ecall"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
int geteuid() {
|
||||||
|
asm (
|
||||||
|
"rd_a7 !175 addi"
|
||||||
|
"ecall"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
int getegid() {
|
||||||
|
asm (
|
||||||
|
"rd_a7 !177 addi"
|
||||||
|
"ecall"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
int mount (
|
||||||
|
char *source, char *target, char *filesystemtype,
|
||||||
|
unsigned mountflags, void *data
|
||||||
|
) {
|
||||||
|
asm (
|
||||||
|
"rd_a0 rs1_fp !-8 ld"
|
||||||
|
"rd_a1 rs1_fp !-16 ld"
|
||||||
|
"rd_a2 rs1_fp !-24 ld"
|
||||||
|
"rd_a3 rs1_fp !-32 ld"
|
||||||
|
"rd_a4 rs1_fp !-40 ld"
|
||||||
|
"rd_a7 !40 addi"
|
||||||
|
"ecall"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
int chroot(char *path) {
|
||||||
|
asm (
|
||||||
|
"rd_a0 rs1_fp !-8 ld"
|
||||||
|
"rd_a7 !51 addi"
|
||||||
|
"ecall"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#error arch not supported
|
#error arch not supported
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue