static uintptr_t syscall6(uintptr_t which, uint64_t arg0, uint64_t arg1, uint64_t arg2, uint64_t arg3, uint64_t arg4)
{
volatile uint64_t magic_mem[8] __attribute__((aligned(64)));
magic_mem[0] = which;
magic_mem[1] = arg0;
magic_mem[2] = arg1;
magic_mem[3] = arg2;
magic_mem[4] = arg3;
magic_mem[5] = arg4;
__sync_synchronize();
tohost = (uintptr_t)magic_mem;
while (fromhost == 0)
;
fromhost = 0;
__sync_synchronize();
return magic_mem[0];
}
int open( char *filename, int access, int permission )
{
int ret = syscall6(SYS_open, AT_FDCWD, (uintptr_t)filename, strlen(filename), access, permission);
return ret;
}
int read( int handle, void *buffer, int nbyte )
{
int ret = syscall(SYS_read, handle, (uintptr_t)buffer, nbyte);
return ret;
}
int write( int handle, void *buffer, int nbyte )
{
int ret = syscall(SYS_write, handle, (uintptr_t)buffer, nbyte);
return ret;
}
int close( int handle )
{
int ret = syscall(SYS_close, handle, 0, 0);
return ret;
}
#define O_RDONLY 0x0000
#define O_WRONLY 0x0001
#define O_RDWR 0x0002
#define O_ACCMODE 0x0003
//#define O_CREAT 0x0100
#define O_CREAT 0x0200
#define S_IRWXU 0000700
extern int open( char *filename, int access, int permission );
extern int read( int handle, void *buffer, int nbyte );
extern int write( int handle, void *buffer, int nbyte );
extern int close( int handle );./simulator-chipyard-Sha3RocketConfig-debug ../../tests/sha3/bare/sha3-rocc.riscvThis emulator compiled with JTAG Remote Bitbang client. To enable, use +jtag_rbb_enable=1.Listening on port 43881[UART] UART0 is here (stdin/stdout).terminate called after throwing an instance of 'std::runtime_error' what(): bad syscall #1024......
#define OLD_SYSCALL_THRESHOLD 1024#define SYS_open 1024
......
#define AT_FDCWD -100
#define SYS_write 64
#define SYS_read 63
#define SYS_open 56
#define SYS_close 57riscv64-unknown-elf-gcc -DPREALLOCATE=1 -DMULTITHREAD=1 -mcmodel=medany -std=gnu99 -O2 -ffast-math -fno-common -fno-builtin-printf -march=rv64gc -Wa,-march=rv64gcxhwacha -lm -lgcc -I/home/lei/work/chipyard1.1/chipyard/generators/gemmini/software/gemmini-rocc-tests/build/../riscv-tests -I/home/lei/work/chipyard1.1/chipyard/generators/gemmini/software/gemmini-rocc-tests/build/../riscv-tests/env -I/home/lei/work/chipyard1.1/chipyard/generators/gemmini/software/gemmini-rocc-tests/build/.. -I/home/lei/work/chipyard1.1/chipyard/generators/gemmini/software/gemmini-rocc-tests/build/../riscv-tests/benchmarks/common -DID_STRING= -nostdlib -nostartfiles -static -T /home/lei/work/chipyard1.1/chipyard/generators/gemmini/software/gemmini-rocc-tests/build/../riscv-tests/benchmarks/common/test.ld -DBAREMETAL=1 /home/lei/work/chipyard1.1/chipyard/generators/gemmini/software/gemmini-rocc-tests/build/../bareMetalC/aligned.c -o aligned-baremetal \
/home/lei/work/chipyard1.1/chipyard/generators/gemmini/software/gemmini-rocc-tests/build/../riscv-tests/benchmarks/common/syscalls.c /home/lei/work/chipyard1.1/chipyard/generators/gemmini/software/gemmini-rocc-tests/build/../riscv-tests/benchmarks/common/crt.S