Test communication
This commit is contained in:
8
Makefile
8
Makefile
@@ -7,11 +7,11 @@ MAKE ?= make
|
||||
all: build
|
||||
@true
|
||||
|
||||
build: build/agent.o
|
||||
ar -crs build/libagent.a build/agent.o
|
||||
build: build/agent.o syscall/jasmin_syscall.o
|
||||
ar -crs build/libagent.a build/agent.o syscall/jasmin_syscall.o
|
||||
|
||||
build/%.o: build/%.S syscall/jasmin_syscall.o
|
||||
$(CC) $< syscall/jasmin_syscall.o -c -o $@
|
||||
build/%.o: build/%.S
|
||||
$(CC) $< -c -o $@
|
||||
|
||||
clean:
|
||||
rm build/* 2> /dev/null || true
|
||||
|
||||
@@ -1,7 +1,16 @@
|
||||
from Jade require "crypto_scalarmult/curve25519/amd64/mulx/curve25519.jinc"
|
||||
|
||||
export fn agent_start(reg u64 shared_mem sync_mem) {
|
||||
while (true) {
|
||||
stack u8[8] unused;
|
||||
reg u64 spill_sync_mem;
|
||||
spill_sync_mem = sync_mem;
|
||||
|
||||
while (true) {
|
||||
unused = unused;
|
||||
sync_mem = spill_sync_mem;
|
||||
unused = #read(unused, sync_mem);
|
||||
unused = unused;
|
||||
sync_mem = spill_sync_mem;
|
||||
unused = #write(unused, sync_mem);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -90,7 +90,7 @@ uint64_t __jasmin_syscall_open__(uint8_t* x, uint64_t xlen)
|
||||
|
||||
uint8_t* __jasmin_syscall_read__(uint8_t* _x, uint64_t xlen, uint64_t fd)
|
||||
{
|
||||
uint32_t* addr = (uint32_t*)(uintptr_t)(fd - 4096);
|
||||
uint32_t* addr = (uint32_t*)(uintptr_t)fd;
|
||||
long ret = syscall(SYS_futex, addr, FUTEX_WAIT, 0x1, NULL, NULL, 0);
|
||||
if (ret == -1) {
|
||||
printf("%d\n", errno);
|
||||
@@ -102,7 +102,7 @@ uint8_t* __jasmin_syscall_read__(uint8_t* _x, uint64_t xlen, uint64_t fd)
|
||||
|
||||
uint8_t* __jasmin_syscall_write__(uint8_t* _x, uint64_t xlen, uint64_t fd)
|
||||
{
|
||||
uint32_t* addr = (uint32_t*)(uintptr_t)(fd - 4096);
|
||||
uint32_t* addr = (uint32_t*)(uintptr_t)fd;
|
||||
*addr = 1;
|
||||
syscall(SYS_futex, addr, FUTEX_WAKE, 1, NULL, NULL, 0);
|
||||
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user