1{
2    "$schema": "https://json-schema.org/draft/2020-12/schema",
3    "type": "object",
4    "required": [
5        "validationBits",
6        "localAPICID",
7        "cpuidInfo",
8        "processorErrorInfo",
9        "processorContextInfo"
10    ],
11    "additionalProperties": false,
12    "properties": {
13        "validationBits": {
14            "type": "object",
15            "required": [
16                "localAPICIDValid",
17                "cpuIDInfoValid",
18                "processorErrorInfoNum",
19                "processorContextInfoNum"
20            ],
21            "properties": {
22                "localAPICIDValid": {
23                    "type": "boolean"
24                },
25                "cpuIDInfoValid": {
26                    "type": "boolean"
27                },
28                "processorErrorInfoNum": {
29                    "type": "integer",
30                    "minimum": 0
31                },
32                "processorContextInfoNum": {
33                    "type": "integer",
34                    "minimum": 0
35                }
36            }
37        },
38        "localAPICID": {
39            "type": "integer"
40        },
41        "cpuidInfo": {
42            "type": "object",
43            "required": ["eax", "ebx", "ecx", "edx"],
44            "properties": {
45                "eax": {
46                    "type": "integer"
47                },
48                "ebx": {
49                    "type": "integer"
50                },
51                "ecx": {
52                    "type": "integer"
53                },
54                "edx": {
55                    "type": "integer"
56                }
57            }
58        },
59        "processorErrorInfo": {
60            "type": "array",
61            "items": {
62                "type": "object",
63                "required": [
64                    "type",
65                    "validationBits",
66                    "checkInfo",
67                    "targetAddressID",
68                    "requestorID",
69                    "responderID",
70                    "instructionPointer"
71                ],
72                "additionalProperties": false,
73                "properties": {
74                    "type": {
75                        "type": "object",
76                        "required": ["guid", "name"],
77                        "properties": {
78                            "guid": {
79                                "type": "string"
80                            },
81                            "name": {
82                                "type": "string"
83                            }
84                        }
85                    },
86                    "validationBits": {
87                        "type": "object",
88                        "required": [
89                            "checkInfoValid",
90                            "targetAddressIDValid",
91                            "requestorIDValid",
92                            "responderIDValid",
93                            "instructionPointerValid"
94                        ],
95                        "additionalProperties": false,
96                        "properties": {
97                            "checkInfoValid": {
98                                "type": "boolean"
99                            },
100                            "targetAddressIDValid": {
101                                "type": "boolean"
102                            },
103                            "requestorIDValid": {
104                                "type": "boolean"
105                            },
106                            "responderIDValid": {
107                                "type": "boolean"
108                            },
109                            "instructionPointerValid": {
110                                "type": "boolean"
111                            }
112                        }
113                    },
114                    "checkInfo": {
115                        "type": "object",
116                        "oneOf": [
117                            {
118                                "$id": "cper-json-checkinfo0",
119                                "type": "object",
120                                "required": [
121                                    "validationBits",
122                                    "transactionType",
123                                    "operation",
124                                    "level",
125                                    "processorContextCorrupt",
126                                    "uncorrected",
127                                    "preciseIP",
128                                    "restartableIP",
129                                    "overflow"
130                                ],
131                                "additionalProperties": false,
132                                "properties": {
133                                    "validationBits": {
134                                        "type": "object",
135                                        "required": [
136                                            "transactionTypeValid",
137                                            "operationValid",
138                                            "levelValid",
139                                            "processorContextCorruptValid",
140                                            "uncorrectedValid",
141                                            "preciseIPValid",
142                                            "restartableIPValid",
143                                            "overflowValid"
144                                        ],
145                                        "properties": {
146                                            "transactionTypeValid": {
147                                                "type": "boolean"
148                                            },
149                                            "operationValid": {
150                                                "type": "boolean"
151                                            },
152                                            "levelValid": {
153                                                "type": "boolean"
154                                            },
155                                            "processorContextCorruptValid": {
156                                                "type": "boolean"
157                                            },
158                                            "uncorrectedValid": {
159                                                "type": "boolean"
160                                            },
161                                            "preciseIPValid": {
162                                                "type": "boolean"
163                                            },
164                                            "restartableIPValid": {
165                                                "type": "boolean"
166                                            },
167                                            "overflowValid": {
168                                                "type": "boolean"
169                                            }
170                                        }
171                                    },
172                                    "transactionType": {
173                                        "type": "object",
174                                        "$ref": "./common/cper-json-nvp.json"
175                                    },
176                                    "operation": {
177                                        "type": "object",
178                                        "$ref": "./common/cper-json-nvp.json"
179                                    },
180                                    "level": {
181                                        "type": "integer",
182                                        "minimum": 0
183                                    },
184                                    "processorContextCorrupt": {
185                                        "type": "boolean"
186                                    },
187                                    "uncorrected": {
188                                        "type": "boolean"
189                                    },
190                                    "preciseIP": {
191                                        "type": "boolean"
192                                    },
193                                    "restartableIP": {
194                                        "type": "boolean"
195                                    },
196                                    "overflow": {
197                                        "type": "boolean"
198                                    }
199                                }
200                            },
201                            {
202                                "$id": "cper-json-checkinfo1",
203                                "type": "object",
204                                "required": [
205                                    "validationBits",
206                                    "transactionType",
207                                    "operation",
208                                    "level",
209                                    "processorContextCorrupt",
210                                    "uncorrected",
211                                    "preciseIP",
212                                    "restartableIP",
213                                    "overflow",
214                                    "participationType",
215                                    "timedOut",
216                                    "addressSpace"
217                                ],
218                                "additionalProperties": false,
219                                "properties": {
220                                    "validationBits": {
221                                        "type": "object",
222                                        "required": [
223                                            "transactionTypeValid",
224                                            "operationValid",
225                                            "levelValid",
226                                            "processorContextCorruptValid",
227                                            "uncorrectedValid",
228                                            "preciseIPValid",
229                                            "restartableIPValid",
230                                            "overflowValid",
231                                            "participationTypeValid",
232                                            "timedOutValid",
233                                            "addressSpaceValid"
234                                        ],
235                                        "properties": {
236                                            "transactionTypeValid": {
237                                                "type": "boolean"
238                                            },
239                                            "operationValid": {
240                                                "type": "boolean"
241                                            },
242                                            "levelValid": {
243                                                "type": "boolean"
244                                            },
245                                            "processorContextCorruptValid": {
246                                                "type": "boolean"
247                                            },
248                                            "uncorrectedValid": {
249                                                "type": "boolean"
250                                            },
251                                            "preciseIPValid": {
252                                                "type": "boolean"
253                                            },
254                                            "restartableIPValid": {
255                                                "type": "boolean"
256                                            },
257                                            "overflowValid": {
258                                                "type": "boolean"
259                                            },
260                                            "participationTypeValid": {
261                                                "type": "boolean"
262                                            },
263                                            "timedOutValid": {
264                                                "type": "boolean"
265                                            },
266                                            "addressSpaceValid": {
267                                                "type": "boolean"
268                                            }
269                                        }
270                                    },
271                                    "transactionType": {
272                                        "type": "object",
273                                        "$ref": "./common/cper-json-nvp.json"
274                                    },
275                                    "operation": {
276                                        "type": "object",
277                                        "$ref": "./common/cper-json-nvp.json"
278                                    },
279                                    "level": {
280                                        "type": "integer",
281                                        "minimum": 0
282                                    },
283                                    "processorContextCorrupt": {
284                                        "type": "boolean"
285                                    },
286                                    "uncorrected": {
287                                        "type": "boolean"
288                                    },
289                                    "preciseIP": {
290                                        "type": "boolean"
291                                    },
292                                    "restartableIP": {
293                                        "type": "boolean"
294                                    },
295                                    "overflow": {
296                                        "type": "boolean"
297                                    },
298                                    "participationType": {
299                                        "type": "object",
300                                        "$ref": "./common/cper-json-nvp.json"
301                                    },
302                                    "addressSpace": {
303                                        "type": "object",
304                                        "$ref": "./common/cper-json-nvp.json"
305                                    },
306                                    "timedOut": {
307                                        "type": "boolean"
308                                    }
309                                }
310                            },
311                            {
312                                "$id": "cper-json-checkinfo2",
313                                "type": "object",
314                                "required": [],
315                                "additionalProperties": false,
316                                "properties": {
317                                    "validationBits": {
318                                        "type": "object",
319                                        "required": [
320                                            "errorTypeValid",
321                                            "processorContextCorruptValid",
322                                            "uncorrectedValid",
323                                            "preciseIPValid",
324                                            "restartableIPValid",
325                                            "overflowValid"
326                                        ],
327                                        "properties": {
328                                            "errorTypeValid": {
329                                                "type": "boolean"
330                                            },
331                                            "processorContextCorruptValid": {
332                                                "type": "boolean"
333                                            },
334                                            "uncorrectedValid": {
335                                                "type": "boolean"
336                                            },
337                                            "preciseIPValid": {
338                                                "type": "boolean"
339                                            },
340                                            "restartableIPValid": {
341                                                "type": "boolean"
342                                            },
343                                            "overflowValid": {
344                                                "type": "boolean"
345                                            }
346                                        }
347                                    },
348                                    "errorType": {
349                                        "type": "object",
350                                        "$ref": "./common/cper-json-nvp.json"
351                                    },
352                                    "processorContextCorrupt": {
353                                        "type": "boolean"
354                                    },
355                                    "uncorrected": {
356                                        "type": "boolean"
357                                    },
358                                    "preciseIP": {
359                                        "type": "boolean"
360                                    },
361                                    "restartableIP": {
362                                        "type": "boolean"
363                                    },
364                                    "overflow": {
365                                        "type": "boolean"
366                                    }
367                                }
368                            }
369                        ]
370                    },
371                    "targetAddressID": {
372                        "type": "integer"
373                    },
374                    "requestorID": {
375                        "type": "integer"
376                    },
377                    "responderID": {
378                        "type": "integer"
379                    },
380                    "instructionPointer": {
381                        "type": "integer"
382                    }
383                }
384            }
385        },
386        "processorContextInfo": {
387            "type": "array",
388            "items": {
389                "type": "object",
390                "required": [
391                    "registerContextType",
392                    "registerArraySize",
393                    "msrAddress",
394                    "mmRegisterAddress"
395                ],
396                "additionalProperties": false,
397                "properties": {
398                    "registerContextType": {
399                        "type": "object",
400                        "$ref": "./common/cper-json-nvp.json"
401                    },
402                    "registerArraySize": {
403                        "type": "integer"
404                    },
405                    "msrAddress": {
406                        "type": "integer"
407                    },
408                    "mmRegisterAddress": {
409                        "type": "integer"
410                    },
411                    "registerArray": {
412                        "type": "object",
413                        "oneOf": [
414                            {
415                                "$id": "cper-json-registerarray0",
416                                "type": "object",
417                                "required": [
418                                    "eax",
419                                    "ebx",
420                                    "ecx",
421                                    "edx",
422                                    "esi",
423                                    "edi",
424                                    "ebp",
425                                    "esp",
426                                    "cs",
427                                    "ds",
428                                    "ss",
429                                    "es",
430                                    "fs",
431                                    "gs",
432                                    "eflags",
433                                    "eip",
434                                    "cr0",
435                                    "cr1",
436                                    "cr2",
437                                    "cr3",
438                                    "cr4",
439                                    "gdtr",
440                                    "idtr",
441                                    "ldtr",
442                                    "tr"
443                                ],
444                                "additionalProperties": false,
445                                "properties": {
446                                    "eax": { "type": "integer" },
447                                    "ebx": { "type": "integer" },
448                                    "ecx": { "type": "integer" },
449                                    "edx": { "type": "integer" },
450                                    "esi": { "type": "integer" },
451                                    "edi": { "type": "integer" },
452                                    "ebp": { "type": "integer" },
453                                    "esp": { "type": "integer" },
454                                    "cs": { "type": "integer" },
455                                    "ds": { "type": "integer" },
456                                    "ss": { "type": "integer" },
457                                    "es": { "type": "integer" },
458                                    "fs": { "type": "integer" },
459                                    "gs": { "type": "integer" },
460                                    "eflags": { "type": "integer" },
461                                    "eip": { "type": "integer" },
462                                    "cr0": { "type": "integer" },
463                                    "cr1": { "type": "integer" },
464                                    "cr2": { "type": "integer" },
465                                    "cr3": { "type": "integer" },
466                                    "cr4": { "type": "integer" },
467                                    "gdtr": { "type": "integer" },
468                                    "idtr": { "type": "integer" },
469                                    "ldtr": { "type": "integer" },
470                                    "tr": { "type": "integer" }
471                                }
472                            },
473                            {
474                                "$id": "cper-json-registerarray1",
475                                "type": "object",
476                                "required": [
477                                    "rax",
478                                    "rbx",
479                                    "rcx",
480                                    "rdx",
481                                    "rsi",
482                                    "rdi",
483                                    "rbp",
484                                    "rsp",
485                                    "r8",
486                                    "r9",
487                                    "r10",
488                                    "r11",
489                                    "r12",
490                                    "r13",
491                                    "r14",
492                                    "r15",
493                                    "cs",
494                                    "ds",
495                                    "es",
496                                    "fs",
497                                    "gs",
498                                    "rflags",
499                                    "eip",
500                                    "cr0",
501                                    "cr1",
502                                    "cr2",
503                                    "cr3",
504                                    "cr4",
505                                    "cr8",
506                                    "gdtr_0",
507                                    "gdtr_1",
508                                    "idtr_0",
509                                    "idtr_1",
510                                    "ldtr",
511                                    "tr"
512                                ],
513                                "additionalProperties": false,
514                                "properties": {
515                                    "rax": { "type": "integer" },
516                                    "rbx": { "type": "integer" },
517                                    "rcx": { "type": "integer" },
518                                    "rdx": { "type": "integer" },
519                                    "rsi": { "type": "integer" },
520                                    "rdi": { "type": "integer" },
521                                    "rbp": { "type": "integer" },
522                                    "rsp": { "type": "integer" },
523                                    "r8": { "type": "integer" },
524                                    "r9": { "type": "integer" },
525                                    "r10": { "type": "integer" },
526                                    "r11": { "type": "integer" },
527                                    "r12": { "type": "integer" },
528                                    "r13": { "type": "integer" },
529                                    "r14": { "type": "integer" },
530                                    "r15": { "type": "integer" },
531                                    "cs": { "type": "integer" },
532                                    "ds": { "type": "integer" },
533                                    "ss": { "type": "integer" },
534                                    "es": { "type": "integer" },
535                                    "fs": { "type": "integer" },
536                                    "gs": { "type": "integer" },
537                                    "rflags": { "type": "integer" },
538                                    "eip": { "type": "integer" },
539                                    "cr0": { "type": "integer" },
540                                    "cr1": { "type": "integer" },
541                                    "cr2": { "type": "integer" },
542                                    "cr3": { "type": "integer" },
543                                    "cr4": { "type": "integer" },
544                                    "cr8": { "type": "integer" },
545                                    "gdtr_0": { "type": "integer" },
546                                    "gdtr_1": { "type": "integer" },
547                                    "idtr_0": { "type": "integer" },
548                                    "idtr_1": { "type": "integer" },
549                                    "ldtr": { "type": "integer" },
550                                    "tr": { "type": "integer" }
551                                }
552                            },
553                            {
554                                "$id": "cper-json-registerarray2",
555                                "type": "object",
556                                "required": ["data"],
557                                "additionalProperties": false,
558                                "properties": {
559                                    "data": {
560                                        "type": "string"
561                                    }
562                                }
563                            }
564                        ]
565                    }
566                }
567            }
568        }
569    }
570}
571