From 3dd766efdbfbd0dc0227084f06f5040e529f9ba7 Mon Sep 17 00:00:00 2001 From: Aaron Kaiser Date: Fri, 5 Apr 2024 12:26:59 +0200 Subject: [PATCH] Test communication --- Makefile | 8 ++++---- src/agent.jazz | 11 ++++++++++- syscall/jasmin_syscall.c | 4 ++-- syscall/jasmin_syscall.o | Bin 3144 -> 3136 bytes 4 files changed, 16 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index ed2498a..0c3e93c 100644 --- a/Makefile +++ b/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 diff --git a/src/agent.jazz b/src/agent.jazz index ab44a8c..22da3c6 100644 --- a/src/agent.jazz +++ b/src/agent.jazz @@ -1,7 +1,16 @@ from Jade require "crypto_scalarmult/curve25519/amd64/mulx/curve25519.jinc" export fn agent_start(reg u64 shared_mem sync_mem) { + 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); } } diff --git a/syscall/jasmin_syscall.c b/syscall/jasmin_syscall.c index 7da50ea..ea7d42c 100644 --- a/syscall/jasmin_syscall.c +++ b/syscall/jasmin_syscall.c @@ -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); diff --git a/syscall/jasmin_syscall.o b/syscall/jasmin_syscall.o index ef6829ffb14b809bcc051dc9cb89b036cdb07736..66eefbc53e25fa251957d3256a671da0ca065ee2 100644 GIT binary patch delta 308 zcmX>haX?~%2IGN^nwpGEo!2HuFovt~%eycz1bcK|^XUBTYIyQE6C(oygR9|zT_D=< zz)ldg|J3H2jQoto(F_a>432yP%}jB85>9*yZhR7sd;(rvd>oG48Vn2!D?suL3=C!< z8mumTvo!NkM#kvL2U+47%{D8t$}=$2a^-IK_Uye?HLs&KjgM&beOEjqYeNkIaTKX delta 315 zcmX>gaYAB(2IGm1nwpGky_*<5{Qo~WgfU!eLa+yf=h6Aw)$pXN;enlu3=9nWPcbks z7#=v@1X2hR*u}W{A|pQ|cRT|F1A`-U)