Commit Graph

10 Commits (4457af72776943ca0a68c4a7824740e1b468360c)

Author SHA1 Message Date
pca006132 4457af7277 rpc: Fixed alignment problem.
Fixes issue #42.

Previously there was no fix for the variable alignment.
We calculate the position of the variable based on the size
of the previous variable, so we could break the alignment requirement
for variables. For example, having a `i64` after `bool` could break
the alignment required for `i64` and trigger DataAbort or data
corruption.

However, this requires the same data layout and LLVM type for the
variables. If this cannot be maintained, this would break the alignment
on the other side of the RPC, either from host to kernel or kernel to
host.
2020-07-16 14:06:39 +08:00
Sebastien Bourdeauducq de8da59e56 adjust logging levels 2020-07-05 23:46:23 +08:00
Sebastien Bourdeauducq 06915ec25d rpc: make alloc async 2020-06-07 21:47:36 +08:00
Sebastien Bourdeauducq 7df6ab2149 rpc: use async-recursion 2020-06-07 21:30:33 +08:00
Sebastien Bourdeauducq f0588c49ed rpc: make receive async 2020-06-07 20:24:41 +08:00
Sebastien Bourdeauducq ef4bdbb668 rpc: enable logging 2020-06-07 20:23:43 +08:00
Sebastien Bourdeauducq ed21457f28 replace libio with core_io
* based on https://github.com/jethrogb/rust-core_io but could not get the packaging scripts to work
  and the repos is unmaintained anyway, so just copied the result
* more features and more up-to-date
* compatible with the fatfs crate
2020-06-05 17:14:36 +08:00
Sebastien Bourdeauducq d65df2f454 rpc: revert to libio
* Recursive async fns in Rust are a mess and not usable.
* When doing ARTIQ async RPCs, it is simpler to encode the buffer on the kernel CPU and pass that to the comms CPU,
  instead of tracking when kernel CPU memory with the RPC values can be freed.
2020-06-03 11:17:49 +08:00
Sebastien Bourdeauducq cb24b82e68 rpc: strings 2020-06-01 18:21:04 +08:00
Sebastien Bourdeauducq 7aa9a95c21 add RPC protocol module (WIP) 2020-06-01 18:02:21 +08:00