tree 1a69fb1db24a00018e4206ff82f49c60b4185766
parent dab5817bcf2b0f9db645bbba5cc6f9c71e9c0e38
author Johnathan Van Why <jrvanwhy@google.com> 1612503967 -0800
committer Johnathan Van Why <jrvanwhy@google.com> 1612503967 -0800

Make ErrorCode an enum that exactly represents the ErrorCode values the kernel can return.

I previously made ErrorCode a struct that can represent any u32 value because it was unclear what values future Tock versions may return. The Tock 2.0 TRD now says that the kernel will never return an error code of 0 or an error code greater than 1023, so we can rely on that.

This has the benefit of enabling niche optimizations on the type. The zero value is now a usable niche (zero being the most efficient value to compare against in many cases), as well as all values above 1023.

There are two drawbacks to this approach:

1. 3 more uses of `unsafe` in CommandReturn, maybe a few extra uses in the Syscalls implementation.
2. A huge block of reserved numbers in ErrorCode.

I used the following code to generate the number block, and vim commands to format it:
```
fn main() {
    for i in 1..=1023 {
        print!("N{:05} = {:05}, ", i, i);
        if i % 5 == 0 { println!(); }
    }
}
```
