mirror of
https://github.com/fosslinux/live-bootstrap.git
synced 2026-03-23 19:46:31 +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
|
||||
|
||||
#error arch not supported
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue