+-------+-------+-------+-------+
| rw-socket-fd |
+-------------------------------+
-| ro-socket-fd |
+| evtchn-fd |
+-------------------------------+
```
| `rw-socket-fd` | The file descriptor of the socket accepting |
| | read-write connections |
| | |
-| `ro-socket-fd` | The file descriptor of the socket accepting |
-| | read-only connections |
+| `evtchn-fd` | The file descriptor used to communicate with |
+| | the event channel driver |
xenstored will resume in the original process context. Hence `rw-socket-fd` and
`ro-socket-fd` simply specify the file descriptors of the sockets. Sockets
```
0 1 2 3 4 5 6 7 octet
+-------+-------+-------+-------+-------+-------+-------+-------+
-| conn-id | conn-type | flags |
+| conn-id | conn-type | |
+-------------------------------+---------------+---------------+
| conn-spec
...
| | 0x0001: socket |
| | 0x0002 - 0xFFFF: reserved for future use |
| | |
-| `flags` | A bit-wise OR of: |
-| | 0001: read-only |
-| | |
| `conn-spec` | See below |
| | |
| `in-data-len` | The length (in octets) of any data read |
| | operation [2] or DOMID_INVALID [3] otherwise |
| | |
| `evtchn` | The port number of the interdomain channel used |
-| | by `domid` to communicate with xenstored |
+| | by xenstored to communicate with `domid` |
| | |
Since the ABI guarantees that entry 1 in `domid`'s grant table will always
```
0 1 2 3 octet
+-------+-------+-------+-------+
-| perm | pad | domid |
+| perm | flags | domid |
+-------+-------+---------------+
```
| `perm` | One of the ASCII values `w`, `r`, `b` or `n` as |
| | specified for the `SET_PERMS` operation [2] |
| | |
+| `flags` | A bit-wise OR of: |
+| | 0x01: stale permission, ignore when checking |
+| | permissions |
+| | |
| `domid` | The domain-id to which the permission relates |
Note that perm1 defines the domain owning the code. See [4] for more