Commit 98ee440
authored
Record that standard input is the handle zero, which one interface reserves (#17)
The streams this implementation hands out are the environment's own descriptors,
which is what openkal.stream's transfer operations take and what makes a stream
it hands out interchangeable with one it received. Standard input is therefore
the handle zero, and kal_spawn_streams reserves zero to mean "the stream the
parent has".
The two readings agree at position `in` --- placing standard input at standard
input and inheriting it are the same act --- and cannot be told apart anywhere
else. openkal-musl found it while answering openkal-linux#13: classifying "this
descriptor has no stream" by the handle's VALUE refused every spawn.
Nothing changes. Packing these three would make a stream this implementation
hands out different in kind from the descriptors kal_fs_stream and
kal_process_channel report, and the interface has no operation that would unpack
it for a caller. The specification records the collision (mcpplibs/openkal#18)
and openkal-musl refuses the one spawn it makes inexpressible; what was missing
was a reader of this file being able to see any of that.1 parent baa5d93 commit 98ee440
1 file changed
Lines changed: 20 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
6 | 26 | | |
7 | 27 | | |
8 | 28 | | |
| |||
0 commit comments