/alps/pcitool

To get this branch, use:
bzr branch http://suren.me/webbzr/alps/pcitool

« back to all changes in this revision

Viewing changes to xml/model.xsd

  • Committer: Suren A. Chilingaryan
  • Date: 2015-09-24 02:28:45 UTC
  • mfrom: (305.1.19 views)
  • Revision ID: csa@suren.me-20150924022845-p7hc8lh8v0q48g0r
Finalyze XML support and provide initial support for views (only descriptions so far)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
<?xml version="1.0" encoding="ISO-8859-1"?>
2
2
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3
 
    
4
 
    <xsd:element name="model">
5
 
        <xsd:complexType>
6
 
            <xsd:sequence>
7
 
                <xsd:element name="banks" type="banks_type"/>
8
 
                <xsd:element name="views" type="views_type" minOccurs="0" maxOccurs="1"/>
9
 
            </xsd:sequence>
10
 
        </xsd:complexType>
11
 
        <xsd:key name="Registerkey">
12
 
            <xsd:selector xpath="views/view/name"/>
13
 
            <xsd:field xpath="."/>
14
 
        </xsd:key>
15
 
        <xsd:keyref refer="Registerkey" name="RegisterkeyRef">
16
 
            <xsd:selector xpath="banks/bank/registers/register/views/view"/>
17
 
            <xsd:field xpath="."/>
18
 
        </xsd:keyref>
19
 
        <xsd:key name="Registerbitskey">
20
 
            <xsd:selector xpath="views/view/name"/>
21
 
            <xsd:field xpath="."/>
22
 
        </xsd:key>
23
 
        <xsd:keyref refer="Registerbitskey" name="RegisterbitskeyRef">
24
 
            <xsd:selector xpath="banks/bank/registers/register/registers_bits/register_bits/views/view"/>
25
 
            <xsd:field xpath="."/>
26
 
        </xsd:keyref>
27
 
    </xsd:element>
28
 
    
29
 
    
30
 
        <xsd:complexType name="views_type">
31
 
            <xsd:sequence>
32
 
                <xsd:element name="view" type="view_type" maxOccurs="unbounded"/>
33
 
            </xsd:sequence>
34
 
        </xsd:complexType>
35
 
    
36
 
    
37
 
    <xsd:complexType name="banks_type">
38
 
        <xsd:sequence>
39
 
            <xsd:element name="bank" type="banktype" minOccurs="1" maxOccurs="12"/>
40
 
        </xsd:sequence>
41
 
    </xsd:complexType>
42
 
    
43
 
    <xsd:complexType name="banktype">
44
 
        <xsd:sequence>
45
 
            <xsd:element name="bank_description" type="bank_description_t"/>
46
 
            <xsd:element name="registers" type="registerstype" minOccurs="0" maxOccurs="1"/>
47
 
        </xsd:sequence>
48
 
    </xsd:complexType>
49
 
    
50
 
    <xsd:complexType name="bank_description_t">
51
 
        <xsd:sequence>
52
 
            <xsd:element name="bar" type="bar_type"/>
53
 
            <xsd:element name="size" type="hexa_and_integer64_t"/>
54
 
            <xsd:element name="protocol" type="xsd:string"/>
55
 
            <xsd:element name="read_address" type="hex64_t"/>
56
 
            <xsd:element name="write_address" type="hex64_t"/>
57
 
            <xsd:element name="word_size" type="uint8_t"/>
58
 
            <xsd:element name="endianess" type="endianess_type"/>
59
 
            <xsd:element name="format" type="xsd:string"/>
60
 
            <xsd:element name="name" type="xsd:string"/>
61
 
            <xsd:element name="description" type="xsd:string" minOccurs="0" maxOccurs="1"/>
62
 
        </xsd:sequence>
63
 
    </xsd:complexType>
64
 
    
65
 
    
66
 
    <xsd:complexType name="registerstype">
67
 
        <xsd:sequence>
68
 
            <xsd:element name="register" type="register_type" minOccurs="0" maxOccurs="256"/>
69
 
        </xsd:sequence>
70
 
    </xsd:complexType>
71
 
    
72
 
    <xsd:complexType name="register_type">
73
 
        <xsd:sequence>
74
 
            <xsd:element name="address" type="hexa_and_integer32_t"/>
75
 
            <xsd:element name="offset" type="uint8_t"/>
76
 
            <xsd:element name="size" type="uint8_t"/>
77
 
            <xsd:element name="default" type="hexa_and_integer32_t"/>
78
 
            <xsd:element name="rwmask" type="rwmask_type"/>
79
 
            <xsd:element name="mode" type="pcilib_register_mode_t"/>
80
 
            <xsd:element name="name" type="xsd:string"/>
81
 
            <xsd:element name="description" type="xsd:string" minOccurs="0" maxOccurs="1"/>
82
 
            <xsd:element name="views" type="reg_to_views_type" minOccurs="0" maxOccurs="1"/>
83
 
            <xsd:element name="registers_bits" type="registers_bits_type" minOccurs="0" maxOccurs="1"/>
84
 
            <xsd:element name="value_min" type="hexa_and_integer32_t" minOccurs="0" maxOccurs="1"/>
85
 
            <xsd:element name="value_max" type="hexa_and_integer32_t" minOccurs="0" maxOccurs="1"/>
86
 
          </xsd:sequence>
87
 
    </xsd:complexType>
88
 
    
89
 
    <xsd:complexType name="registers_bits_type">
90
 
        <xsd:sequence>
91
 
            <xsd:element name="register_bits" type="register_bits_type" minOccurs="1" maxOccurs="32"/>
92
 
        </xsd:sequence>
93
 
    </xsd:complexType>
94
 
    
95
 
    <xsd:complexType name="reg_to_views_type">
96
 
        <xsd:sequence>
97
 
            <xsd:element name="view" type="xsd:string" minOccurs="1" maxOccurs="unbounded"/>
98
 
        </xsd:sequence>
99
 
    </xsd:complexType>
100
 
    
101
 
    <xsd:complexType name="register_bits_type">
102
 
        <xsd:sequence>
103
 
            <xsd:element name="offset" type="uint8_t"/>
104
 
            <xsd:element name="size" type="uint8_t"/>
105
 
            <xsd:element name="mode" type="pcilib_register_mode_t"/>
106
 
            <xsd:element name="name" type="xsd:string"/>
107
 
            <xsd:element name="description" type="xsd:string" minOccurs="0" maxOccurs="1"/>
108
 
            <xsd:element name="views" type="reg_to_views_type" minOccurs="0" maxOccurs="1"/>
109
 
        </xsd:sequence>
110
 
 
111
 
    </xsd:complexType>
112
 
    
113
 
    <xsd:simpleType name="uint8_t">
114
 
        <xsd:restriction base="xsd:integer">
115
 
            <xsd:minInclusive value="0"/>
116
 
            <xsd:maxInclusive value="255"/>
117
 
        </xsd:restriction>
118
 
    </xsd:simpleType>
119
 
    
120
 
    <xsd:simpleType name="size_t">
121
 
        <xsd:restriction base="xsd:integer">
122
 
            <xsd:minInclusive value="0"/>
123
 
            <xsd:maxInclusive value="18446744073709551615"/>
124
 
        </xsd:restriction>
125
 
    </xsd:simpleType>
126
 
    
127
 
    <xsd:simpleType name="uintptr_t">
128
 
        <xsd:restriction base="xsd:integer">
129
 
            <xsd:minInclusive value="0"/>
130
 
            <xsd:maxInclusive value="18446744073709551615"/>
131
 
        </xsd:restriction>
132
 
    </xsd:simpleType>
133
 
    
134
 
    <xsd:simpleType name="uint32_t">
135
 
        <xsd:restriction base="xsd:integer">
136
 
            <xsd:minInclusive value="0"/>
137
 
            <xsd:maxInclusive value="4294967295"/>
138
 
        </xsd:restriction>
139
 
    </xsd:simpleType>
140
 
    
141
 
    <xsd:simpleType name="pcilib_register_mode_t">
142
 
        <xsd:restriction base="xsd:string">
143
 
            <xsd:enumeration value="R"/>
144
 
            <xsd:enumeration value="W"/>
145
 
            <xsd:enumeration value="RW"/>
146
 
            <xsd:enumeration value="W1C"/>
147
 
            <xsd:enumeration value="RW1C"/>
148
 
        </xsd:restriction>
149
 
    </xsd:simpleType>
150
 
    
151
 
    <xsd:simpleType name="bank_adress_type">
152
 
        <xsd:restriction base="xsd:string">
153
 
            <xsd:enumeration value="bank 0"/>
154
 
            <xsd:enumeration value="bank 1"/>
155
 
            <xsd:enumeration value="bank 2"/>
156
 
            <xsd:enumeration value="bank 3"/>
157
 
            <xsd:enumeration value="DMA bank"/>
158
 
        </xsd:restriction>
159
 
    </xsd:simpleType>
160
 
    
161
 
    <xsd:simpleType name="endianess_type">
162
 
        <xsd:restriction base="xsd:string">
163
 
            <xsd:enumeration value="little"/>
164
 
            <xsd:enumeration value="big"/>
165
 
            <xsd:enumeration value="host"/>
166
 
        </xsd:restriction>
167
 
    </xsd:simpleType>
168
 
    
169
 
    <xsd:simpleType name="bar_type">
170
 
        <xsd:restriction base="xsd:integer">
171
 
            <xsd:enumeration value="0"/>
172
 
            <xsd:enumeration value="1"/>
173
 
        </xsd:restriction>
174
 
    </xsd:simpleType>
175
 
    
176
 
    <xsd:simpleType name="space_adress_type">
177
 
        <xsd:restriction base="xsd:string">
178
 
            <xsd:enumeration value="write adress"/>
179
 
            <xsd:enumeration value="read adress"/>
180
 
            <xsd:enumeration value="space adress"/>
181
 
            <xsd:enumeration value="0"/>
182
 
        </xsd:restriction>
183
 
    </xsd:simpleType>
184
 
    
185
 
    <xsd:simpleType name="rwmask_type">
186
 
        <xsd:restriction base="xsd:string">
187
 
            <xsd:enumeration value="all"/>
188
 
            <xsd:enumeration value="0"/>
189
 
        </xsd:restriction>
190
 
    </xsd:simpleType>
191
 
    
192
 
    <xsd:simpleType name="hexa_and_integer32_t">
193
 
        <xsd:union memberTypes="uint32_t hex32_t"/>
194
 
    </xsd:simpleType>
195
 
    
196
 
    <xsd:simpleType name="hex32_t">
197
 
        <xsd:restriction base="xsd:string">
198
 
            <xsd:pattern value="0x([a-fA-F0-9]){0,8}"/>
199
 
        </xsd:restriction>
200
 
    </xsd:simpleType>
201
 
    
202
 
    <xsd:simpleType name="hexa_and_integer64_t">
203
 
        <xsd:union memberTypes="size_t hex64_t"/>
204
 
    </xsd:simpleType>
205
 
    
206
 
    <xsd:simpleType name="hex64_t">
207
 
        <xsd:restriction base="xsd:string">
208
 
            <xsd:pattern value="0x([a-fA-F0-9]){0,16}"/>
209
 
        </xsd:restriction>
210
 
    </xsd:simpleType>
211
 
    
212
 
    <xsd:complexType name="view_type">
213
 
        <xsd:sequence>
214
 
            <xsd:element name="name" type="xsd:ID"/>
215
 
            <xsd:element name="unit" type="xsd:string" minOccurs="0" maxOccurs="1"/>
216
 
            <xsd:element name="read_from_register" type="xsd:string" minOccurs="0" maxOccurs="1"/>
217
 
            <xsd:element name="write_to_register" type="xsd:string" minOccurs="0" maxOccurs="1"/>
218
 
            <xsd:element name="enum" type="enum_t" minOccurs="0" maxOccurs="unbounded"/>
219
 
            <xsd:element name="description" type="xsd:string"/>
220
 
        </xsd:sequence>
221
 
        <xsd:attribute name="type" type="viewtype_type" use="required"/>
222
 
    </xsd:complexType>
223
 
    
224
 
        <xsd:complexType name="enum_t">
225
 
                <xsd:simpleContent>
226
 
                        <xsd:extension base="xsd:string">
227
 
                                <xsd:attribute name="value" type="hexa_and_integer64_t" use="required"/>
228
 
                        <xsd:attribute name="min" type="hexa_and_integer64_t"/>
229
 
                        <xsd:attribute name="max" type="hexa_and_integer64_t"/>
230
 
                        </xsd:extension>
231
 
                </xsd:simpleContent>
232
 
        </xsd:complexType>
233
 
 
234
 
    <xsd:simpleType name="viewtype_type">
235
 
        <xsd:restriction base="xsd:string">
236
 
            <xsd:enumeration value="enum"/>
237
 
            <xsd:enumeration value="formula"/>
238
 
        </xsd:restriction>
239
 
    </xsd:simpleType>
240
 
    
 
3
  <xsd:include schemaLocation="types.xsd"/>
 
4
 
 
5
  <xsd:element name="model">
 
6
    <xsd:complexType>
 
7
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
 
8
        <xsd:element name="bank" type="pcilib_bank_t" minOccurs="0" maxOccurs="unbounded" />
 
9
        <xsd:element name="transform" type="pcilib_transform_view_t" minOccurs="0" maxOccurs="unbounded" />
 
10
        <xsd:element name="enum" type="pcilib_enum_view_t" minOccurs="0" maxOccurs="unbounded" />
 
11
        <xsd:element name="unit" type="pcilib_unit_t" minOccurs="0" maxOccurs="unbounded" />
 
12
      </xsd:choice>
 
13
    </xsd:complexType>
 
14
  </xsd:element>
241
15
</xsd:schema>