mm-control SLM specification

SLM uses an XML configuration file to store the list of processes to be automatically started and their properties. In QNX CAR systems, mm-control and its prerequisite and dependant programs are listed in the SLM configuration file. You can change this configuration file to run mm-control with different command options.

The following excerpt from the SLM configuration file shows some of the property settings for mm-control:

<SLM:component name="mmcontrol">
    <SLM:command>mm-control</SLM:command>
    <SLM:args>-v -c /etc/mm-control.cfg</SLM:args>
    <SLM:waitfor wait="pathname">/pps/services/mm-control/control</SLM:waitfor>
    <SLM:depend>mmtrkmgr</SLM:depend>
    <SLM:depend>mmrenderer</SLM:depend>
</SLM:component>

Here, the name "mmcontrol" assigned to the <SLM:component> XML object is just an internal label used within the configuration file. This label differs from the actual process name of mm-control, which is provided in the <SLM:command> tag.

Command-line arguments

The <SLM:args> tag lists the command-line arguments. By default, one level of verbosity (-v) and the path for the included configuration file are specified, but you can change the value of <SLM:args> to use different command-line arguments. The new settings take effect after you reboot the system and SLM relaunches the service. See Running mm-control for instructions on changing the command settings for mm-control.

Workflow

The <SLM:depend> objects list which processes must be running before mm-control can be started. Some programs that are prerequisites to mm-control have their own prerequisites. For instance, mm-renderer requires audioman to be running because the former service uses the audio manager library. The interprocess dependencies between mm-control and the other programs it uses make up a complex workflow of processes.

The <SLM:waitfor> object specifies that the mm-control service must create a PPS object at the path matching the <SLM:waitfor> tag value before SLM can start any processes that depend on mm-control. Because the PPS service must be running for mm-control to create its PPS object, there's an indirect process dependency of mm-control on pps.

The following is an illustration of the process workflow subsection closest to mm-control:

Figure 1. Workflow of mm-control and related processes

In Figure 1, the solid lines represent direct process dependencies, which are specified in <SLM:depend> objects, and the dotted line represents an indirect process dependency, which is specified in a <SLM:waitfor> object.