Commit graph

32 commits

Author SHA1 Message Date
Sean Cross
ea3a473c9f reworking memory allocation
The kernel should run in a `no_std` environment, which means it must
currently run without `alloc`. We have our own allocation methods when
running on baremetal hardware.

Begin the work to break out the allocation method so that it will work
on both desktop and baremetal environments.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-08-03 17:40:57 +08:00
Sean Cross
21aa67b748 workspace: remove workspace
The kernel and userspace both need to use `xous`, but have different
requirements. If we use a workspace, then all instances of `xous-rs`
must have the same feature set.

This breaks them apart so the kernel can have one set of features and
programs can have another set.

As part of this change, tests are now integrated into the kernel, and a
new `create_process_as_thread()` and `wait_process_as_thread()` function
pair have been added.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-08-02 16:11:12 +08:00
Sean Cross
cece761ff1 xous: SID: convert to using newtype
Rather than simply casting a tuple as a type, create a new struct SID.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-07-29 20:03:21 +08:00
Sean Cross
c2ac69a752 shell: hack to get test working
THis can now connect to the log server.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-07-29 19:31:49 +08:00
Sean Cross
e7e8a2b748 kernel: get initial hosted non-test processes working
This now has the ability to fork off processes.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-07-29 17:52:01 +08:00
Sean Cross
88d8274a19 examples: log: begin refactoring for desktop
Signed-off-by: Sean Cross <sean@xobs.io>
2020-07-23 19:06:41 +08:00
Sean Cross
8f74159674 rename ImmutableBorrow -> Borrow
THis is more in-line with Rust conventions.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-07-13 19:19:25 +08:00
Sean Cross
723529ba20 wip: working on getting message passing working
The goal is to get a basic message passing engine working that will also
function as a device that works on real hardware.

This is still reworking it to function correctly on a desktop system.
Once that is working, it will be reworked to function once again on
hardware.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-06-15 18:13:10 +08:00
Sean Cross
6ad48ab062 examples: shell: adapt to new form of syscalls
We're not slinging raw pointers around anymore.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-06-03 15:39:48 +08:00
Sean Cross
8cc43d64b5 examples: log: get building cross-platform
Signed-off-by: Sean Cross <sean@xobs.io>
2020-06-03 15:39:38 +08:00
Sean Cross
0fae191651 examples: shell: get building in a hosted env
Signed-off-by: Sean Cross <sean@xobs.io>
2020-06-03 11:02:44 +08:00
Sean Cross
40d4483e4f clippy: fix several clippy warnings
Signed-off-by: Sean Cross <sean@xobs.io>
2020-06-01 11:36:19 +08:00
Sean Cross
d4db20e516 kernel: add preemptive multitasking
This is still a work in progress, but we now can have multiple processes
running at once.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-04-06 15:52:07 +08:00
Sean Cross
8789203eb3 test mutable borrows
Signed-off-by: Sean Cross <sean@xobs.io>
2020-04-03 14:24:02 +08:00
Sean Cross
ed977fd564 kernel: initial work to support lending pages
This lays groundwork to support lending pages from one process to
another, and to restore permissions when pages are handed back.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-04-02 17:40:14 +08:00
Sean Cross
834c637783 examples: go to sleep when we panic
This prevents this process from constantly hogging the CPU.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-04-01 13:20:31 +08:00
Sean Cross
bdb8eac9ad MemoryRange: move to using this struct for memory ranges
This is a combination of MemoryAddress and MemorySize.  This is
guaranteed to be not null.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-04-01 10:28:36 +08:00
Sean Cross
94459c8d43 examples: add log strings
Signed-off-by: Sean Cross <sean@xobs.io>
2020-03-31 18:37:40 +08:00
Sean Cross
abce9eb0c1 message::move: implement movable messages
This is the first implementation of message passing with moving memory.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-03-31 18:03:19 +08:00
Sean Cross
8c3f931445 messaging: first message passing example
THis commit allows us to pass Scalar messages between processes.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-03-30 16:07:58 +08:00
Sean Cross
8b54ebff35 examples: the beginnings of message passing and receiving
Signed-off-by: Sean Cross <sean@xobs.io>
2020-03-19 17:26:16 +08:00
Sean Cross
4597e5291c log: print out received message
The syscall isn't hooked up yet, but we're ready for when it is.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-03-19 09:06:21 +08:00
Sean Cross
2abf3c8600 examples: remove memory checks
These take a long time to start up.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-03-16 19:04:26 +08:00
Sean Cross
1730cb377b examples: log: use name when creating server
The create_server call now takes a name.  Provide this name.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-03-16 19:02:40 +08:00
Sean Cross
4cd6a5d64d log: call create_server syscall
Signed-off-by: Sean Cross <sean@xobs.io>
2020-03-14 15:58:22 +08:00
Sean Cross
672896a1a3 log: use claim_interrupt wrapper
Signed-off-by: Sean Cross <sean@xobs.io>
2020-03-14 15:42:11 +08:00
Sean Cross
c2008e5fe8 syscall: implement map_memory wrapper
Signed-off-by: Sean Cross <sean@xobs.io>
2020-03-13 20:33:08 +08:00
Sean Cross
5ce653882e log: add log example
Note: does not currently log

Signed-off-by: Sean Cross <sean@xobs.io>
2020-03-13 20:32:44 +08:00
Sean Cross
1ba52da9a3 shell: don't specify an address
Since we can now omit virtual addresses, use this feature when
allocating the UART.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-03-13 12:45:15 +08:00
Sean Cross
17dd2dcd6f shell: increase dummy allocations
In order to test dummy allocations, increase these sizes.

Note that this also causes an error in release mode.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-03-10 17:32:01 +08:00
Sean Cross
c09b140306 examples: shell: use 32-bit timer csr
Signed-off-by: Sean Cross <sean@xobs.io>
2020-03-10 16:41:48 +08:00
Sean Cross
b9effd701b shell: add example shell
Signed-off-by: Sean Cross <sean@xobs.io>
2020-03-10 12:46:05 +08:00