1{
2    "$id": "cper-json-ia32x54-processor-section",
3    "$schema": "https://json-schema.org/draft/2020-12/schema",
4    "type": "object",
5    "required": ["validationBits", "localAPICID", "cpuidInfo", "processorErrorInfo", "processorContextInfo"],
6    "additionalProperties": false,
7    "properties": {
8        "validationBits": {
9            "type": "object",
10            "required": ["localAPICIDValid", "cpuIDInfoValid", "processorErrorInfoNum", "processorContextInfoNum"],
11            "properties": {
12                "localAPICIDValid": {
13                    "type": "boolean"
14                },
15                "cpuIDInfoValid": {
16                    "type": "boolean"
17                },
18                "processorErrorInfoNum": {
19                    "type": "integer",
20                    "minimum": 0
21                },
22                "processorContextInfoNum": {
23                    "type": "integer",
24                    "minimum": 0
25                }
26            }
27        },
28        "localAPICID": {
29            "type": "integer"
30        },
31        "cpuidInfo": {
32            "type": "object",
33            "required": ["eax", "ebx", "ecx", "edx"],
34            "properties": {
35                "eax": {
36                    "type": "integer"
37                },
38                "ebx": {
39                    "type": "integer"
40                },
41                "ecx": {
42                    "type": "integer"
43                },
44                "edx": {
45                    "type": "integer"
46                }
47            }
48        },
49        "processorErrorInfo": {
50            "type": "array",
51            "items": {
52                "type": "object",
53                "required": ["type", "validationBits", "checkInfo", "targetAddressID", "requestorID", "responderID", "instructionPointer"],
54                "additionalProperties": false,
55                "properties": {
56                    "type": {
57                        "type": "string"
58                    },
59                    "validationBits": {
60                        "type": "object",
61                        "required": ["checkInfoValid", "targetAddressIDValid", "requestorIDValid", "responderIDValid", "instructionPointerValid"],
62                        "additionalProperties": false,
63                        "properties": {
64                            "checkInfoValid": {
65                                "type": "boolean"
66                            },
67                            "targetAddressIDValid": {
68                                "type": "boolean"
69                            },
70                            "requestorIDValid": {
71                                "type": "boolean"
72                            },
73                            "responderIDValid": {
74                                "type": "boolean"
75                            },
76                            "instructionPointerValid": {
77                                "type": "boolean"
78                            }
79                        }
80                    },
81                    "checkInfo": {
82                        "type" : "object",
83                        "oneOf": [
84                            {
85                                "type": "object",
86                                "required": ["validationBits", "transactionType", "operation", "level", "processorContextCorrupt", "uncorrected", "preciseIP", "restartableIP", "overflow"],
87                                "additionalProperties": false,
88                                "properties": {
89                                    "validationBits": {
90                                        "type": "object",
91                                        "required": ["transactionTypeValid", "operationValid", "levelValid", "processorContextCorruptValid", "uncorrectedValid", "preciseIPValid", "restartableIPValid", "overflowValid"],
92                                        "properties": {
93                                            "transactionTypeValid": {
94                                                "type": "boolean"
95                                            },
96                                            "operationValid": {
97                                                "type": "boolean"
98                                            },
99                                            "levelValid": {
100                                                "type": "boolean"
101                                            },
102                                            "processorContextCorruptValid": {
103                                                "type": "boolean"
104                                            },
105                                            "uncorrectedValid": {
106                                                "type": "boolean"
107                                            },
108                                            "preciseIPValid": {
109                                                "type": "boolean"
110                                            },
111                                            "restartableIPValid": {
112                                                "type": "boolean"
113                                            },
114                                            "overflowValid": {
115                                                "type": "boolean"
116                                            }
117                                        }
118                                    },
119                                    "transactionType": {
120                                        "type": "object",
121                                        "$ref": "../common/cper-json-nvp.json"
122                                    },
123                                    "operation": {
124                                        "type": "object",
125                                        "$ref": "../common/cper-json-nvp.json"
126                                    },
127                                    "level": {
128                                        "type": "integer",
129                                        "minimum": 0
130                                    },
131                                    "processorContextCorrupt": {
132                                        "type": "boolean"
133                                    },
134                                    "uncorrected": {
135                                        "type": "boolean"
136                                    },
137                                    "preciseIP": {
138                                        "type": "boolean"
139                                    },
140                                    "restartableIP": {
141                                        "type": "boolean"
142                                    },
143                                    "overflow": {
144                                        "type": "boolean"
145                                    }
146                                }
147                            },
148                            {
149                                "type": "object",
150                                "required": ["validationBits", "transactionType", "operation", "level", "processorContextCorrupt", "uncorrected", "preciseIP", "restartableIP", "overflow", "participationType", "timedOut", "addressSpace"],
151                                "additionalProperties": false,
152                                "properties": {
153                                    "validationBits": {
154                                        "type": "object",
155                                        "required": ["transactionTypeValid", "operationValid", "levelValid", "processorContextCorruptValid", "uncorrectedValid", "preciseIPValid", "restartableIPValid", "overflowValid", "participationTypeValid", "timedOutValid"],
156                                        "properties": {
157                                            "transactionTypeValid": {
158                                                "type": "boolean"
159                                            },
160                                            "operationValid": {
161                                                "type": "boolean"
162                                            },
163                                            "levelValid": {
164                                                "type": "boolean"
165                                            },
166                                            "processorContextCorruptValid": {
167                                                "type": "boolean"
168                                            },
169                                            "uncorrectedValid": {
170                                                "type": "boolean"
171                                            },
172                                            "preciseIPValid": {
173                                                "type": "boolean"
174                                            },
175                                            "restartableIPValid": {
176                                                "type": "boolean"
177                                            },
178                                            "overflowValid": {
179                                                "type": "boolean"
180                                            },
181                                            "participationTypeValid": {
182                                                "type": "boolean"
183                                            },
184                                            "timedOutValid": {
185                                                "type": "boolean"
186                                            }
187                                        }
188                                    },
189                                    "transactionType": {
190                                        "type": "object",
191                                        "$ref": "../common/cper-json-nvp.json"
192                                    },
193                                    "operation": {
194                                        "type": "object",
195                                        "$ref": "../common/cper-json-nvp.json"
196                                    },
197                                    "level": {
198                                        "type": "integer",
199                                        "minimum": 0
200                                    },
201                                    "processorContextCorrupt": {
202                                        "type": "boolean"
203                                    },
204                                    "uncorrected": {
205                                        "type": "boolean"
206                                    },
207                                    "preciseIP": {
208                                        "type": "boolean"
209                                    },
210                                    "restartableIP": {
211                                        "type": "boolean"
212                                    },
213                                    "overflow": {
214                                        "type": "boolean"
215                                    },
216                                    "participationType": {
217                                        "type": "object",
218                                        "$ref": "../common/cper-json-nvp.json"
219                                    },
220                                    "addressSpace": {
221                                        "type": "object",
222                                        "$ref": "../common/cper-json-nvp.json"
223                                    },
224                                    "timedOut": {
225                                        "type": "boolean"
226                                    }
227                                }
228                            },
229                            {
230                                "type": "object",
231                                "required": [],
232                                "additionalProperties": false,
233                                "properties": {
234                                    "validationBits": {
235                                        "type": "object",
236                                        "required": ["errorTypeValid", "processorContextCorruptValid", "uncorrectedValid", "preciseIPValid", "restartableIPValid", "overflowValid"],
237                                        "properties": {
238                                            "errorTypeValid": {
239                                                "type": "boolean"
240                                            },
241                                            "processorContextCorruptValid": {
242                                                "type": "boolean"
243                                            },
244                                            "uncorrectedValid": {
245                                                "type": "boolean"
246                                            },
247                                            "preciseIPValid": {
248                                                "type": "boolean"
249                                            },
250                                            "restartableIPValid": {
251                                                "type": "boolean"
252                                            },
253                                            "overflowValid": {
254                                                "type": "boolean"
255                                            }
256                                        }
257                                    },
258                                    "errorType": {
259                                        "type": "object",
260                                        "$ref": "../common/cper-json-nvp.json"
261                                    },
262                                    "processorContextCorrupt": {
263                                        "type": "boolean"
264                                    },
265                                    "uncorrected": {
266                                        "type": "boolean"
267                                    },
268                                    "preciseIP": {
269                                        "type": "boolean"
270                                    },
271                                    "restartableIP": {
272                                        "type": "boolean"
273                                    },
274                                    "overflow": {
275                                        "type": "boolean"
276                                    }
277                                }
278                            }
279                        ]
280                    },
281                    "targetAddressID": {
282                        "type": "integer"
283                    },
284                    "requestorID": {
285                        "type": "integer"
286                    },
287                    "responderID": {
288                        "type": "integer"
289                    },
290                    "instructionPointer": {
291                        "type": "integer"
292                    }
293                }
294            }
295        },
296        "processorContextInfo": {
297            "type": "array",
298            "items": {
299                "type": "object",
300                "required": ["registerContextType", "registerArraySize", "msrAddress", "mmRegisterAddress"],
301                "additionalProperties": false,
302                "properties": {
303                    "registerContextType": {
304                        "type": "object",
305                        "$ref": "../common/cper-json-nvp.json"
306                    },
307                    "registerArraySize": {
308                        "type": "integer"
309                    },
310                    "msrAddress": {
311                        "type": "integer"
312                    },
313                    "mmRegisterAddress": {
314                        "type": "integer"
315                    },
316                    "registerArray": {
317                        "type": "object",
318                        "oneOf": [
319                            {
320                                "type": "object",
321                                "required": ["eax", "ebx", "ecx", "edx", "esi", "edi", "ebp", "esp", "cs", "ds", "ss", "es", "fs", "gs", "eflags", "eip", "cr0", "cr1", "cr2", "cr3", "cr4", "gdtr", "idtr", "ldtr", "tr"],
322                                "additionalProperties": false,
323                                "properties": {
324                                    "eax": { "type": "integer" },
325                                    "ebx": { "type": "integer" },
326                                    "ecx": { "type": "integer" },
327                                    "edx": { "type": "integer" },
328                                    "esi": { "type": "integer" },
329                                    "edi": { "type": "integer" },
330                                    "ebp": { "type": "integer" },
331                                    "esp": { "type": "integer" },
332                                    "cs": { "type": "integer" },
333                                    "ds": { "type": "integer" },
334                                    "ss": { "type": "integer" },
335                                    "es": { "type": "integer" },
336                                    "fs": { "type": "integer" },
337                                    "gs": { "type": "integer" },
338                                    "eflags": { "type": "integer" },
339                                    "eip": { "type": "integer" },
340                                    "cr0": { "type": "integer" },
341                                    "cr1": { "type": "integer" },
342                                    "cr2": { "type": "integer" },
343                                    "cr3": { "type": "integer" },
344                                    "cr4": { "type": "integer" },
345                                    "gdtr": { "type": "integer" },
346                                    "idtr": { "type": "integer" },
347                                    "ldtr": { "type": "integer" },
348                                    "tr": { "type": "integer" }
349                                }
350                            },
351                            {
352                                "type": "object",
353                                "required": ["rax", "rbx", "rcx", "rdx", "rsi", "rdi", "rbp", "rsp", "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15", "cs", "ds", "es", "fs", "gs", "rflags", "eip", "cr0", "cr1", "cr2", "cr3", "cr4", "cr8", "gdtr_0", "gdtr_1", "idtr_0", "idtr_1", "ldtr", "tr"],
354                                "additionalProperties": false,
355                                "properties": {
356                                    "rax": { "type": "integer" },
357                                    "rbx": { "type": "integer" },
358                                    "rcx": { "type": "integer" },
359                                    "rdx": { "type": "integer" },
360                                    "rsi": { "type": "integer" },
361                                    "rdi": { "type": "integer" },
362                                    "rbp": { "type": "integer" },
363                                    "rsp": { "type": "integer" },
364                                    "r8": { "type": "integer" },
365                                    "r9": { "type": "integer" },
366                                    "r10": { "type": "integer" },
367                                    "r11": { "type": "integer" },
368                                    "r12": { "type": "integer" },
369                                    "r13": { "type": "integer" },
370                                    "r14": { "type": "integer" },
371                                    "r15": { "type": "integer" },
372                                    "cs": { "type": "integer" },
373                                    "ds": { "type": "integer" },
374                                    "ss": { "type": "integer" },
375                                    "es": { "type": "integer" },
376                                    "fs": { "type": "integer" },
377                                    "gs": { "type": "integer" },
378                                    "rflags": { "type": "integer" },
379                                    "eip": { "type": "integer" },
380                                    "cr0": { "type": "integer" },
381                                    "cr1": { "type": "integer" },
382                                    "cr2": { "type": "integer" },
383                                    "cr3": { "type": "integer" },
384                                    "cr4": { "type": "integer" },
385                                    "cr8": { "type": "integer" },
386                                    "gdtr_0": { "type": "integer" },
387                                    "gdtr_1": { "type": "integer" },
388                                    "idtr_0": { "type": "integer" },
389                                    "idtr_1": { "type": "integer" },
390                                    "ldtr": { "type": "integer" },
391                                    "tr": { "type": "integer" }
392                                }
393                            },
394                            {
395                                "type": "object",
396                                "required": ["data"],
397                                "additionalProperties": false,
398                                "properties": {
399                                    "data": {
400                                        "type": "string"
401                                    }
402                                }
403                            }
404                        ]
405                    }
406                }
407            }
408        }
409    }
410}