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", "addressSpaceValid"],
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                                            "addressSpaceValid": {
188                                                "type": "boolean"
189                                            }
190                                        }
191                                    },
192                                    "transactionType": {
193                                        "type": "object",
194                                        "$ref": "./common/cper-json-nvp.json"
195                                    },
196                                    "operation": {
197                                        "type": "object",
198                                        "$ref": "./common/cper-json-nvp.json"
199                                    },
200                                    "level": {
201                                        "type": "integer",
202                                        "minimum": 0
203                                    },
204                                    "processorContextCorrupt": {
205                                        "type": "boolean"
206                                    },
207                                    "uncorrected": {
208                                        "type": "boolean"
209                                    },
210                                    "preciseIP": {
211                                        "type": "boolean"
212                                    },
213                                    "restartableIP": {
214                                        "type": "boolean"
215                                    },
216                                    "overflow": {
217                                        "type": "boolean"
218                                    },
219                                    "participationType": {
220                                        "type": "object",
221                                        "$ref": "./common/cper-json-nvp.json"
222                                    },
223                                    "addressSpace": {
224                                        "type": "object",
225                                        "$ref": "./common/cper-json-nvp.json"
226                                    },
227                                    "timedOut": {
228                                        "type": "boolean"
229                                    }
230                                }
231                            },
232                            {
233                                "type": "object",
234                                "required": [],
235                                "additionalProperties": false,
236                                "properties": {
237                                    "validationBits": {
238                                        "type": "object",
239                                        "required": ["errorTypeValid", "processorContextCorruptValid", "uncorrectedValid", "preciseIPValid", "restartableIPValid", "overflowValid"],
240                                        "properties": {
241                                            "errorTypeValid": {
242                                                "type": "boolean"
243                                            },
244                                            "processorContextCorruptValid": {
245                                                "type": "boolean"
246                                            },
247                                            "uncorrectedValid": {
248                                                "type": "boolean"
249                                            },
250                                            "preciseIPValid": {
251                                                "type": "boolean"
252                                            },
253                                            "restartableIPValid": {
254                                                "type": "boolean"
255                                            },
256                                            "overflowValid": {
257                                                "type": "boolean"
258                                            }
259                                        }
260                                    },
261                                    "errorType": {
262                                        "type": "object",
263                                        "$ref": "./common/cper-json-nvp.json"
264                                    },
265                                    "processorContextCorrupt": {
266                                        "type": "boolean"
267                                    },
268                                    "uncorrected": {
269                                        "type": "boolean"
270                                    },
271                                    "preciseIP": {
272                                        "type": "boolean"
273                                    },
274                                    "restartableIP": {
275                                        "type": "boolean"
276                                    },
277                                    "overflow": {
278                                        "type": "boolean"
279                                    }
280                                }
281                            }
282                        ]
283                    },
284                    "targetAddressID": {
285                        "type": "integer"
286                    },
287                    "requestorID": {
288                        "type": "integer"
289                    },
290                    "responderID": {
291                        "type": "integer"
292                    },
293                    "instructionPointer": {
294                        "type": "integer"
295                    }
296                }
297            }
298        },
299        "processorContextInfo": {
300            "type": "array",
301            "items": {
302                "type": "object",
303                "required": ["registerContextType", "registerArraySize", "msrAddress", "mmRegisterAddress"],
304                "additionalProperties": false,
305                "properties": {
306                    "registerContextType": {
307                        "type": "object",
308                        "$ref": "./common/cper-json-nvp.json"
309                    },
310                    "registerArraySize": {
311                        "type": "integer"
312                    },
313                    "msrAddress": {
314                        "type": "integer"
315                    },
316                    "mmRegisterAddress": {
317                        "type": "integer"
318                    },
319                    "registerArray": {
320                        "type": "object",
321                        "oneOf": [
322                            {
323                                "type": "object",
324                                "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"],
325                                "additionalProperties": false,
326                                "properties": {
327                                    "eax": { "type": "integer" },
328                                    "ebx": { "type": "integer" },
329                                    "ecx": { "type": "integer" },
330                                    "edx": { "type": "integer" },
331                                    "esi": { "type": "integer" },
332                                    "edi": { "type": "integer" },
333                                    "ebp": { "type": "integer" },
334                                    "esp": { "type": "integer" },
335                                    "cs": { "type": "integer" },
336                                    "ds": { "type": "integer" },
337                                    "ss": { "type": "integer" },
338                                    "es": { "type": "integer" },
339                                    "fs": { "type": "integer" },
340                                    "gs": { "type": "integer" },
341                                    "eflags": { "type": "integer" },
342                                    "eip": { "type": "integer" },
343                                    "cr0": { "type": "integer" },
344                                    "cr1": { "type": "integer" },
345                                    "cr2": { "type": "integer" },
346                                    "cr3": { "type": "integer" },
347                                    "cr4": { "type": "integer" },
348                                    "gdtr": { "type": "integer" },
349                                    "idtr": { "type": "integer" },
350                                    "ldtr": { "type": "integer" },
351                                    "tr": { "type": "integer" }
352                                }
353                            },
354                            {
355                                "type": "object",
356                                "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"],
357                                "additionalProperties": false,
358                                "properties": {
359                                    "rax": { "type": "integer" },
360                                    "rbx": { "type": "integer" },
361                                    "rcx": { "type": "integer" },
362                                    "rdx": { "type": "integer" },
363                                    "rsi": { "type": "integer" },
364                                    "rdi": { "type": "integer" },
365                                    "rbp": { "type": "integer" },
366                                    "rsp": { "type": "integer" },
367                                    "r8": { "type": "integer" },
368                                    "r9": { "type": "integer" },
369                                    "r10": { "type": "integer" },
370                                    "r11": { "type": "integer" },
371                                    "r12": { "type": "integer" },
372                                    "r13": { "type": "integer" },
373                                    "r14": { "type": "integer" },
374                                    "r15": { "type": "integer" },
375                                    "cs": { "type": "integer" },
376                                    "ds": { "type": "integer" },
377                                    "ss": { "type": "integer" },
378                                    "es": { "type": "integer" },
379                                    "fs": { "type": "integer" },
380                                    "gs": { "type": "integer" },
381                                    "rflags": { "type": "integer" },
382                                    "eip": { "type": "integer" },
383                                    "cr0": { "type": "integer" },
384                                    "cr1": { "type": "integer" },
385                                    "cr2": { "type": "integer" },
386                                    "cr3": { "type": "integer" },
387                                    "cr4": { "type": "integer" },
388                                    "cr8": { "type": "integer" },
389                                    "gdtr_0": { "type": "integer" },
390                                    "gdtr_1": { "type": "integer" },
391                                    "idtr_0": { "type": "integer" },
392                                    "idtr_1": { "type": "integer" },
393                                    "ldtr": { "type": "integer" },
394                                    "tr": { "type": "integer" }
395                                }
396                            },
397                            {
398                                "type": "object",
399                                "required": ["data"],
400                                "additionalProperties": false,
401                                "properties": {
402                                    "data": {
403                                        "type": "string"
404                                    }
405                                }
406                            }
407                        ]
408                    }
409                }
410            }
411        }
412    }
413}