xref: /aosp_15_r20/external/mesa3d/src/intel/dev/intel_device_info_serialize.h (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1  /*
2   * Copyright © 2024 Intel Corporation
3   *
4   * Permission is hereby granted, free of charge, to any person obtaining a
5   * copy of this software and associated documentation files (the "Software"),
6   * to deal in the Software without restriction, including without limitation
7   * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8   * and/or sell copies of the Software, and to permit persons to whom the
9   * Software is furnished to do so, subject to the following conditions:
10   *
11   * The above copyright notice and this permission notice (including the next
12   * paragraph) shall be included in all copies or substantial portions of the
13   * Software.
14   *
15   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
18   * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20   * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
21   * IN THE SOFTWARE.
22   *
23   */
24 
25 #ifndef INTEL_DEVICE_INFO_SERIALIZE_H
26 #define INTEL_DEVICE_INFO_SERIALIZE_H
27 
28 #include "dev/intel_device_info.h"
29 #include "util/parson.h"
30 
31 /* Initialize a device info struct with the json-formatted data at the path.
32  * Returns false if json format is incompatible (from an older version of
33  * mesa)
34  */
35 bool intel_device_info_from_json(const char *path,
36                                  struct intel_device_info *devinfo);
37 
38 /* Dump all device info data into a parson tree, for serializaiton.  Caller
39  * must free the returned reference with json_value_free()
40  */
41 JSON_Value *intel_device_info_dump_json(const struct intel_device_info *devinfo);
42 
43 #endif /* INTEL_DEVICE_INFO_SERIALIZE_H */
44