The program remote
The remote service: the calls of the host (docs/MODULE_CONTRACT.md, section 4, "A call from the host").
The program holds one endpoint whose grant names the host (10.0.2.2, port remote.HOST_PORT), and a ring to the root service that serves Connect and Disconnect only, to the services that the root service names for it. A call request from the host names a service, an export and the bytes of the call region; this program copies them in the call region of its connection to the service, makes the isolated call, and sends the call answer. It does not read the descriptions: the host encoded the call with them, and the service checks the call region.
It trusts nothing in a datagram (remote.request_check). It keeps the last call answer: a request with its number gets it again, and the call does not run two times.
The window shows the counts of the requests, the answers and the refusals, the connections, and the last calls.
| Fact | Value |
|---|---|
| Source | programs/remote |
| Boot image | in the boot image; the image is not built, so its size is not known |
| Imports | none |
| Imported by | none |
Exports
| Export | What it does |
|---|---|
| entry() |
Read from the source of the module, as the build reads it to describe the exports (tools/kerneltool/describe.odin).
What the root service gives it
| What | Value | As the root service says |
|---|---|---|
| Grants | {.Connect, .Network, .Person} | The calls of the host: an endpoint whose grant names the host, connections to the services of callable_of, and the grant to act for the person (docs/MODULE_CONTRACT.md, "A call from the host"). |
| Budget: pages, programs, threads | {pages = 2048, programs = 1, threads = 1} | Not named in things_of: the budget of each other program. |
Read from grants_of and things_of in programs/root/main.odin; budget_of in the same file adds the limits of processor time and of log records.
