string := @use("rel:string.hb") receive_message := fn(buffer_id: int, memory_map_location: ^u8, length: int): ^u8 { return @eca(^u8, 4, buffer_id, memory_map_location, length) } send_message := fn(buffer_id: int): void { message := "Hello there\0" message_length := string.length(message) @eca(i32, 3, buffer_id, message, message_length) return } create := fn(msg: ^u8): int { msg_length := string.length(msg); *msg = 0 return @eca(int, 3, 0, msg, msg_length) } search := fn(msg: ^u8): int { msg_length := string.length(msg); *msg = 3 return @eca(int, 3, 0, msg, msg_length) }