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