aboutsummaryrefslogtreecommitdiff
path: root/introspection/org.freedesktop.ModemManager.Modem.Firmware.xml
blob: 42bcae1282bb4cb9b83d7f470c114d4bcc836f19 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<?xml version="1.0" encoding="UTF-8" ?>

<node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
  <interface name="org.freedesktop.ModemManager.Modem.Firmware">
    <tp:docstring>
      This interface allows clients to select or install firmware images on
      modems.

      Firmware slots and firmware images are identified by arbitrary opaque
      strings.

      Firmware images are represented as dictionaries of properties.
      Certain properties are pre-defined, and some are required:

      Name (string, required): A user-readable name for the firmware image.
      Version (string, optional): The version of the firmware.  The format is
        unspecified; tools attempting to upgrade firmware automatically must
        understand the versioning scheme used by the modem driver they are
        interacting with.  May be displayed to the user.
    </tp:docstring>

    <method name="List">
      <tp:docstring>
        List installed and available firmware images.

        Depending on the type of modem, installed images may be stored on the
        host or the modem.  The distinction between "installed" and
        "available" is not one of where the firmware is stored, but that
        installed images can be selected non-destructively, while available
        images must be installed into a slot, possibly overwriting another
        installed image.
      </tp:docstring>
      <annotation name="org.freedesktop.DBus.GLib.CSymbol"
                  value="impl_modem_firmware_list" />
      <arg name="selected" type="s" direction="out">
        <tp:docstring>
          The identifier of the selected firmware slot, or the empty string if
          no slot is selected (such as if all slots are empty, or no slots
          exist).
        </tp:docstring>
      </arg>
      <arg name="installed" type="a{sa{sv}}" direction="out">
        <tp:docstring>
          A dictionary of slots into which firmware is and/or can be
          installed.  The key of each entry is the identifier of the slot,
          and the value is either an empty dictionary if the slot is empty,
          or a dictionary of properties of the firmware image installed in
          that slot.

          The slot identifiers and the mapping between slots and firmware
          images are guaranteed to remain stable only as long as the modem
          remains present.
        </tp:docstring>
      </arg>
      <arg name="available" type="a{sa{sv}}" direction="out">
        <tp:docstring>
          A dictionary of available firmware images.  The key of each entry is
          the identifier of the image, and the value is a dictionary of
          properties of the image.

          The image identifiers are guaranteed to remain stable only as  long
          as the modem remains present.
        </tp:docstring>
      </arg>
    </method>

    <method name="Select">
      <tp:docstring>
        Selects a different firmware image to use, and immediately resets the
        modem so that it begins using the new firmware image.

        Select will fail if the identifier does not match any of the slot
        identifiers returned by List, or if the slot could not be selected
        for some reason.
      </tp:docstring>
      <annotation name="org.freedesktop.DBus.GLib.Async" value="" />
      <annotation name="org.freedesktop.DBus.GLib.CSymbol"
	              value="impl_modem_firmware_select" />
      <arg name="slot" type="s" direction="in">
        <tp:docstring>
          The identifier of the firmware slot to select.
        </tp:docstring>
      </arg>
    </method>

    <method name="Install">
      <tp:docstring>
        Install an available firmware image into a slot.

        Install does not guarantee that the image will be installed into the
        specified slot, but does guarantee that, if the slot is empty, no
        image will be overwritten, and if the slot is not empty, no image
        other than the one in that slot will be overwritten.

        Install will fail if either of the identifiers is invalid, or if the
        image could not be installed into the slot for some reason.
      </tp:docstring>
      <annotation name="org.freedesktop.DBus.GLib.Async" value="" />
      <annotation name="org.freedesktop.DBus.GLib.CSymbol"
                  value="impl_modem_firmware_install" />
      <arg name="image" type="s" direction="in">
        <tp:docstring>
          The identifier of the firmware image to install.
        </tp:docstring>
      </arg>
      <arg name="slot" type="s" direction="in">
        <tp:docstring>
          The identifier of the slot into which the firmware should be
          installed.
        </tp:docstring>
      </arg>
    </method>
  </interface>
</node>