diff options
Diffstat (limited to '')
-rw-r--r-- | doc/info/mds.texinfo | 169 | ||||
-rw-r--r-- | doc/protocols | 100 |
2 files changed, 168 insertions, 101 deletions
diff --git a/doc/info/mds.texinfo b/doc/info/mds.texinfo index 1c07966..7394aac 100644 --- a/doc/info/mds.texinfo +++ b/doc/info/mds.texinfo @@ -1720,6 +1720,7 @@ simple, reference implementation of a, status icon tray. @menu * Infrastructure protocols:: Infrastructure protocols. +* Virtual terminal protocols:: Virtual terminal protocols. @end menu @@ -1936,12 +1937,178 @@ Optional. +@node Virtual terminal protocols +@section Virtual terminal protocols + +@menu +* get-vt:: Get the index of the virtual terminal the server is display on. +* configure-vt:: Reconfigure the virtual terminal the server is display on. +* switching-vt:: Notify servers about an ongoing virtual terminal switch. +@end menu + + + +@node get-vt +@subsection get-vt + +@table @asis +@item Identifying header: +@code{Command: get-vt} + +@item Action: +Get the index of the virtual terminal the server is display on. + +@item Required header: @code{Client ID} +Your ID, provided by the @code{ID assignment} header +in response to a @code{Command: assign-id} header. + +@item Response: +The server will response with the header @code{VT index} +and the index of the virtual terminal the server is +display on in decimal format. Additionally the server +will respond with the header @code{Active} with the value +@code{yes} if the VT is in the foreground or the value +@code{no} if the VT is in the background. + +@item Purpose: +Allow programs to be aware of whether the display is in the +foreground or the background. + +@item Purpose: +Allow programs to be aware of which VT the server is running on. + +@item Purpose: +Allow programs to gain access of the TTY associated with the +VT such that they can use ioctl and similar calls on that TTY. + +@item Compulsivity: +Required. + +@item Reference implementation: +@code{vt} +@end table + + + +@node configure-vt +@subsection configure-vt + +@table @asis +@item Identifying header: +@code{configure-vt} + +@item Action: +Reconfigure the virtual terminal the server is display on. + +@item Required header: @code{Client ID} +Your ID, provided by the @code{ID assignment} header +in response to a @code{Command: assign-id} header. + +@item Optional header: @code{graphical} +@table @code +@item yes +Set the TTY graphical mode if the value of the header +@code{graphical} is @code{yes}. +@item no +Set the TTY text mode if the value of the header +@code{graphical} is @code{no}. +@end table +The server implementing this protocol should not set the +TTY to text mode temporarily when switching TTY. It is +up the the server that set the request for graphical mode +to temporarily switch to text mode when switching TTY. + +@item Optional header: @code{exclusive} +@table @code +@item yes +The server may block other process from opening the TTY +if the value of the header @code{exclusive} is @code{yes}. +@item no +The server may not block other process from opening the TTY +if the value of the header @code{exclusive} is @code{no}. +@end table + +@item Response: +The server will response with a @code{Command: error}. + +@item Purpose: +Allow presentation servers to enter and leave graphical mode. + +@item Purpose: +Allow programs to gain access of the TTY associated with the +VT such that they can use ioctl and similar calls on that TTY. + +@item Compulsivity: +Required. + +@item Reference implementation: +@code{vt} +@end table + + + +@node switching-vt +@subsection switching-vt + +@table @asis +@item Identifying header: +@code{Command: switching-vt} + +@item Action: +Notify servers about an ongoing virtual terminal switch. + +@item Required header: @code{Status} +@table @code +@item deactivating +The kernel wants to place the display in the background +if the value of the header @code{Status} is @code{deactivating}. +@item activating +The kernel wants to place the display in the foreground +if the value of the header @code{Status} is @code{activating}. +@end table + +@item Instructions: +When a virtual terminal switch is requested the +server implementing control VT switching involving +the display's virtual terminal will get signaled by +the kernel. Upon this signal the server should +broadcast this command. All servers that need to +release or acquire resouces should intercept this +message with the possibility of modifying it. Once +a server is ready for the VT to switch it should +let the message pass to the next server by telling +the master server that it is no modification to do. +Once all servers are read for the switch the server +that emitted this message should signal the kernel +that it may switch VT. The server should detect +this by setting up secondary contection to the +display that intercepts this message. This connection +should intercept this message with priority @math{-2^{62}}, +all servers that need to perform actions before the +switch takes place must have a priority higher than +@math{-2^{62}}, preferably 0. + +@item Purpose: +Allow servers to release resources when the user switch +virtual terminal before the terminal actually changes and +to reacquire resources when the virtual terminal become +active again. + +@item Compulsivity: +Required. + +@item Reference implementation: +@code{vt} and @code{kkbd} +@end table + + + @node libmdsserver @chapter libmdsserver libmdsserver is library written for the reference implementation of the @command{mds} servers. -libmdsserver does not contain support or any +llibmdsserver does not contain support or any protocols, rather it contains auxiliary functions, macros, data structures such as linked lists and hash tables, and support the basics of the message diff --git a/doc/protocols b/doc/protocols index 58f0d4d..6270456 100644 --- a/doc/protocols +++ b/doc/protocols @@ -611,103 +611,3 @@ Reference implementation: kbd --------------------------------------------------------------------- -Command: get-vt - Get the index of the virtual terminal the server is display on - and the servers file descriptor for that tty - -Required header: Client ID - Your ID, provided by `ID assignment` - in response to `Command: assign-id` - -Response: The server will response with the header `VT index` - and the index of the virtual terminal the server is - display on in decimal format. Additionally the server - will respond with the header `Active` with the value - `yes` if the VT is in the foreground or the value - `no` if the VT is in the background. - -Purpose: Allow programs to be aware of whether the display - is in the foreground or the background -Purpose: Allow programs to be aware of which VT the - server is running on -Purpose: Allow programs to gain access of the TTY associated - with the VT such that they can use ioctl and similar - calls on that TTY - -Compulsivity: required - -Reference implementation: vt - ---------------------------------------------------------------------- - -Command: configure-vt - Reconfigure the virtual terminal the server is display on - -Required header: Client ID - Your ID, provided by `ID assignment` - in response to `Command: assign-id` - -Optional header: graphical - yes) Set the TTY graphical mode - no) Set the TTY text mode - The server implementing this protocol should not set the - TTY to text mode temporarily when switching TTY. It is - up the the server that set the request for graphical mode - to temporarily switch to text mode when switching TTY. - -Optional header: exclusive - yes) The server may block other process from opening the TTY. - no) The server may not block other process from opening the TTY. - -Response: The server will response with a `Command: error` - -Purpose: Allow presentation servers to enter and leave graphical mode -Purpose: Allow programs to gain access of the TTY associated - with the VT such that they can use ioctl and similar - calls on that TTY - -Compulsivity: required - -Reference implementation: vt - ---------------------------------------------------------------------- - -Command: switching-vt - Notify servers about an ongoing virtual terminal switch - -Required header: Status - deactivating) The kernel wants to place the display in the background - activating) The kernel wants to place the display in the foreground - -Instructions: When a virtual terminal switch is requested the - server implementing control VT switching involving - the display's virtual terminal will get signaled by - the kernel. Upon this signal the server should - roadcast this command. All servers that need to - release or acquire resouces should intercept this - message with the possibility of modifying it. - Once a server is ready for the VT to switch it should - let the message pass to the next server by telling - the master server that it is no modification to do. - Once all servers are read for the switch the server - that emitted this message should signal the kernel - that it may switch VT. The server should detect - this by setting up secondary contection to the - display that intercepts this message. This connection - should intercept this message with priority −2⁶³, - all servers that need to perform actions before the - switch takes place must have a priority higher than - −2⁶³, preferably 0. - -Purpose: Allow servers to release resources when the user switch - virtual terminal before the terminal actually changes and - to reacquire resources when the virtual terminal become - active again - -Compulsivity: required - -Reference implementation: vt -Reference implementation: kkbd - ---------------------------------------------------------------------- - |